{"version":3,"sources":["webpack:///./node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/lodash/property.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/_stackSet.js","webpack:///./node_modules/react-motion/lib/react-motion.js","webpack:///./node_modules/lodash/stubArray.js","webpack:///./node_modules/object-keys/isArguments.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/lodash/_SetCache.js","webpack:///./node_modules/object-keys/index.js","webpack:///./node_modules/object-is/implementation.js","webpack:///./node_modules/is-regex/index.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_setCacheHas.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/_basePropertyDeep.js","webpack:///./node_modules/lodash/memoize.js","webpack:///./node_modules/is-arguments/index.js","webpack:///./node_modules/lodash/_Hash.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/normalize-string-argument.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/lodash/_hasPath.js","webpack:///./node_modules/lodash/_castPath.js","webpack:///./node_modules/regexp.prototype.flags/index.js","webpack:///./node_modules/d3-voronoi/src/constant.js","webpack:///./node_modules/d3-voronoi/src/point.js","webpack:///./node_modules/d3-voronoi/src/RedBlackTree.js","webpack:///./node_modules/d3-voronoi/src/Edge.js","webpack:///./node_modules/d3-voronoi/src/Cell.js","webpack:///./node_modules/d3-voronoi/src/Circle.js","webpack:///./node_modules/d3-voronoi/src/Beach.js","webpack:///./node_modules/d3-voronoi/src/Diagram.js","webpack:///./node_modules/d3-voronoi/src/voronoi.js","webpack:///./node_modules/d3-color/src/define.js","webpack:///./node_modules/d3-color/src/color.js","webpack:///./node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3-interpolate/src/numberArray.js","webpack:///./node_modules/d3-interpolate/src/array.js","webpack:///./node_modules/d3-interpolate/src/date.js","webpack:///./node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/d3-interpolate/src/object.js","webpack:///./node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3-interpolate/src/value.js","webpack:///./node_modules/react-vis/es/animation.js","webpack:///./node_modules/d3-array/src/ascending.js","webpack:///./node_modules/d3-array/src/bisector.js","webpack:///./node_modules/d3-array/src/bisect.js","webpack:///./node_modules/d3-array/src/cross.js","webpack:///./node_modules/d3-array/src/extent.js","webpack:///./node_modules/d3-array/src/array.js","webpack:///./node_modules/d3-array/src/range.js","webpack:///./node_modules/d3-array/src/ticks.js","webpack:///./node_modules/d3-array/src/threshold/sturges.js","webpack:///./node_modules/d3-array/src/min.js","webpack:///./node_modules/d3-array/src/sum.js","webpack:///./node_modules/d3-collection/src/map.js","webpack:///./node_modules/d3-collection/src/nest.js","webpack:///./node_modules/d3-collection/src/set.js","webpack:///./node_modules/d3-scale/src/array.js","webpack:///./node_modules/d3-scale/src/ordinal.js","webpack:///./node_modules/d3-interpolate/src/round.js","webpack:///./node_modules/d3-scale/src/constant.js","webpack:///./node_modules/d3-scale/src/number.js","webpack:///./node_modules/d3-scale/src/continuous.js","webpack:///./node_modules/d3-format/src/formatSpecifier.js","webpack:///./node_modules/d3-format/src/formatDecimal.js","webpack:///./node_modules/d3-format/src/exponent.js","webpack:///./node_modules/d3-format/src/formatPrefixAuto.js","webpack:///./node_modules/d3-format/src/defaultLocale.js","webpack:///./node_modules/d3-format/src/formatRounded.js","webpack:///./node_modules/d3-format/src/formatTypes.js","webpack:///./node_modules/d3-format/src/identity.js","webpack:///./node_modules/d3-format/src/locale.js","webpack:///./node_modules/d3-format/src/formatGroup.js","webpack:///./node_modules/d3-format/src/formatNumerals.js","webpack:///./node_modules/d3-format/src/formatTrim.js","webpack:///./node_modules/d3-format/src/precisionRound.js","webpack:///./node_modules/d3-scale/src/tickFormat.js","webpack:///./node_modules/d3-format/src/precisionPrefix.js","webpack:///./node_modules/d3-format/src/precisionFixed.js","webpack:///./node_modules/d3-scale/src/linear.js","webpack:///./node_modules/d3-scale/src/nice.js","webpack:///./node_modules/d3-scale/src/log.js","webpack:///./node_modules/d3-scale/src/pow.js","webpack:///./node_modules/d3-time/src/interval.js","webpack:///./node_modules/d3-time/src/year.js","webpack:///./node_modules/d3-time/src/month.js","webpack:///./node_modules/d3-time/src/week.js","webpack:///./node_modules/d3-time/src/duration.js","webpack:///./node_modules/d3-time/src/day.js","webpack:///./node_modules/d3-time/src/hour.js","webpack:///./node_modules/d3-time/src/minute.js","webpack:///./node_modules/d3-time/src/second.js","webpack:///./node_modules/d3-time/src/millisecond.js","webpack:///./node_modules/d3-time/src/utcWeek.js","webpack:///./node_modules/d3-time/src/utcDay.js","webpack:///./node_modules/d3-time/src/utcYear.js","webpack:///./node_modules/d3-time-format/src/locale.js","webpack:///./node_modules/d3-time-format/src/defaultLocale.js","webpack:///./node_modules/d3-scale/src/time.js","webpack:///./node_modules/d3-time/src/utcMonth.js","webpack:///./node_modules/d3-time/src/utcHour.js","webpack:///./node_modules/d3-time/src/utcMinute.js","webpack:///./node_modules/d3-scale/src/colors.js","webpack:///./node_modules/d3-color/src/math.js","webpack:///./node_modules/d3-scale/src/category10.js","webpack:///./node_modules/d3-scale/src/category20b.js","webpack:///./node_modules/d3-scale/src/category20c.js","webpack:///./node_modules/d3-scale/src/category20.js","webpack:///./node_modules/d3-color/src/cubehelix.js","webpack:///./node_modules/d3-interpolate/src/cubehelix.js","webpack:///./node_modules/d3-scale/src/cubehelix.js","webpack:///./node_modules/d3-scale/src/rainbow.js","webpack:///./node_modules/d3-scale/src/viridis.js","webpack:///./node_modules/react-vis/es/utils/data-utils.js","webpack:///./node_modules/react-vis/es/utils/scales-utils.js","webpack:///./node_modules/d3-scale/src/band.js","webpack:///./node_modules/d3-scale/src/utcTime.js","webpack:///./node_modules/react-vis/es/plot/series/abstract-series.js","webpack:///./node_modules/react-vis/es/theme.js","webpack:///./node_modules/react-vis/es/utils/series-utils.js","webpack:///./node_modules/d3-path/src/path.js","webpack:///./node_modules/d3-shape/src/constant.js","webpack:///./node_modules/d3-shape/src/math.js","webpack:///./node_modules/d3-shape/src/arc.js","webpack:///./node_modules/react-vis/es/plot/series/arc-series.js","webpack:///./node_modules/d3-shape/src/curve/linear.js","webpack:///./node_modules/d3-shape/src/point.js","webpack:///./node_modules/d3-shape/src/line.js","webpack:///./node_modules/d3-shape/src/area.js","webpack:///./node_modules/d3-shape/src/descending.js","webpack:///./node_modules/d3-shape/src/identity.js","webpack:///./node_modules/d3-shape/src/pie.js","webpack:///./node_modules/d3-shape/src/curve/radial.js","webpack:///./node_modules/d3-shape/src/lineRadial.js","webpack:///./node_modules/d3-shape/src/areaRadial.js","webpack:///./node_modules/d3-shape/src/pointRadial.js","webpack:///./node_modules/d3-shape/src/array.js","webpack:///./node_modules/d3-shape/src/link/index.js","webpack:///./node_modules/d3-shape/src/symbol/circle.js","webpack:///./node_modules/d3-shape/src/symbol/cross.js","webpack:///./node_modules/d3-shape/src/symbol/diamond.js","webpack:///./node_modules/d3-shape/src/symbol/star.js","webpack:///./node_modules/d3-shape/src/symbol/square.js","webpack:///./node_modules/d3-shape/src/symbol/triangle.js","webpack:///./node_modules/d3-shape/src/symbol/wye.js","webpack:///./node_modules/d3-shape/src/symbol.js","webpack:///./node_modules/d3-shape/src/noop.js","webpack:///./node_modules/d3-shape/src/curve/basis.js","webpack:///./node_modules/d3-shape/src/curve/basisClosed.js","webpack:///./node_modules/d3-shape/src/curve/basisOpen.js","webpack:///./node_modules/d3-shape/src/curve/bundle.js","webpack:///./node_modules/d3-shape/src/curve/cardinal.js","webpack:///./node_modules/d3-shape/src/curve/cardinalClosed.js","webpack:///./node_modules/d3-shape/src/curve/cardinalOpen.js","webpack:///./node_modules/d3-shape/src/curve/catmullRom.js","webpack:///./node_modules/d3-shape/src/curve/catmullRomClosed.js","webpack:///./node_modules/d3-shape/src/curve/catmullRomOpen.js","webpack:///./node_modules/d3-shape/src/curve/linearClosed.js","webpack:///./node_modules/d3-shape/src/curve/monotone.js","webpack:///./node_modules/d3-shape/src/curve/natural.js","webpack:///./node_modules/d3-shape/src/curve/step.js","webpack:///./node_modules/d3-shape/src/offset/none.js","webpack:///./node_modules/d3-shape/src/order/none.js","webpack:///./node_modules/d3-shape/src/stack.js","webpack:///./node_modules/d3-shape/src/offset/expand.js","webpack:///./node_modules/d3-shape/src/offset/diverging.js","webpack:///./node_modules/d3-shape/src/offset/silhouette.js","webpack:///./node_modules/d3-shape/src/offset/wiggle.js","webpack:///./node_modules/d3-shape/src/order/appearance.js","webpack:///./node_modules/d3-shape/src/order/ascending.js","webpack:///./node_modules/d3-shape/src/order/descending.js","webpack:///./node_modules/d3-shape/src/order/insideOut.js","webpack:///./node_modules/d3-shape/src/order/reverse.js","webpack:///./node_modules/react-vis/es/plot/series/area-series.js","webpack:///./node_modules/react-vis/es/plot/borders.js","webpack:///./node_modules/react-vis/es/plot/chart-label.js","webpack:///./node_modules/react-vis/es/utils/axis-utils.js","webpack:///./node_modules/react-vis/es/plot/circular-grid-lines.js","webpack:///./node_modules/d3-contour/src/array.js","webpack:///./node_modules/d3-contour/src/ascending.js","webpack:///./node_modules/d3-contour/src/constant.js","webpack:///./node_modules/d3-contour/src/contains.js","webpack:///./node_modules/d3-contour/src/noop.js","webpack:///./node_modules/d3-contour/src/contours.js","webpack:///./node_modules/d3-contour/src/area.js","webpack:///./node_modules/d3-contour/src/blur.js","webpack:///./node_modules/d3-contour/src/density.js","webpack:///./node_modules/d3-geo/src/identity.js","webpack:///./node_modules/d3-geo/src/stream.js","webpack:///./node_modules/d3-geo/src/adder.js","webpack:///./node_modules/d3-geo/src/math.js","webpack:///./node_modules/d3-geo/src/noop.js","webpack:///./node_modules/d3-geo/src/path/area.js","webpack:///./node_modules/d3-geo/src/path/bounds.js","webpack:///./node_modules/d3-geo/src/path/centroid.js","webpack:///./node_modules/d3-geo/src/path/context.js","webpack:///./node_modules/d3-geo/src/path/measure.js","webpack:///./node_modules/d3-geo/src/path/string.js","webpack:///./node_modules/d3-geo/src/path/index.js","webpack:///./node_modules/react-vis/es/plot/series/contour-series.js","webpack:///./node_modules/d3-array/src/max.js","webpack:///./node_modules/react-vis/es/plot/crosshair.js","webpack:///./node_modules/react-vis/es/plot/series/custom-svg-series.js","webpack:///./node_modules/react-vis/es/plot/axis/decorative-axis-ticks.js","webpack:///./node_modules/react-vis/es/plot/axis/decorative-axis.js","webpack:///./node_modules/react-vis/es/plot/gradient-defs.js","webpack:///./node_modules/react-vis/es/plot/grid-lines.js","webpack:///./node_modules/react-vis/es/plot/series/heatmap-series.js","webpack:///./node_modules/d3-hexbin/src/hexbin.js","webpack:///./node_modules/react-vis/es/plot/series/hexbin-series.js","webpack:///./node_modules/react-vis/es/plot/highlight.js","webpack:///./node_modules/react-vis/es/plot/hint.js","webpack:///./node_modules/react-vis/es/plot/series/bar-series.js","webpack:///./node_modules/react-vis/es/plot/series/horizontal-bar-series.js","webpack:///./node_modules/react-vis/es/plot/series/bar-series-canvas.js","webpack:///./node_modules/react-vis/es/plot/series/horizontal-bar-series-canvas.js","webpack:///./node_modules/react-vis/es/plot/horizontal-grid-lines.js","webpack:///./node_modules/react-vis/es/plot/series/rect-series.js","webpack:///./node_modules/react-vis/es/plot/series/horizontal-rect-series.js","webpack:///./node_modules/react-vis/es/plot/series/rect-series-canvas.js","webpack:///./node_modules/react-vis/es/plot/series/horizontal-rect-series-canvas.js","webpack:///./node_modules/react-vis/es/plot/series/label-series.js","webpack:///./node_modules/react-vis/es/plot/series/line-series.js","webpack:///./node_modules/react-vis/es/plot/series/mark-series.js","webpack:///./node_modules/react-vis/es/plot/series/line-mark-series.js","webpack:///./node_modules/react-vis/es/plot/series/mark-series-canvas.js","webpack:///./node_modules/react-vis/es/plot/series/line-series-canvas.js","webpack:///./node_modules/react-vis/es/plot/series/line-mark-series-canvas.js","webpack:///./node_modules/react-vis/es/plot/series/polygon-series.js","webpack:///./node_modules/react-vis/es/plot/series/vertical-bar-series.js","webpack:///./node_modules/react-vis/es/plot/series/vertical-bar-series-canvas.js","webpack:///./node_modules/react-vis/es/plot/vertical-grid-lines.js","webpack:///./node_modules/react-vis/es/plot/series/vertical-rect-series.js","webpack:///./node_modules/react-vis/es/plot/series/vertical-rect-series-canvas.js","webpack:///./node_modules/react-vis/es/plot/voronoi.js","webpack:///./node_modules/react-vis/es/plot/series/whisker-series.js","webpack:///./node_modules/react-vis/es/utils/chart-utils.js","webpack:///./node_modules/react-vis/es/plot/series/canvas-wrapper.js","webpack:///./node_modules/react-vis/es/plot/xy-plot.js","webpack:///./node_modules/react-vis/es/plot/axis/axis-line.js","webpack:///./node_modules/react-vis/es/plot/axis/axis-ticks.js","webpack:///./node_modules/react-vis/es/plot/axis/axis-title.js","webpack:///./node_modules/react-vis/es/plot/axis/axis.js","webpack:///./node_modules/react-vis/es/plot/axis/x-axis.js","webpack:///./node_modules/react-vis/es/plot/axis/y-axis.js","webpack:///./node_modules/react-vis/es/legends/continuous-color-legend.js","webpack:///./node_modules/react-vis/es/legends/continuous-size-legend.js","webpack:///./node_modules/react-vis/es/legends/discrete-color-legend-item.js","webpack:///./node_modules/react-vis/es/legends/discrete-color-legend.js","webpack:///./node_modules/react-vis/es/legends/searchable-discrete-color-legend.js","webpack:///./node_modules/react-vis/es/parallel-coordinates/index.js","webpack:///./node_modules/react-vis/es/radar-chart/index.js","webpack:///./node_modules/react-vis/es/radial-chart/index.js","webpack:///./node_modules/d3-sankey/src/align.js","webpack:///./node_modules/d3-sankey/src/constant.js","webpack:///./node_modules/d3-sankey/src/sankey.js","webpack:///./node_modules/d3-sankey/src/sankeyLinkHorizontal.js","webpack:///./node_modules/react-vis/es/sankey/sankey-link.js","webpack:///./node_modules/react-vis/es/sankey/index.js","webpack:///./node_modules/d3-hierarchy/src/treemap/round.js","webpack:///./node_modules/d3-hierarchy/src/treemap/dice.js","webpack:///./node_modules/d3-hierarchy/src/partition.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/count.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/index.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/each.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/path.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/links.js","webpack:///./node_modules/react-vis/es/sunburst/index.js","webpack:///./node_modules/d3-hierarchy/src/treemap/slice.js","webpack:///./node_modules/d3-hierarchy/src/treemap/squarify.js","webpack:///./node_modules/d3-hierarchy/src/treemap/resquarify.js","webpack:///./node_modules/d3-hierarchy/src/array.js","webpack:///./node_modules/d3-hierarchy/src/pack/enclose.js","webpack:///./node_modules/d3-hierarchy/src/pack/siblings.js","webpack:///./node_modules/d3-hierarchy/src/accessors.js","webpack:///./node_modules/d3-hierarchy/src/constant.js","webpack:///./node_modules/d3-hierarchy/src/pack/index.js","webpack:///./node_modules/d3-hierarchy/src/treemap/index.js","webpack:///./node_modules/react-vis/es/treemap/treemap-leaf.js","webpack:///./node_modules/react-vis/es/treemap/treemap-dom.js","webpack:///./node_modules/react-vis/es/treemap/treemap-svg.js","webpack:///./node_modules/react-vis/es/treemap/index.js","webpack:///./node_modules/d3-hierarchy/src/treemap/sliceDice.js","webpack:///./node_modules/d3-hierarchy/src/treemap/binary.js","webpack:///./node_modules/react-vis/es/make-vis-flexible.js","webpack:///./src/components/graph.js","webpack:///./src/components/articleContent.js","webpack:///./src/components/Linkedin.js","webpack:///./src/components/email.js","webpack:///./src/components/contactobject.js","webpack:///./src/templates/articles.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_baseProperty.js","webpack:///./node_modules/lodash/_stackClear.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/_mapToArray.js","webpack:///./node_modules/define-properties/index.js","webpack:///./node_modules/lodash/_toKey.js","webpack:///./node_modules/lodash/_isKey.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/get-intrinsic/index.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/has-tostringtag/shams.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/_arrayPush.js","webpack:///./node_modules/lodash/_isStrictComparable.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/function-bind/index.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/iterate.js","webpack:///./node_modules/is-date-object/index.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_isKeyable.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/has-symbols/shams.js","webpack:///./node_modules/lodash/maxBy.js","webpack:///./node_modules/lodash/_baseMatchesProperty.js","webpack:///./node_modules/lodash/_stringToPath.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/lodash/_equalByTag.js","webpack:///./node_modules/regexp.prototype.flags/shim.js","webpack:///./node_modules/lodash/_createRange.js","webpack:///./node_modules/lodash/_Promise.js","webpack:///./node_modules/lodash/_hashDelete.js","webpack:///./node_modules/lodash/_memoizeCapped.js","webpack:///./node_modules/lodash/_matchesStrictComparable.js","webpack:///./node_modules/lodash/_Uint8Array.js","webpack:///./node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/functions-have-names/index.js","webpack:///./node_modules/lodash/_hashSet.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/_baseHasIn.js","webpack:///./node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/object-create.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_stackDelete.js","webpack:///./node_modules/react-motion/lib/presets.js","webpack:///./node_modules/lodash/_arrayFilter.js","webpack:///./node_modules/react-motion/lib/reorderKeys.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/_getSymbols.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_getMatchData.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/lodash/_WeakMap.js","webpack:///./node_modules/call-bind/index.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/iterators.js","webpack:///./node_modules/lodash/_getMapData.js","webpack:///./node_modules/lodash/_arraySome.js","webpack:///./node_modules/lodash/_getTag.js","webpack:///./node_modules/lodash/_baseRange.js","webpack:///./node_modules/lodash/_hashClear.js","webpack:///./node_modules/lodash/_trimmedEndIndex.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/has-symbols/index.js","webpack:///./node_modules/regexp.prototype.flags/polyfill.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_baseGt.js","webpack:///./node_modules/call-bind/callBound.js","webpack:///./node_modules/lodash/_stackHas.js","webpack:///./node_modules/regexp.prototype.flags/implementation.js","webpack:///./node_modules/object-is/polyfill.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/range.js","webpack:///./node_modules/lodash/_ListCache.js","webpack:///./node_modules/lodash/_nativeCreate.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/react-motion/lib/mapToZero.js","webpack:///./node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/lodash/toFinite.js","webpack:///./node_modules/lodash/_baseMatches.js","webpack:///./node_modules/has-property-descriptors/index.js","webpack:///./node_modules/lodash/_baseGet.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/function-bind/implementation.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/object-is/index.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/toString.js","webpack:///./node_modules/lodash/_baseExtremum.js","webpack:///./node_modules/lodash/_MapCache.js","webpack:///./node_modules/lodash/_baseIsEqualDeep.js","webpack:///./node_modules/lodash/_arrayMap.js","webpack:///./node_modules/lodash/_Map.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/lodash/_hashHas.js","webpack:///./node_modules/deep-equal/index.js","webpack:///./node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/lodash/_baseGetAllKeys.js","webpack:///./node_modules/react-motion/lib/stepper.js","webpack:///./node_modules/lodash/_Stack.js","webpack:///./node_modules/lodash/_setCacheAdd.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/error-stack-installable.js","webpack:///./node_modules/lodash/_stackGet.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/html.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/error-stack-clear.js","webpack:///./node_modules/lodash/hasIn.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/esnext.aggregate-error.js","webpack:///./node_modules/lodash/_baseTrim.js","webpack:///./node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/react-motion/lib/shouldStopAnimation.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/error-stack-install.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/_baseIsMatch.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/get.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/has/src/index.js","webpack:///./node_modules/lodash/_equalArrays.js","webpack:///./node_modules/react-motion/lib/TransitionMotion.js","webpack:///./node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/react-motion/lib/mergeDiff.js","webpack:///./node_modules/react-vis/es/utils/react-utils.js","webpack:///./node_modules/lodash/_getAllKeys.js","webpack:///./node_modules/lodash/_setToArray.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es.aggregate-error.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/install-error-cause.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/object-keys/implementation.js","webpack:///./node_modules/lodash/_equalObjects.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/react-motion/lib/spring.js","webpack:///./node_modules/lodash/_DataView.js","webpack:///./node_modules/react-motion/lib/stripStyle.js","webpack:///./node_modules/lodash/_hashGet.js","webpack:///./node_modules/react-motion/lib/StaggeredMotion.js","webpack:///./node_modules/lodash/_baseIteratee.js","webpack:///./node_modules/global/window.js","webpack:///./node_modules/lodash/_baseIsEqual.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/object-is/shim.js","webpack:///./node_modules/react-motion/lib/Motion.js","webpack:///./node_modules/lodash/_cacheHas.js","webpack:///./node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/lodash/_Set.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es.aggregate-error.constructor.js","webpack:///./node_modules/lodash/_baseToString.js"],"names":["assocIndexOf","module","exports","key","this","__data__","baseProperty","basePropertyDeep","isKey","toKey","path","baseGetTag","isObjectLike","value","baseIsArguments","objectProto","Object","prototype","hasOwnProperty","propertyIsEnumerable","isArguments","arguments","call","ListCache","Map","MapCache","data","pairs","length","LARGE_ARRAY_SIZE","push","size","set","_interopRequire","obj","__esModule","_Motion","Motion","_StaggeredMotion","StaggeredMotion","_TransitionMotion","TransitionMotion","_spring","spring","_presets","presets","_stripStyle","stripStyle","_reorderKeys","reorderKeys","toStr","toString","str","isArgs","callee","internalObjectKeys","enumBugKeys","keys","O","setCacheAdd","setCacheHas","SetCache","values","index","add","has","slice","Array","origKeys","keysShim","o","originalKeys","shim","args","object","numberIsNaN","a","b","$exec","isRegexMarker","badStringifier","callBound","hasToStringTag","throwRegexMarker","valueOf","Symbol","toPrimitive","$toString","gOPD","getOwnPropertyDescriptor","descriptor","e","coreJsData","funcToString","Function","func","baseGet","memoize","resolver","TypeError","memoized","apply","cache","get","result","Cache","isStandardArguments","toStringTag","isLegacyArguments","supportsStandardArguments","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","entries","clear","entry","argument","$default","undefined","wellKnownSymbol","Iterators","ITERATOR","ArrayPrototype","it","castPath","isArray","isIndex","isLength","hasFunc","stringToPath","define","callBind","implementation","getPolyfill","flagsBound","x","d","RedBlackTree","_","RedBlackNode","node","U","C","L","R","P","N","RedBlackRotateLeft","tree","p","q","parent","RedBlackRotateRight","RedBlackFirst","constructor","insert","after","grandpa","uncle","remove","sibling","next","red","left","right","createEdge","v0","v1","edge","setEdgeEnd","cells","halfedges","createBorderEdge","vertex","clipEdge","x0","y0","x1","y1","r","ax","ay","t0","t1","dx","dy","connectEdge","fm","fb","lx","ly","rx","ry","fx","fy","cellHalfedgeAngle","cell","site","va","vb","Math","atan2","cellHalfedgeStart","cellHalfedgeEnd","firstCircle","circlePool","Circle","y","arc","cy","attachCircle","lArc","rArc","lSite","cSite","rSite","bx","by","cx","epsilon2","ha","hc","circle","pop","sqrt","before","detachCircle","beachPool","Beach","createBeach","beach","detachBeach","beaches","removeBeach","previous","disappearing","abs","epsilon","unshift","iArc","nArcs","addBeach","dxl","dxr","directrix","leftBreakPoint","rightBreakPoint","createCell","newArc","hb","rfocx","rfocy","pby2","Infinity","lfocx","lfocy","plby2","hl","aby2","lexicographic","Diagram","sites","extent","sort","j","m","i","n","array","sortCellHalfedges","clipEdges","iCell","iHalfedge","nHalfedges","start","startX","startY","end","endX","endY","nCells","cover","splice","d2","dc","v00","v01","v11","v10","clipCells","edges","polygons","map","polygon","triangles","forEach","s0","c","e1","s1","links","filter","source","target","find","radius","i0","that","i1","_found","v","vx","vy","v2","voronoi","s","round","constant","factory","extend","definition","create","Color","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","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","format","l","trim","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","NaN","g","rgbConvert","opacity","rgb_formatHex","rgb_formatRgb","isNaN","max","min","h","Hsl","hslConvert","hsl","hsl2rgb","m1","m2","basis","v3","t2","t3","copy","channels","assign","displayable","hex","formatHsl","brighter","k","pow","darker","linear","t","gamma","nogamma","exponential","color","rgbGamma","rgbSpline","spline","colors","floor","isNumberArray","ArrayBuffer","isView","DataView","genericArray","nb","na","Date","setTime","reA","reB","am","bm","bs","bi","lastIndex","number","one","join","numberArray","_createClass","defineProperties","props","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","_extends","ANIMATION_PROPTYPES","oneOfType","string","shape","stiffness","nonAnimatedProps","arrayOf","damping","bool","extractAnimatedPropValues","animatedProps","otherProps","indexOf","_objectWithoutProperties","reduce","animatedPropName","_PureComponent","Animation","instance","_classCallCheck","_this","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","_motionEndHandler","onEnd","_renderChildren","_ref","children","interpolator","_interpolator","child","Children","only","interpolatedProps","_data","row","correspondingCell","cloneElement","_animation","random","_updateInterpolator","subClass","superClass","setPrototypeOf","_inherits","onStart","oldProps","newProps","animationStyle","noWobble","getAnimationStyle","animation","style","createElement","defaultStyle","onRest","displayName","AnimationPropType","f","compare","ascending","lo","hi","mid","ascendingBisect","bisector","bisectRight","bisect","valueof","stop","step","ceil","range","e10","e5","e2","reverse","ticks","count","tickIncrement","isFinite","power","log","LN10","error","tickStep","step0","step1","LN2","sum","each","property","empty","_sortValues","_rollup","nest","_sortKeys","depth","createResult","setResult","keyValue","valuesByKey","createObject","setObject","createMap","setMap","_entries","sortKey","sortKeys","order","sortValues","rollup","proto","implicit","name","ordinal","domain","unknown","scale","unit","deinterpolateLinear","bimap","deinterpolate","reinterpolate","d0","d1","r0","r1","polymap","interpolate","clamp","continuous","piecewise","output","input","rescale","deinterpolateClamp","invert","reinterpolateClamp","rangeRound","re","formatSpecifier","specifier","match","Error","FormatSpecifier","fill","align","sign","symbol","zero","width","comma","precision","type","formatDecimalParts","toExponential","coefficient","prefixExponent","exponent","toFixed","toLocaleString","replace","toPrecision","_p","formatRounded","toUpperCase","_x","prefixes","group","locale","grouping","thousands","Number","substring","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","String","percent","minus","nan","newFormat","formatTypes","prefix","test","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","formatTrim","charCodeAt","padding","formatPrefix","precisionPrefix","precisionRound","precisionFixed","linearish","tickFormat","nice","interval","pow10","powp","base","E","exp","logp","log10","log2","reflect","raise","newInterval","floori","offseti","field","date","offset","every","setMonth","setHours","setFullYear","getFullYear","setDate","getMonth","weekday","getDate","getDay","getTimezoneOffset","sunday","monday","tuesday","wednesday","thursday","friday","saturday","getMilliseconds","getSeconds","getMinutes","getHours","getUTCSeconds","utcWeekday","setUTCDate","getUTCDate","getUTCDay","setUTCHours","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcDay","utcYear","setUTCMonth","setUTCFullYear","getUTCFullYear","localDate","H","M","S","utcDate","UTC","newDate","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","names","formatLookup","parseWeekdayNumberSunday","w","parseWeekdayNumberMonday","u","parseWeekNumberSunday","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","day","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYearISO","formatFullYear","formatFullYearISO","formatZone","z","formatUTCDayOfMonth","formatUTCHour24","getUTCHours","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","getUTCMonth","formatUTCMinutes","getUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","locale_dateTime","dateTime","locale_date","locale_time","time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","charAt","newParse","week","parse","X","utcParse","formatLocale","calendar","year","month","hour","minute","second","millisecond","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","formatYear","tickIntervals","tickInterval","utcMonth","utcHour","setUTCMinutes","utcMinute","setUTCSeconds","deg2rad","PI","rad2deg","A","ED","EB","BC_DA","cubehelixConvert","Cubehelix","bl","hue","cubehelixGamma","cubehelix","cosh","cos","sinh","sin","cubehelixLong","ramp","transformValueToString","toDateString","_SCALE_FUNCTIONS","_slicedToArray","arr","iterator","_arr","_n","_d","_e","_s","_i","done","err","sliceIterator","_toConsumableArray","arr2","from","_defineProperty","SCALE_FUNCTIONS","pointish","paddingOuter","paddingInner","band","bandwidth","ordinalRange","literalScale","logs","pows","XYPLOT_ATTR","toTitleCase","getScaleFnFromScaleObject","scaleObject","modDomain","_scale$range","_scale$range2","lower","upper","addInvertFunctionToOrdinalScaleObject","getDomainByAccessor","allData","accessor","accessor0","value0","_isDefined","_createScaleObjectForValue","attr","distance","baseValue","isValue","_getScaleDistanceAndAdjustedDomain","concat","_normalizeValues","setOfValues","Set","getUniquePropertyValues","scaleFn","nextValue","currentValue","nextDistance","_getSmallestDistanceIndex","adjustedDomain","_computeLeftDomainAdjustment","_computeRightDomainAdjustment","bestDistIndex","_computeScaleDistance","domain0","domainN","getScaleObjectFromProps","fallbackValue","_props$","_props$2","noFallBack","_props$3","_props$4","addValueToArray","_collectScaleObjectFromProps","_props$_adjustBy","_adjustBy","adjustBy","_props$_adjustWhat","_adjustWhat","_isScaleAdjustmentPossible","_adjustCategoricalScale","allSeriesData","_allData","_props$_adjustWhat2","adjustWhat","domainLength","scaleDomain0","scaleDomainN","scaleDistance","_getScaleDistanceAndA","_adjustContinuousScale","getAttributeScale","_getAttrValue","getAttributeFunctor","getAttr0Functor","_scaleObject$baseValu","getAttributeValue","getScalePropTypesByAttribute","_ref2","any","oneOf","extractScalePropsFromProps","attributes","isPlainSet","isUnderscoreSet","usesGet","getMissingScaleProps","parseFloat","_domain","domainPadding","_padDomain","defaultValue","response","getFontColorFromBackground","background","getXYPlotValues","XYPlotScales","prev","scaleInput","OPTIONAL_SCALE_PROPS_REGS","getOptionalScaleProps","acc","prop","reg","propTypes","height","onValueMouseOver","onValueMouseOut","onValueClick","onValueRightClick","onSeriesMouseOver","onSeriesMouseOut","onSeriesClick","onSeriesRightClick","onNearestX","onNearestXY","stack","AbstractSeries","_temp","_len","_key","_seriesClickHandler","event","_seriesMouseOutHandler","_seriesMouseOverHandler","_seriesRightClickHandler","_valueClickHandler","_this$props","_valueMouseOutHandler","_this$props2","_valueMouseOverHandler","_this$props3","_valueRightClickHandler","_this$props4","_props","_handleNearestXY","_handleNearestX","preventDefault","onParentMouseMove","_props2","_props2$marginTop","marginTop","_props2$marginLeft","marginLeft","evt","nativeEvent","currentTarget","rect","getBoundingClientRect","clientX","clientY","touches","pageX","pageY","clientLeft","top","clientTop","_props3","minDistance","POSITIVE_INFINITY","valueIndex","coordinate","_getXYCoordinateInContainer","xScaleFn","_getAttributeFunctor","item","currentCoordinate","newDistance","innerX","_props4","yScaleFn","foundPoint","voronoiInstance","innerY","defaultProps","className","DISCRETE_COLOR_RANGE","EXTENDED_DISCRETE_COLOR_RANGE","CONTINUOUS_COLOR_RANGE","SIZE_RANGE","DEFAULT_COLOR","isSeriesChild","getSeriesChildren","toArray","getStackedData","areSomeSeriesStacked","some","series","latestAttrPositions","accumulator","seriesIndex","seriesType","_series$props","_series$props$cluster","cluster","preppedData","angle","seriesHasAngleRadius","prepareData","attr0","baseAttr","dIndex","_extends2","_latestAttrPositions$2","_latestAttrPositions$","prevD","nextD","getSeriesPropsFromChildren","seriesTypesInfo","sameTypeTotal","sameTypeIndex","clusters","collectSeriesTypesInfo","seriesTypeInfo","_colorValue","_opacityValue","getRadialDomain","res","ANIMATED_SERIES_PROPS","getStackParams","_stackBy","valuePosAttr","_props$sameTypeTotal","_props$sameTypeIndex","pi","tau","tauEpsilon","Path","_x0","_y0","_x1","_y1","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","x2","y2","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","a0","a1","ccw","cw","da","halfPi","asin","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","intersect","x3","y3","x10","y10","x32","y32","cornerTangents","rc","ox","oy","x11","y11","x00","y00","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cornerRadius","padRadius","context","buffer","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","kc","lc","centroid","ATTRIBUTES","center","arcClassName","modifyRow","angle0","truedAngle","truedAngle0","_AbstractSeries","ArcSeries","scaleProps","_getAllScaleProps","state","nextProps","setState","defaultScaleProps","_getDefaultScaleProps","userScaleProps","missingScaleProps","innerWidth","innerHeight","radiusRange","_radiusValue","angleType","_this2","disableSeries","hideSeries","cloneData","stroke","radiusDomain","radius0","predefinedClassName","onMouseOver","onMouseOut","onClick","onContextMenu","pointerEvents","transform","arcArg","arcedData","rowStyle","rowClassName","Linear","_context","areaStart","_line","areaEnd","lineStart","_point","lineEnd","point","defined","curve","line","defined0","area","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","pie","arcs","pa","curveRadialLinear","curveRadial","Radial","_curve","radial","lineRadial","lineStartAngle","lineEndAngle","lineInnerRadius","lineOuterRadius","linkSource","linkTarget","link","argv","curveHorizontal","curveVertical","pointRadial","p2","p3","linkHorizontal","linkVertical","linkRadial","draw","tan30","tan30_2","kr","kx","sqrt3","symbols","diamond","square","star","triangle","wye","Basis","BasisClosed","noop","_x2","_x3","_x4","_y2","_y3","_y4","BasisOpen","Bundle","beta","_basis","_beta","_y","bundle","custom","_k","Cardinal","tension","cardinal","CardinalClosed","_x5","_y5","CardinalOpen","_l01_a","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","CatmullRom","alpha","_alpha","x23","y23","catmullRom","CatmullRomClosed","CatmullRomOpen","LinearClosed","slope3","h0","h1","slope2","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","controlPoints","_t0","px","py","Step","_t","stepBefore","stepAfter","stackValue","oz","kz","sz","sij","ki","si","none","yp","yn","s2","sij0","s3","sk","peaks","peak","vi","vj","sums","appearance","bottom","tops","bottoms","AreaSeries","getNull","nullAccessor","_getAttr0Functor","_getAttributeValue","newOpacity","_renderArea","CLASSES","Borders","marginBottom","marginRight","all","requiresSVG","_React$PureComponent","ChartLabel","includeMargin","text","xPos","xPercent","yPos","yPercent","PureComponent","ORIENTATION","TOP","LEFT","RIGHT","BOTTOM","VERTICAL","HORIZONTAL","DIRECTION","getTicksTotalFromSize","getTickValues","tickTotal","tickValues","CircularGridLines","centerX","centerY","_getDefaultProps","rRange","xScale","yScale","hole","ringContains","ring","contains","xi","yi","pj","xj","yj","segmentContains","collinear","cases","threshold","smooth","smoothLinear","contours","tz","contour","holes","callback","fragmentByStart","fragmentByEnd","stitch","startIndex","endIndex","isorings","coordinates","xt","yt","_0","_1","thresholds","blurX","sr","blurY","defaultX","defaultY","defaultWeight","streamGeometry","geometry","stream","streamGeometryType","streamObjectType","Feature","FeatureCollection","features","Sphere","sphere","Point","MultiPoint","LineString","streamLine","MultiLineString","Polygon","streamPolygon","MultiPolygon","GeometryCollection","geometries","closed","polygonStart","polygonEnd","Adder","reset","_add","temp","adder","bv","av","atan","areaSum","areaRingSum","areaStream","areaRingStart","areaRingEnd","areaPointFirst","areaPoint","bounds","X0","Y0","Z0","X1","Y1","Z1","X2","Y2","Z2","centroidStream","centroidPoint","centroidLineStart","centroidLineEnd","centroidRingStart","centroidRingEnd","centroidPointFirstLine","centroidPointLine","centroidPointFirstRing","centroidPointRing","PathContext","_radius","pointRadius","lengthRing","lengthSum","lengthStream","lengthPointFirst","lengthPoint","PathString","_string","_circle","ContourSeries","colorRange","contouredData","weight","density","values0","Float32Array","values1","wi","shift","transformPolygon","transformRing","transformPoint","resize","cellSize","geo","projectionStream","contextStream","measure","projection","_getDomain","getDomain","colorScale","defaultTitleFormat","getFirstNonEmptyValue","title","defaultItemsFormat","Boolean","Crosshair","items","itemsFormat","titleFormat","titleItem","innerLeft","_props$orientation","orientation","innerClassName","box","_renderCrosshairTitle","_renderCrosshairItems","DEFAULT_STYLE","predefinedComponents","points","starPoints","innerAngle","outerAngle","CustomSVGSeries","customComponent","contents","seriesComponent","positionInPixels","innerComponent","defaultType","positionFunctions","propsSize","aggStyle","getInnerComponent","onMouseEnter","onMouseLeave","decorativeAxisTick","axisDomain","numberOfTicks","axisStart","axisEnd","tickValue","tickSize","_generateFit","slope","generateFit","pointSlope","axisScale","slopeVertical","val","generatePoints","tickAngle","getAxisAngle","tickProps","textProps","textAnchor","DecorativeAxis","DEFAULT_FORMAT","strokeWidth","GradientDefs","direction","GridLines","isVertical","tickXAttr","tickYAttr","_pathProps","pos","pathProps","HeatmapSeries","rectStyle","xDistance","_getScaleDistance","yDistance","attrs","isDomainAdjustmentNeeded","thirdPi","angles","pointX","pointY","HexbinSeries","sizeHexagonsWithCount","xOffset","yOffset","hexbin","binsById","bins","py1","px1","pi2","pj2","px2","py2","id","bin","hexagon","centers","mesh","fragment","hexagonPath","hexes","countDomain","getColorDomain","getLocs","xLoc","offsetX","yLoc","offsetY","Highlight","dragging","brushArea","brushing","startLocX","startLocY","dragArea","_state","enableX","enableY","highlightWidth","highlightHeight","touchWidth","touchHeight","_state2","_state3","_state3$brushArea","clickedOutsideDragX","clickedOutsideDragY","_props5","onBrushStart","onDragStart","drag","_getLocs","startArea","resetDrag","emptyBrush","clickedOutsideDrag","_clickedOutsideDrag","_state4","_props6","onBrushEnd","onDragEnd","noHorizontal","isNulled","_convertAreaToCoordinates","_props7","onBrush","onDrag","_state5","_getLocs2","_getDrawArea","_brushArea","_getDragArea","_this3","_props8","highlightX","highlightY","_state$brushArea","leftPos","topPos","onMouseDown","startBrushing","onMouseMove","onMouseUp","stopBrushing","onTouchEnd","onTouchCancel","onContextMenuCapture","ALIGN","AUTO","LEFT_EDGE","RIGHT_EDGE","BOTTOM_EDGE","TOP_EDGE","BOTTOM_LEFT","BOTTOM_RIGHT","TOP_LEFT","TOP_RIGHT","defaultFormat","Hint","_props$align","horizontal","vertical","_mapOrientationToAlign","_getXCSS","_getYCSS","getAlignStyle","_getAlign","position","_getAlignStyle","positionClassName","_getAlignClassNames","_getCSSLeft","_getCSSRight","verticalAlign","_getCSSTop","_getCSSBottom","_getPositionInfo2","_getPositionInfo","content","formattedProp","scales","BarSeries","linePosAttr","lineSizeAttr","valueSizeAttr","barWidth","_getStackParams","lineFunctor","valueFunctor","value0Functor","fillFunctor","strokeFunctor","opacityFunctor","halfSpace","_attrs","totalSpaceAvailable","totalSpaceCenter","spacePerBar","barStartingPoint","HorizontalBarSeries","zeroBaseValue","BarSeriesCanvas","ctx","getScaleDistance","totalSpaceStartingPoint","lineSize","fillColor","strokeColor","rowOpacity","linePos","valuePos","valueSize","beginPath","fillStyle","strokeStyle","isRequired","HorizontalBarSeriesCanvas","renderLayer","HorizontalGridLines","RectSeries","line0Functor","HorizontalRectSeries","RectSeriesCanvas","line0","HorizontalRectSeriesCanvas","getTextAnchor","labelAnchorX","leftOfMiddle","getDominantBaseline","labelAnchorY","aboveMiddle","LabelSeries","allowOffsetToBeReversed","getLabel","rotation","xRange","yRange","xFunctor","yFunctor","markStyle","xVal","yVal","labelRotation","dominantBaseline","textContent","label","STROKE_STYLES","dashed","solid","LineSeries","strokeDasharray","_renderLine","MarkSeries","scalingFunctions","_renderCircle","LineMarkSeries","lineStyle","MarkSeriesCanvas","LineSeriesCanvas","lineWidth","setLineDash","LineMarkSeriesCanvas","generatePath","PolygonSeries","VerticalBarSeries","VerticalGridLines","VerticalRectSeries","NOOP","Voronoi","nodes","onBlur","_onClick","_onMouseUp","_onMouseDown","onHover","polygonStyle","handleTouchEvent","handler","_evt$nativeEvent","document","elementFromPoint","parentNode","childNodes","getNodeIndex","onTouchStart","onTouchMove","WhiskerSeries","crossBarWidth","whiskerMarkProps","sizeFunctor","valueClickHandler","valueRightClickHandler","valueMouseOverHandler","valueMouseOutHandler","positiveXVariance","xVariance","negativeXVariance","positiveYVariance","yVariance","negativeYVariance","hasXWhiskers","hasYWhiskers","styleAttr","crossBarExtension","rightLineAttrs","leftLineAttrs","rightCrossBarAttrs","leftCrossBarAttrs","upperLineAttrs","lowerLineAttrs","upperCrossBarAttrs","lowerCrossBarAttrs","getInnerDimensions","defaultMargins","margin","marginProps","_marginProps$left","_marginProps$top","_marginProps$right","_marginProps$bottom","getRadialLayoutMargin","marginX","marginY","MarginPropType","DEFAULT_MARGINS","drawLayers","layers","drawIteration","clearRect","layer","_Component","CanvasWrapper","canvas","getContext","pixelRatio","drawChildren","newChildren","oldChildren","childrenShouldAnimate","oldAnimatedProps","newAnimatedProps","drawCycle","setInterval","clearInterval","engageDrawLoop","ref","window","devicePixelRatio","cleanseData","_React$Component","XYPlot","stackBy","scaleMixins","_getScaleMixins","dontCheckIfEmpty","onDoubleClick","onWheel","nextData","nextScaleMixins","hasTreeStructure","newMixins","oldMixins","checkIfMixinsAreEqual","dimensions","seriesProps","XYPlotValues","dataProps","render","_getInnerDimensions","colorRanges","opacityType","sizeRange","filteredData","optionalScaleProps","zeroBaseProps","_child$type$getParent","getParentConfig","specifiedDomain","components","componentsToRender","isCanvas","_componentsToRender$","_isPlotEmpty","_getClonedChildComponents","_clickHandler","_doubleClickHandler","_mouseDownHandler","_mouseUpHandler","_mouseMoveHandler","_mouseLeaveHandler","_mouseEnterHandler","_touchMoveHandler","_touchEndHandler","_touchCancelHandler","_wheelHandler","renderCanvasComponents","Component","component","onParentMouseDown","onParentMouseEnter","onParentMouseLeave","onParentMouseUp","onParentTouchMove","_touchStartHandler","onParentTouchStart","AxisLine","lineProps","AxisTicks","_isAxisVertical","tickLabelAngle","_props$tickSizeOuter","tickSizeOuter","_props$tickPadding","tickPadding","labelOffset","_areTicksWrapped","_props2$tickSizeOuter","_props2$tickSizeInner","tickSizeInner","wrap","tickFormatFn","_getTickFormatFn","translateFn","_getTickContainerPropsGetterFn","_getTickLineProps","_getTickLabelProps","labelNode","shouldRenderAsOwnNode","isValidElement","includes","shouldAddProps","containerWidth","tickCount","AxisTitle","outerGroupTransform","_transformation$orien","middle","ADJUSTMENT_FOR_TEXT_SIZE","transformation","innerGroupTransform","defaultAnimatedProps","on0","Axis","_getDefaultAxisProps","attrAxis","hideLine","hideTicks","axisClassName","XAxis","YAxis","startColor","endColor","ContinuousColorLegend","midColor","startTitle","midTitle","endTitle","ContinuousSizeLegend","startSize","endSize","circlesTotal","circles","borderRadius","DiscreteColorLegendItem","disabled","strokeDasharrayStyle","DiscreteColorLegend","onItemClick","onItemMouseEnter","onItemMouseLeave","searchText","searchFn","SearchableDiscreteColorLegend","onSearchChange","searchPlaceholder","onChange","filteredItems","placeholder","getLabels","domains","ParallelCoordinates","brushFilters","hideInnerMostValues","showMarks","axes","sortedDomain","getAxes","lines","rowIndex","withinFilteredRange","mappedData","getValue","selectedName","deselectedLineStyle","getLines","labelSeries","labels","xType","yDomain","trigger","colorType","fontSize","strokeOpacity","getCoordinate","axisEndPoint","startingAngle","RadarChart","renderAxesOverPolygons","_ref3","dataPoint","getPolygons","polygonPoints","_ref4","_ref5","dataName","getPolygonPoints","xDomain","fillOpacity","RadialChart","getAngle","getSubLabel","hideRootNode","labelsAboveChildren","labelsRadiusMultiplier","labelsStyle","showLabels","getWedgesToRender","radialDomain","arcProps","radiusNoFallBack","radiusType","defaultMargin","getMaxRadius","accessors","updatedAngle","newLabels","generateLabels","getAngle0","getRadius","getRadius0","subLabel","targetDepth","justify","sourceLinks","ascendingSourceBreadth","ascendingBreadth","ascendingTargetBreadth","nodeCenter","weightedSource","weightedTarget","defaultId","defaultNodes","graph","defaultLinks","nodeById","horizontalSource","horizontalTarget","DEFAULT_LINK_COLOR","SankeyLink","onLinkClick","onLinkMouseOver","onLinkMouseOut","ALIGNMENTS","targetLinks","Sankey","hasVoronoi","hideLabels","layout","linkOpacity","nodePadding","nodeWidth","nodesCopy","linksCopy","sankeyInstance","iterations","sankey","computeNodeLinks","computeNodeValues","computeNodeDepths","computeNodeBreadths","computeLinkBreadths","ky","columns","resolveCollisions","relaxRightToLeft","relaxLeftToRight","update","nodeId","nodeAlign","nWidth","yType","rects","partition","root","eachBefore","positionNode","hierarchy","childs","Node","valued","defaultChildren","computeHeight","copyData","eachAfter","current","ancestor","aNodes","ancestors","bNodes","leastCommonAncestor","descendants","leaves","LISTENERS_TO_OVERWRITE","Sunburst","getSize","partitionFunction","structuredInput","getNodesToRender","labelData","rotateLabels","dontRotateLabel","rotAngle","labelStyle","buildLabels","propName","getColor","phi","squarifyRatio","ratio","nodeValue","sumValue","minValue","maxValue","newRatio","minRatio","rows","dice","squarify","resquarify","_squarify","B","enclosesWeak","encloseBasis","extendBasis","enclosesWeakAll","enclosesNot","encloseBasis2","encloseBasis3","dr","r2","r21","r3","a2","a3","b2","b3","c2","c3","d3","ab","xa","xb","ya","yb","place","intersects","score","packEnclose","aa","ca","sj","pack","enclose","optional","required","constantZero","defaultRadius","radiusLeaf","packChildren","translateChild","ANIMATED_PROPS","TreemapLeaf","mode","onLeafClick","onLeafMouseOver","onLeafMouseOut","useCirclePacking","leafStyle","TreemapDOM","nodeProps","TreemapSVG","_nodes$reduce","maxY","minY","maxX","minX","updatedNodes","onSeriesMouseEnter","onSeriesMouseLeave","sizeType","nodeHeight","getCircularNodes","getNonCircularNodes","TREEMAP_TILE_MODES","slicedice","binary","valueOffset","valueTarget","valueLeft","valueRight","xk","yk","_getScaleFns","compatibleProps","Treemap","sortFunction","mappedNodes","packingFunction","tileFn","tile","paddingStack","paddingTop","paddingRight","paddingBottom","paddingLeft","treemap","treemapingFunction","renderMode","_getNodesToRender","TreemapElement","resizeSubscribers","timeoutId","debounceEmitResize","clearTimeout","setTimeout","emitResize","cb","subscribeToDebouncedResize","addEventListener","removeSubscriber","removeEventListener","makeFlexible","isWidthFlexible","isHeightFlexible","ResultClass","_onResize","containerElement","offsetHeight","offsetWidth","newHeight","newWidth","_Component$propTypes","cancelSubscription","updatedDimensions","getDisplayName","FlexibleWidthXYPlot","makeHeightFlexible","makeVisFlexible","Graph","_onMouseLeave","crosshairValues","_onNearestX","Crossdata","Data","CrostitleData","crosshairItems","barvalue","GetCrosshairItems","Items","componentDidMount","Type","Json_data","split","itle","Yaxis","strokeLinejoin","whiteSpace","caption","swappedArray","swappedLabel","barHeight","swappedData","swap","fontFamily","fontWeight","pie_data","Label","sub","sublabel","inner","outer","textAlign","ArticleContent","Content","backgroundColor","HeaderBackgroundColour","HeaderTitleColour","escapeHtml","aria-hidden","BackgroundColour","xmlns","viewBox","Image","inline","StrapiImage","imageInfo","wistia_id","hashedId","playerColor","mp3","src","publicURL","customAdditionalControls","onPlay","gtag","Location","rel","href","teaser","DisplayType","TitleColour","Title","TextColour","skipHtml","Tile_text_pacement","accordian_item","column_item","Tag","fluid","returnImage","overlayOpacity","buttontext","LinkedIn","Email","ContactObject","showBioPage","to","slug","itemScope","itemType","itemProp","borderColor","image","childImageSharp","Social","email","ArticlesTemplate","layoutContents","React","createRef","layoutWrapper","strapiArticleGraph","strapiArticles","strapiGraphs","allStrapiGraphs","theme","metaName","metaDescription","Meta_description","metaImage","Header_image","isSticky","wasSticky","allStrapiMicrosites","MainColor","sections","textColour","MenuTextColor","hightlightColor","secondColor","handleShow","HomeBut","article_authors","textColor","Homepage","pardot_form","AltDownload","Download","AltImage","Download_preview","altTitle","altMessage","Download_message","related_content","MainColour","Ctor","arrayLikeKeys","baseKeys","isArrayLike","hasSymbols","origDefineProperty","hasPropertyDescriptors","supportsDescriptors","predicate","fn","predicates","getOwnPropertySymbols","isSymbol","reIsDeepProp","reIsPlainProp","isPrototype","nativeKeys","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","getProto","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","Atomics","BigInt","BigInt64Array","BigUint64Array","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","EvalError","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","JSON","Promise","Proxy","RangeError","Reflect","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakMap","WeakRef","WeakSet","errorProto","LEGACY_ALIASES","bind","hasOwn","$concat","$spliceApply","$replace","$strSlice","rePropName","reEscapeChar","first","last","quote","subString","getBaseIntrinsic","allowMissing","alias","intrinsicName","doEval","gen","parts","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","part","desc","nativeObjectToString","symToStringTag","tag","unmasked","isObject","baseIsNative","stubFalse","freeExports","nodeType","freeModule","Buffer","isBuffer","anObject","tryToString","isArrayIteratorMethod","lengthOfArrayLike","isPrototypeOf","getIterator","getIteratorMethod","iteratorClose","Result","stopped","ResultPrototype","iterable","unboundFunction","options","iterFn","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","condition","callFn","tryDateObject","uid","maskSrcKey","IE_PROTO","sym","symObj","getOwnPropertyNames","syms","baseExtremum","baseGt","baseIteratee","iteratee","baseIsEqual","hasIn","isStrictComparable","matchesStrictComparable","srcValue","objValue","COMPARE_PARTIAL_FLAG","memoizeCapped","getMapData","eq","equalArrays","mapToArray","setToArray","symbolProto","symbolValueOf","other","bitmask","customizer","equalFunc","byteLength","byteOffset","message","convert","isPartial","stacked","TypeErr","regex","polyfill","baseRange","isIterateeCall","toFinite","fromRight","getNative","functionsHaveNames","functionsHaveConfigurableNames","$bind","boundFunctionsHaveNames","nativeCreate","activeXDocument","definePropertiesModule","hiddenKeys","html","documentCreateElement","sharedKey","EmptyConstructor","scriptTag","LT","NullProtoObjectViaActiveX","write","close","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","display","appendChild","contentWindow","open","F","Properties","freeGlobal","freeSelf","gentle","wobbly","stiff","resIndex","isFunction","arrayFilter","stubArray","nativeGetSymbols","getSymbols","isMasked","toSource","reIsHostCtor","funcProto","reIsNative","getRawTag","objectToString","DESCRIPTORS","V8_PROTOTYPE_DEFINE_BUG","definePropertyModule","toIndexedObject","objectKeys","GetIntrinsic","$apply","$call","$reflectApply","$defineProperty","$max","originalFunction","applyBind","isKeyable","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","resolve","ctorString","nativeCeil","nativeMax","reWhitespace","origSymbol","hasSymbolSham","flags","dotAll","hasIndices","calls","overArg","$indexOf","$Object","global","ignoreCase","multiline","unicode","sticky","is","createRange","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","webpackPolyfill","deprecate","paths","ret","toNumber","baseIsMatch","getMatchData","matchData","hasArrayLengthDefineBug","getMethod","kind","innerResult","innerError","ERROR_MESSAGE","bound","binder","boundLength","boundArgs","Empty","classof","isNullOrUndefined","baseTimes","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","getNanoSeconds","hrtime","loadTime","performance","now","process","hr","getTime","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","typedArrayTags","baseToString","comparator","computed","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","Stack","equalByTag","equalObjects","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","uncurryThis","aCallable","NATIVE_BIND","isRegex","isDate","deepEqual","actual","expected","opts","strict","isUndefinedOrNull","aIsRegex","bIsRegex","aIsBuffer","bIsBuffer","ka","kb","objEquiv","arrayPush","keysFunc","symbolsFunc","secondPerFrame","destX","newV","newX","reusedTuple","stackClear","stackDelete","stackGet","stackHas","stackSet","fails","createPropertyDescriptor","getBuiltIn","$Error","TEST","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","prepareStackTrace","baseHasIn","hasPath","trimmedEndIndex","reTrimStart","currentStyle","currentVelocity","styleValue","arg","createNonEnumerableProperty","clearErrorStack","ERROR_STACK_INSTALLABLE","captureStackTrace","noCustomizer","freeProcess","types","require","binding","arraySome","cacheHas","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","_interopRequireDefault","_mapToZero2","_stripStyle2","_stepper4","_mergeDiff2","_performanceNow2","_raf2","_shouldStopAnimation2","_react2","_propTypes2","rehydrateStyles","mergedPropsStyles","unreadPropStyles","plainStyles","cUnreadPropStyles","mergedPropsStyle","mergeAndSync","willEnter","willLeave","didLeave","oldMergedPropsStyles","destStyles","oldCurrentStyles","oldCurrentVelocities","oldLastIdealStyles","oldLastIdealVelocities","newMergedPropsStyles","oldIndex","oldMergedPropsStyle","leavingStyle","newCurrentStyles","newCurrentVelocities","newLastIdealStyles","newLastIdealVelocities","newMergedPropsStyleCell","foundOldIndex","plainStyle","velocity","unmounting","animationID","prevTime","accumulatedTime","clearUnreadPropStyle","_mergeAndSync","currentStyles","currentVelocities","lastIdealStyles","lastIdealVelocities","unreadPropStyle","dirty","startAnimationIfNecessary","timestamp","propStyles","styles","shouldStopAnimationAll","currentTime","timeDelta","currentFrameCompletion","framesToCatchUp","_mergeAndSync2","newMergedPropsStyle","newCurrentStyle","newCurrentVelocity","newLastIdealStyle","newLastIdealVelocity","newLastIdealStyleValue","newLastIdealVelocityValue","_stepper","_stepper2","nextIdealX","nextIdealV","defaultState","defaultStyles","objectOf","styleThatEntered","defaultStyleCell","_mergeAndSync3","componentWillReceiveProps","componentWillUnmount","cancel","hydratedStyles","renderedChildren","onRemove","prevKeyIndex","nextKeyIndex","nextOrderA","nextOrderB","prevOrderA","prevOrderB","pivot","_React$version$split2","version","major","minor","versionHigherThanThirteen","getDOMNode","USED_MESSAGES","HIDDEN_PROCESSES","warning","onlyShowMessageOnce","console","warn","baseGetAllKeys","usingIterator","iteratorMethod","cause","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","isString","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","config","defaultConfig","_presets2","someDirty","destStyle","baseMatches","baseMatchesProperty","identity","win","baseIsEqualDeep","reIsUint","wasAnimating","lastIdealStyle","lastIdealVelocity","propsStyle","$","copyConstructorProperties","installErrorCause","installErrorStack","iterate","normalizeStringArgument","TO_STRING_TAG","$AggregateError","errors","isInstance","AggregateErrorPrototype","errorsArray","arity","arrayMap","symbolToString"],"mappings":"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","file":"component---src-templates-articles-js-4341de8c82c8acd38088.js","sourcesContent":["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 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 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 baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var 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","'use strict';\n\nexports.__esModule = true;\nfunction _interopRequire(obj) {\n return obj && obj.__esModule ? obj['default'] : obj;\n}\nvar _Motion = require('./Motion');\nexports.Motion = _interopRequire(_Motion);\nvar _StaggeredMotion = require('./StaggeredMotion');\nexports.StaggeredMotion = _interopRequire(_StaggeredMotion);\nvar _TransitionMotion = require('./TransitionMotion');\nexports.TransitionMotion = _interopRequire(_TransitionMotion);\nvar _spring = require('./spring');\nexports.spring = _interopRequire(_spring);\nvar _presets = require('./presets');\nexports.presets = _interopRequire(_presets);\nvar _stripStyle = require('./stripStyle');\nexports.stripStyle = _interopRequire(_stripStyle);\n\n// deprecated, dummy warning function\n\nvar _reorderKeys = require('./reorderKeys');\nexports.reorderKeys = _interopRequire(_reorderKeys);","/**\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","'use strict';\n\nvar toStr = Object.prototype.toString;\nmodule.exports = function isArguments(value) {\n var str = toStr.call(value);\n var isArgs = str === '[object Arguments]';\n if (!isArgs) {\n isArgs = str !== '[object Array]' && value !== null && typeof value === 'object' && typeof value.length === 'number' && value.length >= 0 && toStr.call(value.callee) === '[object Function]';\n }\n return isArgs;\n};","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var 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","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) {\n return origKeys(o);\n} : require('./implementation');\nvar originalKeys = Object.keys;\nkeysShim.shim = function shimObjectKeys() {\n if (Object.keys) {\n var keysWorksWithArguments = function () {\n // Safari 5.0 bug\n var args = Object.keys(arguments);\n return args && args.length === arguments.length;\n }(1, 2);\n if (!keysWorksWithArguments) {\n Object.keys = function keys(object) {\n // eslint-disable-line func-name-matching\n if (isArgs(object)) {\n return originalKeys(slice.call(object));\n }\n return originalKeys(object);\n };\n }\n } else {\n Object.keys = keysShim;\n }\n return Object.keys || keysShim;\n};\nmodule.exports = keysShim;","'use strict';\n\nvar numberIsNaN = function numberIsNaN(value) {\n return value !== value;\n};\nmodule.exports = function is(a, b) {\n if (a === 0 && b === 0) {\n return 1 / a === 1 / b;\n }\n if (a === b) {\n return true;\n }\n if (numberIsNaN(a) && numberIsNaN(b)) {\n return true;\n }\n return false;\n};","'use strict';\n\nvar callBound = require('call-bind/callBound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\nif (hasToStringTag) {\n has = callBound('Object.prototype.hasOwnProperty');\n $exec = callBound('RegExp.prototype.exec');\n isRegexMarker = {};\n var throwRegexMarker = function throwRegexMarker() {\n throw isRegexMarker;\n };\n badStringifier = {\n toString: throwRegexMarker,\n valueOf: throwRegexMarker\n };\n if (typeof Symbol.toPrimitive === 'symbol') {\n badStringifier[Symbol.toPrimitive] = throwRegexMarker;\n }\n}\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\nmodule.exports = hasToStringTag\n// eslint-disable-next-line consistent-return\n? function isRegex(value) {\n if (!value || typeof value !== 'object') {\n return false;\n }\n var descriptor = gOPD(value, 'lastIndex');\n var hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n if (!hasLastIndexDataProperty) {\n return false;\n }\n try {\n $exec(value, badStringifier);\n } catch (e) {\n return e === isRegexMarker;\n }\n} : function isRegex(value) {\n // In older browsers, typeof regex incorrectly returns 'function'\n if (!value || typeof value !== 'object' && typeof value !== 'function') {\n return false;\n }\n return $toString(value) === regexClass;\n};","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/**\n * 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","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var 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","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\nvar $toString = callBound('Object.prototype.toString');\nvar isStandardArguments = function isArguments(value) {\n if (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n return false;\n }\n return $toString(value) === '[object Arguments]';\n};\nvar isLegacyArguments = function isArguments(value) {\n if (isStandardArguments(value)) {\n return true;\n }\n return value !== null && typeof value === 'object' && typeof value.length === 'number' && value.length >= 0 && $toString(value) !== '[object Array]' && $toString(value.callee) === '[object Function]';\n};\nvar supportsStandardArguments = function () {\n return isStandardArguments(arguments);\n}();\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;","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 toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\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 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","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\nvar flagsBound = callBind(getPolyfill());\ndefine(flagsBound, {\n getPolyfill: getPolyfill,\n implementation: implementation,\n shim: shim\n});\nmodule.exports = flagsBound;","export default function (x) {\n return function () {\n return x;\n };\n}","export function x(d) {\n return d[0];\n}\nexport function y(d) {\n return d[1];\n}","function RedBlackTree() {\n this._ = null; // root node\n}\n\nexport function RedBlackNode(node) {\n node.U =\n // parent node\n node.C =\n // color - true for red, false for black\n node.L =\n // left node\n node.R =\n // right node\n node.P =\n // previous node\n node.N = null; // next node\n}\n\nRedBlackTree.prototype = {\n constructor: RedBlackTree,\n insert: function insert(after, node) {\n var parent, grandpa, uncle;\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n if (after.R) {\n after = after.R;\n while (after.L) after = after.L;\n after.L = node;\n } else {\n after.R = node;\n }\n parent = after;\n } else if (this._) {\n after = RedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n after = node;\n while (parent && parent.C) {\n grandpa = parent.U;\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n RedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n RedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateLeft(this, grandpa);\n }\n }\n parent = after.U;\n }\n this._.C = false;\n },\n remove: function remove(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n var parent = node.U,\n sibling,\n left = node.L,\n right = node.R,\n next,\n red;\n if (!left) next = right;else if (!right) next = left;else next = RedBlackFirst(right);\n if (parent) {\n if (parent.L === node) parent.L = next;else parent.R = next;\n } else {\n this._ = next;\n }\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n if (node) node.U = parent;\n if (red) return;\n if (node && node.C) {\n node.C = false;\n return;\n }\n do {\n if (node === this._) break;\n if (node === parent.L) {\n sibling = parent.R;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n RedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n RedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n RedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n RedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n if (node) node.C = false;\n }\n};\nfunction RedBlackRotateLeft(tree, node) {\n var p = node,\n q = node.R,\n parent = p.U;\n if (parent) {\n if (parent.L === p) parent.L = q;else parent.R = q;\n } else {\n tree._ = q;\n }\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n}\nfunction RedBlackRotateRight(tree, node) {\n var p = node,\n q = node.L,\n parent = p.U;\n if (parent) {\n if (parent.L === p) parent.L = q;else parent.R = q;\n } else {\n tree._ = q;\n }\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n}\nfunction RedBlackFirst(node) {\n while (node.L) node = node.L;\n return node;\n}\nexport default RedBlackTree;","import { cells, edges, epsilon } from \"./Diagram\";\nexport function createEdge(left, right, v0, v1) {\n var edge = [null, null],\n index = edges.push(edge) - 1;\n edge.left = left;\n edge.right = right;\n if (v0) setEdgeEnd(edge, left, right, v0);\n if (v1) setEdgeEnd(edge, right, left, v1);\n cells[left.index].halfedges.push(index);\n cells[right.index].halfedges.push(index);\n return edge;\n}\nexport function createBorderEdge(left, v0, v1) {\n var edge = [v0, v1];\n edge.left = left;\n return edge;\n}\nexport function setEdgeEnd(edge, left, right, vertex) {\n if (!edge[0] && !edge[1]) {\n edge[0] = vertex;\n edge.left = left;\n edge.right = right;\n } else if (edge.left === right) {\n edge[1] = vertex;\n } else {\n edge[0] = vertex;\n }\n}\n\n// Liang–Barsky line clipping.\nfunction clipEdge(edge, x0, y0, x1, y1) {\n var a = edge[0],\n b = edge[1],\n ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n if (!(t0 > 0) && !(t1 < 1)) return true; // TODO Better check?\n\n if (t0 > 0) edge[0] = [ax + t0 * dx, ay + t0 * dy];\n if (t1 < 1) edge[1] = [ax + t1 * dx, ay + t1 * dy];\n return true;\n}\nfunction connectEdge(edge, x0, y0, x1, y1) {\n var v1 = edge[1];\n if (v1) return true;\n var v0 = edge[0],\n left = edge.left,\n right = edge.right,\n lx = left[0],\n ly = left[1],\n rx = right[0],\n ry = right[1],\n fx = (lx + rx) / 2,\n fy = (ly + ry) / 2,\n fm,\n fb;\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n if (lx > rx) {\n if (!v0) v0 = [fx, y0];else if (v0[1] >= y1) return;\n v1 = [fx, y1];\n } else {\n if (!v0) v0 = [fx, y1];else if (v0[1] < y0) return;\n v1 = [fx, y0];\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!v0) v0 = [(y0 - fb) / fm, y0];else if (v0[1] >= y1) return;\n v1 = [(y1 - fb) / fm, y1];\n } else {\n if (!v0) v0 = [(y1 - fb) / fm, y1];else if (v0[1] < y0) return;\n v1 = [(y0 - fb) / fm, y0];\n }\n } else {\n if (ly < ry) {\n if (!v0) v0 = [x0, fm * x0 + fb];else if (v0[0] >= x1) return;\n v1 = [x1, fm * x1 + fb];\n } else {\n if (!v0) v0 = [x1, fm * x1 + fb];else if (v0[0] < x0) return;\n v1 = [x0, fm * x0 + fb];\n }\n }\n }\n edge[0] = v0;\n edge[1] = v1;\n return true;\n}\nexport function clipEdges(x0, y0, x1, y1) {\n var i = edges.length,\n edge;\n while (i--) {\n if (!connectEdge(edge = edges[i], x0, y0, x1, y1) || !clipEdge(edge, x0, y0, x1, y1) || !(Math.abs(edge[0][0] - edge[1][0]) > epsilon || Math.abs(edge[0][1] - edge[1][1]) > epsilon)) {\n delete edges[i];\n }\n }\n}","import \"core-js/modules/es.array.sort.js\";\nimport { createBorderEdge } from \"./Edge\";\nimport { cells, edges, epsilon } from \"./Diagram\";\nexport function createCell(site) {\n return cells[site.index] = {\n site: site,\n halfedges: []\n };\n}\nfunction cellHalfedgeAngle(cell, edge) {\n var site = cell.site,\n va = edge.left,\n vb = edge.right;\n if (site === vb) vb = va, va = site;\n if (vb) return Math.atan2(vb[1] - va[1], vb[0] - va[0]);\n if (site === va) va = edge[1], vb = edge[0];else va = edge[0], vb = edge[1];\n return Math.atan2(va[0] - vb[0], vb[1] - va[1]);\n}\nexport function cellHalfedgeStart(cell, edge) {\n return edge[+(edge.left !== cell.site)];\n}\nexport function cellHalfedgeEnd(cell, edge) {\n return edge[+(edge.left === cell.site)];\n}\nexport function sortCellHalfedges() {\n for (var i = 0, n = cells.length, cell, halfedges, j, m; i < n; ++i) {\n if ((cell = cells[i]) && (m = (halfedges = cell.halfedges).length)) {\n var index = new Array(m),\n array = new Array(m);\n for (j = 0; j < m; ++j) index[j] = j, array[j] = cellHalfedgeAngle(cell, edges[halfedges[j]]);\n index.sort(function (i, j) {\n return array[j] - array[i];\n });\n for (j = 0; j < m; ++j) array[j] = halfedges[index[j]];\n for (j = 0; j < m; ++j) halfedges[j] = array[j];\n }\n }\n}\nexport function clipCells(x0, y0, x1, y1) {\n var nCells = cells.length,\n iCell,\n cell,\n site,\n iHalfedge,\n halfedges,\n nHalfedges,\n start,\n startX,\n startY,\n end,\n endX,\n endY,\n cover = true;\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n halfedges = cell.halfedges;\n iHalfedge = halfedges.length;\n\n // Remove any dangling clipped edges.\n while (iHalfedge--) {\n if (!edges[halfedges[iHalfedge]]) {\n halfedges.splice(iHalfedge, 1);\n }\n }\n\n // Insert any border edges as necessary.\n iHalfedge = 0, nHalfedges = halfedges.length;\n while (iHalfedge < nHalfedges) {\n end = cellHalfedgeEnd(cell, edges[halfedges[iHalfedge]]), endX = end[0], endY = end[1];\n start = cellHalfedgeStart(cell, edges[halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];\n if (Math.abs(endX - startX) > epsilon || Math.abs(endY - startY) > epsilon) {\n halfedges.splice(iHalfedge, 0, edges.push(createBorderEdge(site, end, Math.abs(endX - x0) < epsilon && y1 - endY > epsilon ? [x0, Math.abs(startX - x0) < epsilon ? startY : y1] : Math.abs(endY - y1) < epsilon && x1 - endX > epsilon ? [Math.abs(startY - y1) < epsilon ? startX : x1, y1] : Math.abs(endX - x1) < epsilon && endY - y0 > epsilon ? [x1, Math.abs(startX - x1) < epsilon ? startY : y0] : Math.abs(endY - y0) < epsilon && endX - x0 > epsilon ? [Math.abs(startY - y0) < epsilon ? startX : x0, y0] : null)) - 1);\n ++nHalfedges;\n }\n }\n if (nHalfedges) cover = false;\n }\n }\n\n // If there weren’t any edges, have the closest site cover the extent.\n // It doesn’t matter which corner of the extent we measure!\n if (cover) {\n var dx,\n dy,\n d2,\n dc = Infinity;\n for (iCell = 0, cover = null; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n dx = site[0] - x0;\n dy = site[1] - y0;\n d2 = dx * dx + dy * dy;\n if (d2 < dc) dc = d2, cover = cell;\n }\n }\n if (cover) {\n var v00 = [x0, y0],\n v01 = [x0, y1],\n v11 = [x1, y1],\n v10 = [x1, y0];\n cover.halfedges.push(edges.push(createBorderEdge(site = cover.site, v00, v01)) - 1, edges.push(createBorderEdge(site, v01, v11)) - 1, edges.push(createBorderEdge(site, v11, v10)) - 1, edges.push(createBorderEdge(site, v10, v00)) - 1);\n }\n }\n\n // Lastly delete any cells with no edges; these were entirely clipped.\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n if (!cell.halfedges.length) {\n delete cells[iCell];\n }\n }\n }\n}","import { RedBlackNode } from \"./RedBlackTree\";\nimport { circles, epsilon2 } from \"./Diagram\";\nvar circlePool = [];\nexport var firstCircle;\nfunction Circle() {\n RedBlackNode(this);\n this.x = this.y = this.arc = this.site = this.cy = null;\n}\nexport function attachCircle(arc) {\n var lArc = arc.P,\n rArc = arc.N;\n if (!lArc || !rArc) return;\n var lSite = lArc.site,\n cSite = arc.site,\n rSite = rArc.site;\n if (lSite === rSite) return;\n var bx = cSite[0],\n by = cSite[1],\n ax = lSite[0] - bx,\n ay = lSite[1] - by,\n cx = rSite[0] - bx,\n cy = rSite[1] - by;\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -epsilon2) return;\n var ha = ax * ax + ay * ay,\n hc = cx * cx + cy * cy,\n x = (cy * ha - ay * hc) / d,\n y = (ax * hc - cx * ha) / d;\n var circle = circlePool.pop() || new Circle();\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = (circle.cy = y + by) + Math.sqrt(x * x + y * y); // y bottom\n\n arc.circle = circle;\n var before = null,\n node = circles._;\n while (node) {\n if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) {\n if (node.L) node = node.L;else {\n before = node.P;\n break;\n }\n } else {\n if (node.R) node = node.R;else {\n before = node;\n break;\n }\n }\n }\n circles.insert(before, circle);\n if (!before) firstCircle = circle;\n}\nexport function detachCircle(arc) {\n var circle = arc.circle;\n if (circle) {\n if (!circle.P) firstCircle = circle.N;\n circles.remove(circle);\n circlePool.push(circle);\n RedBlackNode(circle);\n arc.circle = null;\n }\n}","import { RedBlackNode } from \"./RedBlackTree\";\nimport { createCell } from \"./Cell\";\nimport { attachCircle, detachCircle } from \"./Circle\";\nimport { createEdge, setEdgeEnd } from \"./Edge\";\nimport { beaches, epsilon } from \"./Diagram\";\nvar beachPool = [];\nfunction Beach() {\n RedBlackNode(this);\n this.edge = this.site = this.circle = null;\n}\nfunction createBeach(site) {\n var beach = beachPool.pop() || new Beach();\n beach.site = site;\n return beach;\n}\nfunction detachBeach(beach) {\n detachCircle(beach);\n beaches.remove(beach);\n beachPool.push(beach);\n RedBlackNode(beach);\n}\nexport function removeBeach(beach) {\n var circle = beach.circle,\n x = circle.x,\n y = circle.cy,\n vertex = [x, y],\n previous = beach.P,\n next = beach.N,\n disappearing = [beach];\n detachBeach(beach);\n var lArc = previous;\n while (lArc.circle && Math.abs(x - lArc.circle.x) < epsilon && Math.abs(y - lArc.circle.cy) < epsilon) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n detachBeach(lArc);\n lArc = previous;\n }\n disappearing.unshift(lArc);\n detachCircle(lArc);\n var rArc = next;\n while (rArc.circle && Math.abs(x - rArc.circle.x) < epsilon && Math.abs(y - rArc.circle.cy) < epsilon) {\n next = rArc.N;\n disappearing.push(rArc);\n detachBeach(rArc);\n rArc = next;\n }\n disappearing.push(rArc);\n detachCircle(rArc);\n var nArcs = disappearing.length,\n iArc;\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n setEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = createEdge(lArc.site, rArc.site, null, vertex);\n attachCircle(lArc);\n attachCircle(rArc);\n}\nexport function addBeach(site) {\n var x = site[0],\n directrix = site[1],\n lArc,\n rArc,\n dxl,\n dxr,\n node = beaches._;\n while (node) {\n dxl = leftBreakPoint(node, directrix) - x;\n if (dxl > epsilon) node = node.L;else {\n dxr = x - rightBreakPoint(node, directrix);\n if (dxr > epsilon) {\n if (!node.R) {\n lArc = node;\n break;\n }\n node = node.R;\n } else {\n if (dxl > -epsilon) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -epsilon) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n break;\n }\n }\n }\n createCell(site);\n var newArc = createBeach(site);\n beaches.insert(lArc, newArc);\n if (!lArc && !rArc) return;\n if (lArc === rArc) {\n detachCircle(lArc);\n rArc = createBeach(lArc.site);\n beaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = createEdge(lArc.site, newArc.site);\n attachCircle(lArc);\n attachCircle(rArc);\n return;\n }\n if (!rArc) {\n // && lArc\n newArc.edge = createEdge(lArc.site, newArc.site);\n return;\n }\n\n // else lArc !== rArc\n detachCircle(lArc);\n detachCircle(rArc);\n var lSite = lArc.site,\n ax = lSite[0],\n ay = lSite[1],\n bx = site[0] - ax,\n by = site[1] - ay,\n rSite = rArc.site,\n cx = rSite[0] - ax,\n cy = rSite[1] - ay,\n d = 2 * (bx * cy - by * cx),\n hb = bx * bx + by * by,\n hc = cx * cx + cy * cy,\n vertex = [(cy * hb - by * hc) / d + ax, (bx * hc - cx * hb) / d + ay];\n setEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = createEdge(lSite, site, null, vertex);\n rArc.edge = createEdge(site, rSite, null, vertex);\n attachCircle(lArc);\n attachCircle(rArc);\n}\nfunction leftBreakPoint(arc, directrix) {\n var site = arc.site,\n rfocx = site[0],\n rfocy = site[1],\n pby2 = rfocy - directrix;\n if (!pby2) return rfocx;\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n site = lArc.site;\n var lfocx = site[0],\n lfocy = site[1],\n plby2 = lfocy - directrix;\n if (!plby2) return lfocx;\n var hl = lfocx - rfocx,\n aby2 = 1 / pby2 - 1 / plby2,\n b = hl / plby2;\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n return (rfocx + lfocx) / 2;\n}\nfunction rightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return leftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site[1] === directrix ? site[0] : Infinity;\n}","import \"core-js/modules/es.array.sort.js\";\nimport { addBeach, removeBeach } from \"./Beach\";\nimport { sortCellHalfedges, cellHalfedgeStart, clipCells } from \"./Cell\";\nimport { firstCircle } from \"./Circle\";\nimport { clipEdges } from \"./Edge\";\nimport RedBlackTree from \"./RedBlackTree\";\nexport var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var beaches;\nexport var cells;\nexport var circles;\nexport var edges;\nfunction triangleArea(a, b, c) {\n return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);\n}\nfunction lexicographic(a, b) {\n return b[1] - a[1] || b[0] - a[0];\n}\nexport default function Diagram(sites, extent) {\n var site = sites.sort(lexicographic).pop(),\n x,\n y,\n circle;\n edges = [];\n cells = new Array(sites.length);\n beaches = new RedBlackTree();\n circles = new RedBlackTree();\n while (true) {\n circle = firstCircle;\n if (site && (!circle || site[1] < circle.y || site[1] === circle.y && site[0] < circle.x)) {\n if (site[0] !== x || site[1] !== y) {\n addBeach(site);\n x = site[0], y = site[1];\n }\n site = sites.pop();\n } else if (circle) {\n removeBeach(circle.arc);\n } else {\n break;\n }\n }\n sortCellHalfedges();\n if (extent) {\n var x0 = +extent[0][0],\n y0 = +extent[0][1],\n x1 = +extent[1][0],\n y1 = +extent[1][1];\n clipEdges(x0, y0, x1, y1);\n clipCells(x0, y0, x1, y1);\n }\n this.edges = edges;\n this.cells = cells;\n beaches = circles = edges = cells = null;\n}\nDiagram.prototype = {\n constructor: Diagram,\n polygons: function polygons() {\n var edges = this.edges;\n return this.cells.map(function (cell) {\n var polygon = cell.halfedges.map(function (i) {\n return cellHalfedgeStart(cell, edges[i]);\n });\n polygon.data = cell.site.data;\n return polygon;\n });\n },\n triangles: function triangles() {\n var triangles = [],\n edges = this.edges;\n this.cells.forEach(function (cell, i) {\n if (!(m = (halfedges = cell.halfedges).length)) return;\n var site = cell.site,\n halfedges,\n j = -1,\n m,\n s0,\n e1 = edges[halfedges[m - 1]],\n s1 = e1.left === site ? e1.right : e1.left;\n while (++j < m) {\n s0 = s1;\n e1 = edges[halfedges[j]];\n s1 = e1.left === site ? e1.right : e1.left;\n if (s0 && s1 && i < s0.index && i < s1.index && triangleArea(site, s0, s1) < 0) {\n triangles.push([site.data, s0.data, s1.data]);\n }\n }\n });\n return triangles;\n },\n links: function links() {\n return this.edges.filter(function (edge) {\n return edge.right;\n }).map(function (edge) {\n return {\n source: edge.left.data,\n target: edge.right.data\n };\n });\n },\n find: function find(x, y, radius) {\n var that = this,\n i0,\n i1 = that._found || 0,\n n = that.cells.length,\n cell;\n\n // Use the previously-found cell, or start with an arbitrary one.\n while (!(cell = that.cells[i1])) if (++i1 >= n) return null;\n var dx = x - cell.site[0],\n dy = y - cell.site[1],\n d2 = dx * dx + dy * dy;\n\n // Traverse the half-edges to find a closer cell, if any.\n do {\n cell = that.cells[i0 = i1], i1 = null;\n cell.halfedges.forEach(function (e) {\n var edge = that.edges[e],\n v = edge.left;\n if ((v === cell.site || !v) && !(v = edge.right)) return;\n var vx = x - v[0],\n vy = y - v[1],\n v2 = vx * vx + vy * vy;\n if (v2 < d2) d2 = v2, i1 = v.index;\n });\n } while (i1 !== null);\n that._found = i0;\n return radius == null || d2 <= radius * radius ? cell.site : null;\n }\n};","import constant from \"./constant\";\nimport { x as pointX, y as pointY } from \"./point\";\nimport Diagram, { epsilon } from \"./Diagram\";\nexport default function () {\n var x = pointX,\n y = pointY,\n extent = null;\n function voronoi(data) {\n return new Diagram(data.map(function (d, i) {\n var s = [Math.round(x(d, i, data) / epsilon) * epsilon, Math.round(y(d, i, data) / epsilon) * epsilon];\n s.index = i;\n s.data = d;\n return s;\n }), extent);\n }\n voronoi.polygons = function (data) {\n return voronoi(data).polygons();\n };\n voronoi.links = function (data) {\n return voronoi(data).links();\n };\n voronoi.triangles = function (data) {\n return voronoi(data).triangles();\n };\n voronoi.x = function (_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), voronoi) : x;\n };\n voronoi.y = function (_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), voronoi) : y;\n };\n voronoi.extent = function (_) {\n return arguments.length ? (extent = _ == null ? null : [[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]], voronoi) : extent && [[extent[0][0], extent[0][1]], [extent[1][0], extent[1][1]]];\n };\n voronoi.size = function (_) {\n return arguments.length ? (extent = _ == null ? null : [[0, 0], [+_[0], +_[1]]], voronoi) : extent && [extent[1][0] - extent[0][0], extent[1][1] - extent[0][1]];\n };\n return voronoi;\n}","export default function (constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\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}","import define, { extend } from \"./define.js\";\nexport function Color() {}\nvar _darker = 0.7;\nexport { _darker as darker };\nvar _brighter = 1 / _darker;\nexport { _brighter as brighter };\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] + \"\\\\)$\");\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};\ndefine(Color, color, {\n copy: function copy(channels) {\n return Object.assign(new this.constructor(), this, channels);\n },\n displayable: function displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\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) : null;\n}\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\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}\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\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}\ndefine(Rgb, rgb, extend(Color, {\n brighter: function 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: function 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: function rgb() {\n return this;\n },\n displayable: function displayable() {\n return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;\n },\n hex: rgb_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\nfunction rgb_formatRgb() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (a === 1 ? \")\" : \", \" + a + \")\");\n}\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;else if (l <= 0 || l >= 1) h = s = NaN;else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\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;else if (g === max) h = (b - r) / s + 2;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}\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\ndefine(Hsl, hsl, extend(Color, {\n brighter: function 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: function 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: function 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(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity);\n },\n displayable: function displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;\n },\n formatHsl: function formatHsl() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\") + (this.h || 0) + \", \" + (this.s || 0) * 100 + \"%, \" + (this.l || 0) * 100 + \"%\" + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;\n}","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1,\n t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6;\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}","export default function (x) {\n return function () {\n return x;\n };\n}","import constant from \"./constant.js\";\nfunction linear(a, d) {\n return function (t) {\n return a + t * d;\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}\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}\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}\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}","import { rgb as colorRgb } from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, { gamma } from \"./color.js\";\nexport default (function rgbGamma(y) {\n var color = gamma(y);\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 rgb.gamma = rgbGamma;\n return rgb;\n})(1);\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,\n 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}\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);","import { basis } from \"./basis.js\";\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}","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}\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}","import value from \"./value.js\";\nimport numberArray, { isNumberArray } from \"./numberArray.js\";\nexport default function (a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\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 for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n return function (t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\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}","export default function (a, b) {\n return a = +a, b = +b, function (t) {\n return a * (1 - t) + b * t;\n };\n}","import value from \"./value.js\";\nexport default function (a, b) {\n var i = {},\n c = {},\n k;\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\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 return function (t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}","import number from \"./number.js\";\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\nfunction zero(b) {\n return function () {\n return b;\n };\n}\nfunction one(b) {\n return function (t) {\n return b(t) + \"\";\n };\n}\nexport default function (a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0,\n // scan index for next number in b\n am,\n // current match in a\n bm,\n // current match in b\n bs,\n // string preceding current number in b, if any\n i = -1,\n // index in s\n s = [],\n // 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)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n // 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])) {\n // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else {\n // interpolate non-matching numbers\n s[++i] = null;\n q.push({\n i: i,\n x: number(am, bm)\n });\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] ? one(q[0].x) : zero(b) : (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}","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\";\nexport default function (a, b) {\n var t = typeof b,\n c;\n return b == null || t === \"boolean\" ? constant(b) : (t === \"number\" ? number : t === \"string\" ? (c = color(b)) ? (b = c, rgb) : string : b instanceof color ? rgb : b instanceof Date ? date : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object : number)(a, b);\n}","import \"core-js/modules/es.array.reduce.js\";\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n return target;\n}\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { interpolate } from 'd3-interpolate';\nimport { spring, Motion, presets } from 'react-motion';\nvar ANIMATION_PROPTYPES = PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n stiffness: PropTypes.number,\n nonAnimatedProps: PropTypes.arrayOf(PropTypes.string),\n damping: PropTypes.number\n}), PropTypes.bool]);\n/**\n * Format the animation style object\n * @param {Object|String} animationStyle - The animation style property, either the name of a\n * presets are one of noWobble, gentle, wobbly, stiff\n */\nfunction getAnimationStyle() {\n var animationStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : presets.noWobble;\n if (typeof animationStyle === 'string') {\n return presets[animationStyle] || presets.noWobble;\n }\n var damping = animationStyle.damping,\n stiffness = animationStyle.stiffness;\n return _extends({\n damping: damping || presets.noWobble.damping,\n stiffness: stiffness || presets.noWobble.stiffness\n }, animationStyle);\n}\n\n/**\n * Extract the animated props from the entire props object.\n * @param {Object} props Props.\n * @returns {Object} Object of animated props.\n */\nexport function extractAnimatedPropValues(props) {\n var animatedProps = props.animatedProps,\n otherProps = _objectWithoutProperties(props, ['animatedProps']);\n return animatedProps.reduce(function (result, animatedPropName) {\n if (otherProps.hasOwnProperty(animatedPropName)) {\n result[animatedPropName] = otherProps[animatedPropName];\n }\n return result;\n }, {});\n}\nvar Animation = function (_PureComponent) {\n _inherits(Animation, _PureComponent);\n function Animation(props) {\n _classCallCheck(this, Animation);\n var _this = _possibleConstructorReturn(this, (Animation.__proto__ || Object.getPrototypeOf(Animation)).call(this, props));\n _this._motionEndHandler = function () {\n if (_this.props.onEnd) {\n _this.props.onEnd();\n }\n };\n _this._renderChildren = function (_ref) {\n var i = _ref.i;\n var children = _this.props.children;\n var interpolator = _this._interpolator;\n var child = React.Children.only(children);\n var interpolatedProps = interpolator ? interpolator(i) : interpolator;\n\n // interpolator doesnt play nice with deeply nested objected\n // so we expose an additional prop for situations like these, soit _data,\n // which stores the full tree and can be recombined with the sanitized version\n // after interpolation\n var data = interpolatedProps && interpolatedProps.data || null;\n if (data && child.props._data) {\n data = data.map(function (row, index) {\n var correspondingCell = child.props._data[index];\n return _extends({}, row, {\n parent: correspondingCell.parent,\n children: correspondingCell.children\n });\n });\n }\n return React.cloneElement(child, _extends({}, child.props, interpolatedProps, {\n data: data || child.props.data || null,\n // enforce re-rendering\n _animation: Math.random()\n }));\n };\n _this._updateInterpolator(props);\n return _this;\n }\n _createClass(Animation, [{\n key: 'componentWillUpdate',\n value: function componentWillUpdate(props) {\n this._updateInterpolator(this.props, props);\n if (props.onStart) {\n props.onStart();\n }\n }\n\n /**\n * Render the child into the parent.\n * @param {Number} i Number generated by the spring.\n * @returns {React.Component} Rendered react element.\n * @private\n */\n }, {\n key: '_updateInterpolator',\n /**\n * Update the interpolator function and assign it to this._interpolator.\n * @param {Object} oldProps Old props.\n * @param {Object} newProps New props.\n * @private\n */\n value: function _updateInterpolator(oldProps, newProps) {\n this._interpolator = interpolate(extractAnimatedPropValues(oldProps), newProps ? extractAnimatedPropValues(newProps) : null);\n }\n }, {\n key: 'render',\n value: function render() {\n var animationStyle = getAnimationStyle(this.props.animation);\n var defaultStyle = {\n i: 0\n };\n var style = {\n i: spring(1, animationStyle)\n };\n // In order to make Motion re-run animations each time, the random key is\n // always passed.\n // TODO: find a better solution for the spring.\n var key = Math.random();\n return React.createElement(Motion, _extends({\n defaultStyle: defaultStyle,\n style: style,\n key: key\n }, {\n onRest: this._motionEndHandler\n }), this._renderChildren);\n }\n }]);\n return Animation;\n}(PureComponent);\nAnimation.displayName = 'Animation';\nexport default Animation;\nexport var AnimationPropType = ANIMATION_PROPTYPES;","export default function (a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}","import ascending from \"./ascending\";\nexport default function (compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;else hi = mid;\n }\n return lo;\n },\n right: function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;else lo = mid + 1;\n }\n return lo;\n }\n };\n}\nfunction ascendingComparator(f) {\n return function (d, x) {\n return ascending(f(d), x);\n };\n}","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;","import { pair } from \"./pairs\";\nexport default function (values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n if (reduce == null) reduce = pair;\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n return values;\n}","export default function (values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min,\n max;\n if (valueof == null) {\n while (++i < n) {\n // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = max = value;\n while (++i < n) {\n // Compare the remaining values.\n if ((value = values[i]) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n } else {\n while (++i < n) {\n // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = max = value;\n while (++i < n) {\n // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n return [min, max];\n}","var array = Array.prototype;\nexport var slice = array.slice;\nexport var map = array.map;","export default function (start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n while (++i < n) {\n range[i] = start + i * step;\n }\n return range;\n}","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\nexport default function (start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n if (reverse) ticks.reverse();\n return ticks;\n}\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;else if (error >= e5) step1 *= 5;else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}","export default function (values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}","export default function (values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min;\n if (valueof == null) {\n while (++i < n) {\n // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = value;\n while (++i < n) {\n // Compare the remaining values.\n if ((value = values[i]) != null && min > value) {\n min = value;\n }\n }\n }\n }\n } else {\n while (++i < n) {\n // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = value;\n while (++i < n) {\n // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n return min;\n}","export default function (values, valueof) {\n var n = values.length,\n i = -1,\n value,\n sum = 0;\n if (valueof == null) {\n while (++i < n) {\n if (value = +values[i]) sum += value; // Note: zero and null are equivalent.\n }\n } else {\n while (++i < n) {\n if (value = +valueof(values[i], i, values)) sum += value;\n }\n }\n return sum;\n}","export var prefix = \"$\";\nfunction Map() {}\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function has(key) {\n return prefix + key in this;\n },\n get: function get(key) {\n return this[prefix + key];\n },\n set: function set(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function remove(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function clear() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function keys() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function values() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function entries() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({\n key: property.slice(1),\n value: this[property]\n });\n return entries;\n },\n size: function size() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function empty() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function each(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\nfunction map(object, f) {\n var map = new Map();\n\n // Copy constructor.\n if (object instanceof Map) object.each(function (value, key) {\n map.set(key, value);\n });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n if (f == null) while (++i < n) map.set(i, object[i]);else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n return map;\n}\nexport default map;","import \"core-js/modules/es.array.sort.js\";\nimport map from \"./map\";\nexport default function () {\n var keys = [],\n _sortKeys = [],\n _sortValues,\n _rollup,\n nest;\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys.length) {\n if (_sortValues != null) array.sort(_sortValues);\n return _rollup != null ? _rollup(array) : array;\n }\n var i = -1,\n n = array.length,\n key = keys[depth++],\n keyValue,\n value,\n valuesByKey = map(),\n values,\n result = createResult();\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n valuesByKey.each(function (values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n return result;\n }\n function _entries(map, depth) {\n if (++depth > keys.length) return map;\n var array,\n sortKey = _sortKeys[depth - 1];\n if (_rollup != null && depth >= keys.length) array = map.entries();else array = [], map.each(function (v, k) {\n array.push({\n key: k,\n values: _entries(v, depth)\n });\n });\n return sortKey != null ? array.sort(function (a, b) {\n return sortKey(a.key, b.key);\n }) : array;\n }\n return nest = {\n object: function object(array) {\n return apply(array, 0, createObject, setObject);\n },\n map: function map(array) {\n return apply(array, 0, createMap, setMap);\n },\n entries: function entries(array) {\n return _entries(apply(array, 0, createMap, setMap), 0);\n },\n key: function key(d) {\n keys.push(d);\n return nest;\n },\n sortKeys: function sortKeys(order) {\n _sortKeys[keys.length - 1] = order;\n return nest;\n },\n sortValues: function sortValues(order) {\n _sortValues = order;\n return nest;\n },\n rollup: function rollup(f) {\n _rollup = f;\n return nest;\n }\n };\n}\nfunction createObject() {\n return {};\n}\nfunction setObject(object, key, value) {\n object[key] = value;\n}\nfunction createMap() {\n return map();\n}\nfunction setMap(map, key, value) {\n map.set(key, value);\n}","import { default as map, prefix } from \"./map\";\nfunction Set() {}\nvar proto = map.prototype;\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function add(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\nfunction set(object, f) {\n var set = new Set();\n\n // Copy constructor.\n if (object instanceof Set) object.each(function (value) {\n set.add(value);\n });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1,\n n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);else while (++i < n) set.add(f(object[i], i, object));\n }\n return set;\n}\nexport default set;","var array = Array.prototype;\nexport var map = array.map;\nexport var slice = array.slice;","import { map } from \"d3-collection\";\nimport { slice } from \"./array\";\nexport var implicit = {\n name: \"implicit\"\n};\nexport default function ordinal(range) {\n var index = map(),\n domain = [],\n unknown = implicit;\n range = range == null ? [] : slice.call(range);\n function scale(d) {\n var key = d + \"\",\n i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n scale.domain = function (_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map();\n var i = -1,\n n = _.length,\n d,\n key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n scale.range = function (_) {\n return arguments.length ? (range = slice.call(_), scale) : range.slice();\n };\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n scale.copy = function () {\n return ordinal().domain(domain).range(range).unknown(unknown);\n };\n return scale;\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}","export default function (x) {\n return function () {\n return x;\n };\n}","export default function (x) {\n return +x;\n}","import { bisect } from \"d3-array\";\nimport { interpolate as interpolateValue, interpolateRound } from \"d3-interpolate\";\nimport { map, slice } from \"./array\";\nimport constant from \"./constant\";\nimport number from \"./number\";\nvar unit = [0, 1];\nexport function deinterpolateLinear(a, b) {\n return (b -= a = +a) ? function (x) {\n return (x - a) / b;\n } : constant(b);\n}\nfunction deinterpolateClamp(deinterpolate) {\n return function (a, b) {\n var d = deinterpolate(a = +a, b = +b);\n return function (x) {\n return x <= a ? 0 : x >= b ? 1 : d(x);\n };\n };\n}\nfunction reinterpolateClamp(reinterpolate) {\n return function (a, b) {\n var r = reinterpolate(a = +a, b = +b);\n return function (t) {\n return t <= 0 ? a : t >= 1 ? b : r(t);\n };\n };\n}\nfunction bimap(domain, range, deinterpolate, reinterpolate) {\n var d0 = domain[0],\n d1 = domain[1],\n r0 = range[0],\n r1 = range[1];\n if (d1 < d0) d0 = deinterpolate(d1, d0), r0 = reinterpolate(r1, r0);else d0 = deinterpolate(d0, d1), r0 = reinterpolate(r0, r1);\n return function (x) {\n return r0(d0(x));\n };\n}\nfunction polymap(domain, range, deinterpolate, reinterpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n while (++i < j) {\n d[i] = deinterpolate(domain[i], domain[i + 1]);\n r[i] = reinterpolate(range[i], range[i + 1]);\n }\n return function (x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\nexport function copy(source, target) {\n return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp());\n}\n\n// deinterpolate(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// reinterpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding domain value x in [a,b].\nexport default function continuous(deinterpolate, reinterpolate) {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n clamp = false,\n piecewise,\n output,\n input;\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n function scale(x) {\n return (output || (output = piecewise(domain, range, clamp ? deinterpolateClamp(deinterpolate) : deinterpolate, interpolate)))(+x);\n }\n scale.invert = function (y) {\n return (input || (input = piecewise(range, domain, deinterpolateLinear, clamp ? reinterpolateClamp(reinterpolate) : reinterpolate)))(+y);\n };\n scale.domain = function (_) {\n return arguments.length ? (domain = map.call(_, number), rescale()) : domain.slice();\n };\n scale.range = function (_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n scale.rangeRound = function (_) {\n return range = slice.call(_), interpolate = interpolateRound, rescale();\n };\n scale.clamp = function (_) {\n return arguments.length ? (clamp = !!_, rescale()) : clamp;\n };\n scale.interpolate = function (_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n return rescale();\n}","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\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}\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}\nFormatSpecifier.prototype.toString = function () {\n return this.fill + this.align + this.sign + this.symbol + (this.zero ? \"0\" : \"\") + (this.width === undefined ? \"\" : Math.max(1, this.width | 0)) + (this.comma ? \",\" : \"\") + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0)) + (this.trim ? \"~\" : \"\") + this.type;\n};","export default function (x) {\n return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString(\"en\").replace(/,/g, \"\") : 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,\n 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 [coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, +x.slice(i + 1)];\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport default function (x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport var prefixExponent;\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 : i > n ? coefficient + new Array(i - n + 1).join(\"0\") : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i) : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var format;\nexport var formatPrefix;\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\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 : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\nexport default {\n \"%\": function _(x, p) {\n return (x * 100).toFixed(p);\n },\n \"b\": function b(x) {\n return Math.round(x).toString(2);\n },\n \"c\": function c(x) {\n return x + \"\";\n },\n \"d\": formatDecimal,\n \"e\": function e(x, p) {\n return x.toExponential(p);\n },\n \"f\": function f(x, p) {\n return x.toFixed(p);\n },\n \"g\": function g(x, p) {\n return x.toPrecision(p);\n },\n \"o\": function o(x) {\n return Math.round(x).toString(8);\n },\n \"p\": function p(x, _p) {\n return formatRounded(x * 100, _p);\n },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function X(x) {\n return Math.round(x).toString(16).toUpperCase();\n },\n \"x\": function x(_x) {\n return Math.round(_x).toString(16);\n }\n};","export default function (x) {\n return x;\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\";\nvar map = Array.prototype.map,\n prefixes = [\"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"µ\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\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 function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\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 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i,\n n,\n c;\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 \"<\":\n value = valuePrefix + value + valueSuffix + padding;\n break;\n case \"=\":\n value = valuePrefix + padding + value + valueSuffix;\n break;\n case \"^\":\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n default:\n value = padding + valuePrefix + value + valueSuffix;\n break;\n }\n return numerals(value);\n }\n format.toString = function () {\n return specifier + \"\";\n };\n return format;\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 return {\n format: newFormat,\n formatPrefix: formatPrefix\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 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 return t.reverse().join(thousands);\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}","// 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 \".\":\n i0 = i1 = i;\n break;\n case \"0\":\n if (i0 === 0) i0 = i;\n i1 = i;\n break;\n default:\n if (!+s[i]) break out;\n if (i0 > 0) i0 = 0;\n break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}","import exponent from \"./exponent.js\";\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}","import { tickStep } from \"d3-array\";\nimport { format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound } from \"d3-format\";\nexport default function (domain, count, specifier) {\n var start = domain[0],\n stop = domain[domain.length - 1],\n step = tickStep(start, stop, count == null ? 10 : count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\":\n {\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 {\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 {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}","import exponent from \"./exponent.js\";\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}","import exponent from \"./exponent.js\";\nexport default function (step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}","import { ticks, tickIncrement } from \"d3-array\";\nimport { interpolateNumber as reinterpolate } from \"d3-interpolate\";\nimport { default as continuous, copy, deinterpolateLinear as deinterpolate } from \"./continuous\";\nimport tickFormat from \"./tickFormat\";\nexport function linearish(scale) {\n var domain = scale.domain;\n scale.ticks = function (count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n scale.tickFormat = function (count, specifier) {\n return tickFormat(domain(), count, specifier);\n };\n scale.nice = function (count) {\n if (count == null) count = 10;\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n step = tickIncrement(start, stop, count);\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n return scale;\n };\n return scale;\n}\nexport default function linear() {\n var scale = continuous(deinterpolate, reinterpolate);\n scale.copy = function () {\n return copy(scale, linear());\n };\n return linearish(scale);\n}","export default function (domain, interval) {\n domain = domain.slice();\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}","import { ticks } from \"d3-array\";\nimport { format } from \"d3-format\";\nimport constant from \"./constant\";\nimport nice from \"./nice\";\nimport { default as continuous, copy } from \"./continuous\";\nfunction deinterpolate(a, b) {\n return (b = Math.log(b / a)) ? function (x) {\n return Math.log(x / a) / b;\n } : constant(b);\n}\nfunction reinterpolate(a, b) {\n return a < 0 ? function (t) {\n return -Math.pow(-b, t) * Math.pow(-a, 1 - t);\n } : function (t) {\n return Math.pow(b, t) * Math.pow(a, 1 - t);\n };\n}\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\nfunction powp(base) {\n return base === 10 ? pow10 : base === Math.E ? Math.exp : function (x) {\n return Math.pow(base, x);\n };\n}\nfunction logp(base) {\n return base === Math.E ? Math.log : base === 10 && Math.log10 || base === 2 && Math.log2 || (base = Math.log(base), function (x) {\n return Math.log(x) / base;\n });\n}\nfunction reflect(f) {\n return function (x) {\n return -f(-x);\n };\n}\nexport default function log() {\n var scale = continuous(deinterpolate, reinterpolate).domain([1, 10]),\n domain = scale.domain,\n base = 10,\n logs = logp(10),\n pows = powp(10);\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) logs = reflect(logs), pows = reflect(pows);\n return scale;\n }\n scale.base = function (_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n scale.domain = function (_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n scale.ticks = function (count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n if (r = v < u) i = u, u = v, v = i;\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n if (!(base % 1) && j - i < n) {\n i = Math.round(i) - 1, j = Math.round(j) + 1;\n if (u > 0) for (; i < j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i < j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n return r ? z.reverse() : z;\n };\n scale.tickFormat = function (count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function (d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n scale.nice = function () {\n return domain(nice(domain(), {\n floor: function floor(x) {\n return pows(Math.floor(logs(x)));\n },\n ceil: function ceil(x) {\n return pows(Math.ceil(logs(x)));\n }\n }));\n };\n scale.copy = function () {\n return copy(scale, log().base(base));\n };\n return scale;\n}","import constant from \"./constant\";\nimport { linearish } from \"./linear\";\nimport { default as continuous, copy } from \"./continuous\";\nfunction raise(x, exponent) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n}\nexport default function pow() {\n var exponent = 1,\n scale = continuous(deinterpolate, reinterpolate),\n domain = scale.domain;\n function deinterpolate(a, b) {\n return (b = raise(b, exponent) - (a = raise(a, exponent))) ? function (x) {\n return (raise(x, exponent) - a) / b;\n } : constant(b);\n }\n function reinterpolate(a, b) {\n b = raise(b, exponent) - (a = raise(a, exponent));\n return function (t) {\n return raise(a + b * t, 1 / exponent);\n };\n }\n scale.exponent = function (_) {\n return arguments.length ? (exponent = +_, domain(domain())) : exponent;\n };\n scale.copy = function () {\n return copy(scale, pow().exponent(exponent));\n };\n return linearish(scale);\n}\nexport function sqrt() {\n return pow().exponent(0.5);\n}","var t0 = new Date(),\n t1 = new Date();\nexport default function newInterval(floori, offseti, count, field) {\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date() : new Date(+date)), date;\n }\n interval.floor = function (date) {\n return floori(date = new Date(+date)), date;\n };\n interval.ceil = function (date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n interval.round = function (date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n interval.offset = function (date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n interval.range = function (start, stop, step) {\n var range = [],\n previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start); while (previous < start && start < stop);\n return range;\n };\n interval.filter = function (test) {\n return newInterval(function (date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function (date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function (start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n interval.every = function (step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? function (d) {\n return field(d) % step === 0;\n } : function (d) {\n return interval.count(0, d) % step === 0;\n });\n };\n }\n return interval;\n}","import interval from \"./interval.js\";\nvar year = interval(function (date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function (start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function (date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\nexport default year;\nexport var years = year.range;","import interval from \"./interval.js\";\nvar month = interval(function (date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setMonth(date.getMonth() + step);\n}, function (start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function (date) {\n return date.getMonth();\n});\nexport default month;\nexport var months = month.range;","import interval from \"./interval.js\";\nimport { durationMinute, durationWeek } from \"./duration.js\";\nfunction weekday(i) {\n return interval(function (date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;","import interval from \"./interval.js\";\nimport { durationDay, durationMinute } from \"./duration.js\";\nvar day = interval(function (date) {\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setDate(date.getDate() + step);\n}, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function (date) {\n return date.getDate() - 1;\n});\nexport default day;\nexport var days = day.range;","import interval from \"./interval.js\";\nimport { durationHour, durationMinute, durationSecond } from \"./duration.js\";\nvar hour = interval(function (date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function (date, step) {\n date.setTime(+date + step * durationHour);\n}, function (start, end) {\n return (end - start) / durationHour;\n}, function (date) {\n return date.getHours();\n});\nexport default hour;\nexport var hours = hour.range;","import interval from \"./interval.js\";\nimport { durationMinute, durationSecond } from \"./duration.js\";\nvar minute = interval(function (date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getMinutes();\n});\nexport default minute;\nexport var minutes = minute.range;","import interval from \"./interval.js\";\nimport { durationSecond } from \"./duration.js\";\nvar second = interval(function (date) {\n date.setTime(date - date.getMilliseconds());\n}, function (date, step) {\n date.setTime(+date + step * durationSecond);\n}, function (start, end) {\n return (end - start) / durationSecond;\n}, function (date) {\n return date.getUTCSeconds();\n});\nexport default second;\nexport var seconds = second.range;","import interval from \"./interval.js\";\nvar millisecond = interval(function () {\n // noop\n}, function (date, step) {\n date.setTime(+date + step);\n}, function (start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function (k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function (date) {\n date.setTime(Math.floor(date / k) * k);\n }, function (date, step) {\n date.setTime(+date + step * k);\n }, function (start, end) {\n return (end - start) / k;\n });\n};\nexport default millisecond;\nexport var milliseconds = millisecond.range;","import interval from \"./interval.js\";\nimport { durationWeek } from \"./duration.js\";\nfunction utcWeekday(i) {\n return interval(function (date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function (start, end) {\n return (end - start) / durationWeek;\n });\n}\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;","import interval from \"./interval.js\";\nimport { durationDay } from \"./duration.js\";\nvar utcDay = interval(function (date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function (start, end) {\n return (end - start) / durationDay;\n}, function (date) {\n return date.getUTCDate() - 1;\n});\nexport default utcDay;\nexport var utcDays = utcDay.range;","import interval from \"./interval.js\";\nvar utcYear = interval(function (date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function (start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function (date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\nexport default utcYear;\nexport var utcYears = utcYear.range;","import { timeDay, timeSunday, timeMonday, timeThursday, timeYear, utcDay, utcSunday, utcMonday, utcThursday, utcYear } from \"d3-time\";\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}\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}\nfunction newDate(y, m, d) {\n return {\n y: y,\n m: m,\n d: d,\n H: 0,\n M: 0,\n S: 0,\n 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 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 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 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 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 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 if (!(date instanceof Date)) date = new Date(+date);\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);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 string.push(specifier.slice(j, i));\n return string.join(\"\");\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,\n 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 function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\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 return j;\n }\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n return {\n format: function format(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function () {\n return specifier;\n };\n return f;\n },\n parse: function parse(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function () {\n return specifier;\n };\n return p;\n },\n utcFormat: function utcFormat(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function () {\n return specifier;\n };\n return f;\n },\n utcParse: function utcParse(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function () {\n return specifier;\n };\n return p;\n }\n };\n}\nvar pads = {\n \"-\": \"\",\n \"_\": \" \",\n \"0\": \"0\"\n },\n numberRe = /^\\s*\\d+/,\n // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\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}\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\nfunction formatLookup(names) {\n var map = {},\n i = -1,\n n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\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}\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}\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}\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}\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}\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}\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}\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}\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}\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}\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}\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}\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}\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}\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}\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}\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}\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\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}\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}\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\nfunction dISO(d) {\n var day = d.getDay();\n return day >= 4 || day === 0 ? timeThursday(d) : timeThursday.ceil(d);\n}\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\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}\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\")) + pad(z / 60 | 0, \"0\", 2) + pad(z % 60, \"0\", 2);\n}\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return day >= 4 || day === 0 ? utcThursday(d) : utcThursday.ceil(d);\n}\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\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}\nfunction formatUTCZone() {\n return \"+0000\";\n}\nfunction formatLiteralPercent() {\n return \"%\";\n}\nfunction formatUnixTimestamp(d) {\n return +d;\n}\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\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});\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}","import { bisector, tickStep } from \"d3-array\";\nimport { interpolateNumber as reinterpolate } from \"d3-interpolate\";\nimport { timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond } from \"d3-time\";\nimport { timeFormat } from \"d3-time-format\";\nimport { map } from \"./array\";\nimport { default as continuous, copy, deinterpolateLinear as deinterpolate } from \"./continuous\";\nimport nice from \"./nice\";\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\nfunction date(t) {\n return new Date(t);\n}\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\nexport function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(deinterpolate, reinterpolate),\n invert = scale.invert,\n domain = scale.domain;\n 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 var tickIntervals = [[second, 1, durationSecond], [second, 5, 5 * durationSecond], [second, 15, 15 * durationSecond], [second, 30, 30 * durationSecond], [minute, 1, durationMinute], [minute, 5, 5 * durationMinute], [minute, 15, 15 * durationMinute], [minute, 30, 30 * durationMinute], [hour, 1, durationHour], [hour, 3, 3 * durationHour], [hour, 6, 6 * durationHour], [hour, 12, 12 * durationHour], [day, 1, durationDay], [day, 2, 2 * durationDay], [week, 1, durationWeek], [month, 1, durationMonth], [month, 3, 3 * durationMonth], [year, 1, durationYear]];\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond : minute(date) < date ? formatSecond : hour(date) < date ? formatMinute : day(date) < date ? formatHour : month(date) < date ? week(date) < date ? formatDay : formatWeek : year(date) < date ? formatMonth : formatYear)(date);\n }\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function (i) {\n return i[2];\n }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n return step == null ? interval : interval.every(step);\n }\n scale.invert = function (y) {\n return new Date(invert(y));\n };\n scale.domain = function (_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n scale.ticks = function (interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n scale.tickFormat = function (count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n scale.nice = function (interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step)) ? domain(nice(d, interval)) : scale;\n };\n scale.copy = function () {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n return scale;\n}\nexport default function () {\n return calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]);\n}","import interval from \"./interval.js\";\nvar utcMonth = interval(function (date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function (start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function (date) {\n return date.getUTCMonth();\n});\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;","import interval from \"./interval.js\";\nimport { durationHour } from \"./duration.js\";\nvar utcHour = interval(function (date) {\n date.setUTCMinutes(0, 0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationHour);\n}, function (start, end) {\n return (end - start) / durationHour;\n}, function (date) {\n return date.getUTCHours();\n});\nexport default utcHour;\nexport var utcHours = utcHour.range;","import interval from \"./interval.js\";\nimport { durationMinute } from \"./duration.js\";\nvar utcMinute = interval(function (date) {\n date.setUTCSeconds(0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getUTCMinutes();\n});\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;","export default function (s) {\n return s.match(/.{6}/g).map(function (x) {\n return \"#\" + x;\n });\n}","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;","import colors from \"./colors\";\nexport default colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");","import colors from \"./colors\";\nexport default colors(\"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6\");","import colors from \"./colors\";\nexport default colors(\"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9\");","import colors from \"./colors\";\nexport default colors(\"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5\");","import define, { extend } from \"./define.js\";\nimport { Color, rgbConvert, Rgb, darker as _darker, brighter as _brighter } from \"./color.js\";\nimport { deg2rad, rad2deg } from \"./math.js\";\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)),\n // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function rgb() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(255 * (l + a * (A * cosh + B * sinh)), 255 * (l + a * (C * cosh + D * sinh)), 255 * (l + a * (E * cosh)), this.opacity);\n }\n}));","import { cubehelix as colorCubehelix } from \"d3-color\";\nimport color, { hue } from \"./color.js\";\nfunction cubehelix(hue) {\n return function cubehelixGamma(y) {\n y = +y;\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function (t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n cubehelix.gamma = cubehelixGamma;\n return cubehelix;\n }(1);\n}\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);","import { cubehelix } from \"d3-color\";\nimport { interpolateCubehelixLong } from \"d3-interpolate\";\nexport default interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));","import { cubehelix } from \"d3-color\";\nimport { interpolateCubehelixLong } from \"d3-interpolate\";\nexport var warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\nexport var cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\nvar rainbow = cubehelix();\nexport default function (t) {\n if (t < 0 || t > 1) t -= Math.floor(t);\n var ts = Math.abs(t - 0.5);\n rainbow.h = 360 * t - 100;\n rainbow.s = 1.5 - 1.5 * ts;\n rainbow.l = 0.8 - 0.9 * ts;\n return rainbow + \"\";\n}","import colors from \"./colors\";\nfunction ramp(range) {\n var n = range.length;\n return function (t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\nexport default ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\nexport var magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\nexport var inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\nexport var plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/**\n * Get unique property values from an array.\n * @param {Array} arr Array of data.\n * @param {string} propertyName Prop name.\n * @returns {Array} Array of unique values.\n */\nexport function getUniquePropertyValues(arr, accessor) {\n var setOfValues = new Set(arr.map(accessor));\n return Array.from(setOfValues);\n}\n\n/**\n * Add zero to the domain.\n * @param {Array} arr Add zero to the domain.\n * @param {Number} value Add zero to domain.\n * @returns {Array} Adjusted domain.\n */\nexport function addValueToArray(arr, value) {\n var result = [].concat(arr);\n if (result[0] > value) {\n result[0] = value;\n }\n if (result[result.length - 1] < value) {\n result[result.length - 1] = value;\n }\n return result;\n}\n\n/**\n * Transforms a value ( number or date ) to a string.\n * @param {Date | number} value The value as date or number.\n * @returns {string | number} The value as string.\n */\nexport function transformValueToString(value) {\n return Object.prototype.toString.call(value) === '[object Date]' ? value.toDateString() : value;\n}","import \"core-js/modules/es.array.reduce.js\";\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\nvar _SCALE_FUNCTIONS;\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport { scaleLinear, scalePoint, scaleOrdinal, scaleLog, scaleTime, scaleUtc } from 'd3-scale';\nimport { extent } from 'd3-array';\nimport { set } from 'd3-collection';\nimport { hsl } from 'd3-color';\nimport PropTypes from 'prop-types';\nimport { warning } from './react-utils';\nimport { getUniquePropertyValues, addValueToArray } from './data-utils';\n\n/**\n * Linear scale name.\n * @type {string}\n * @const\n */\nvar LINEAR_SCALE_TYPE = 'linear';\n\n/**\n * Ordinal scale name.\n * @type {string}\n * @const\n */\nvar ORDINAL_SCALE_TYPE = 'ordinal';\n\n/**\n * Category scale.\n * @type {string}\n * @const\n */\nvar CATEGORY_SCALE_TYPE = 'category';\n\n/**\n * Literal scale.\n * Differs slightly from d3's identity scale in that it does not coerce value\n * into numbers, it simply returns exactly what you give it\n * @type {string}\n * @const\n */\nvar LITERAL_SCALE_TYPE = 'literal';\n\n/**\n * Log scale name.\n * @type {string}\n * @const\n */\nvar LOG_SCALE_TYPE = 'log';\n\n/**\n * Time scale name.\n * @type {string}\n * @const\n */\nvar TIME_SCALE_TYPE = 'time';\n\n/**\n * Time UTC scale name.\n * @type {string}\n * @const\n */\nvar TIME_UTC_SCALE_TYPE = 'time-utc';\n\n/**\n * Scale functions that are supported in the library.\n * @type {Object}\n * @const\n */\nvar SCALE_FUNCTIONS = (_SCALE_FUNCTIONS = {}, _defineProperty(_SCALE_FUNCTIONS, LINEAR_SCALE_TYPE, scaleLinear), _defineProperty(_SCALE_FUNCTIONS, ORDINAL_SCALE_TYPE, scalePoint), _defineProperty(_SCALE_FUNCTIONS, CATEGORY_SCALE_TYPE, scaleOrdinal), _defineProperty(_SCALE_FUNCTIONS, LITERAL_SCALE_TYPE, literalScale), _defineProperty(_SCALE_FUNCTIONS, LOG_SCALE_TYPE, scaleLog), _defineProperty(_SCALE_FUNCTIONS, TIME_SCALE_TYPE, scaleTime), _defineProperty(_SCALE_FUNCTIONS, TIME_UTC_SCALE_TYPE, scaleUtc), _SCALE_FUNCTIONS);\n\n/**\n * Attrs for which a scale can be set up at XYPlot level\n * @type {Array}\n * @const\n */\n\nvar XYPLOT_ATTR = ['color', 'fill', 'opacity', 'stroke'];\n\n/**\n * Title case a given string\n * @param {String} str Array of values.\n * @returns {String} titlecased string\n */\nfunction toTitleCase(str) {\n return '' + str[0].toUpperCase() + str.slice(1);\n}\n\n/**\n * Find the smallest distance between the values on a given scale and return\n * the index of the element, where the smallest distance was found.\n * It returns the first occurrence of i where\n * `scale(value[i]) - scale(value[i - 1])` is minimal\n * @param {Array} values Array of values.\n * @param {Object} scaleObject Scale object.\n * @returns {number} Index of an element where the smallest distance was found.\n * @private\n */\nexport function _getSmallestDistanceIndex(values, scaleObject) {\n var scaleFn = getScaleFnFromScaleObject(scaleObject);\n var result = 0;\n if (scaleFn) {\n var nextValue = void 0;\n var currentValue = scaleFn(values[0]);\n var distance = Infinity;\n var nextDistance = void 0;\n for (var i = 1; i < values.length; i++) {\n nextValue = scaleFn(values[i]);\n nextDistance = Math.abs(nextValue - currentValue);\n if (nextDistance < distance) {\n distance = nextDistance;\n result = i;\n }\n currentValue = nextValue;\n }\n }\n return result;\n}\n\n/**\n * This is a workaround for issue that ordinal scale\n * does not have invert method implemented in d3-scale.\n * @param {Object} Ordinal d3-scale object.\n * @returns {void}\n * @private\n */\n\nfunction addInvertFunctionToOrdinalScaleObject(scale) {\n if (scale.invert) {\n return;\n }\n scale.invert = function invert(value) {\n var _scale$range = scale.range(),\n _scale$range2 = _slicedToArray(_scale$range, 2),\n lower = _scale$range2[0],\n upper = _scale$range2[1];\n var start = Math.min(lower, upper);\n var stop = Math.max(lower, upper);\n if (value < start + scale.padding() * scale.step()) {\n return scale.domain()[0];\n }\n if (value > stop - scale.padding() * scale.step()) {\n return scale.domain()[scale.domain().length - 1];\n }\n var index = Math.floor((value - start - scale.padding() * scale.step()) / scale.step());\n return scale.domain()[index];\n };\n}\n\n/**\n * Crate a scale function from the scale object.\n * @param {Object} scaleObject Scale object.\n - scaleObject.domain {Array}\n - scaleObject.range {Array}\n - scaleObject.type {string}\n - scaleObject.attr {string}\n * @returns {*} Scale function.\n * @private\n */\nexport function getScaleFnFromScaleObject(scaleObject) {\n if (!scaleObject) {\n return null;\n }\n var type = scaleObject.type,\n domain = scaleObject.domain,\n range = scaleObject.range;\n var modDomain = domain[0] === domain[1] ? domain[0] === 0 ? [-1, 0] : [-domain[0], domain[0]] : domain;\n if (type === LITERAL_SCALE_TYPE) {\n return literalScale(range[0]);\n }\n var scale = SCALE_FUNCTIONS[type]().domain(modDomain).range(range);\n if (type === ORDINAL_SCALE_TYPE) {\n scale.padding(0.5);\n addInvertFunctionToOrdinalScaleObject(scale);\n }\n return scale;\n}\n\n/**\n * Get the domain from the array of data.\n * @param {Array} allData All data.\n * @param {function} accessor - accessor for main value.\n * @param {function} accessor0 - accessor for the naught value.\n * @param {string} type Scale type.\n * @returns {Array} Domain.\n * @private\n */\nexport function getDomainByAccessor(allData, accessor, accessor0, type) {\n var domain = void 0;\n\n // Collect both attr and available attr0 values from the array of data.\n var values = allData.reduce(function (data, d) {\n var value = accessor(d);\n var value0 = accessor0(d);\n if (_isDefined(value)) {\n data.push(value);\n }\n if (_isDefined(value0)) {\n data.push(value0);\n }\n return data;\n }, []);\n if (!values.length) {\n return [];\n }\n\n // Create proper domain depending on the type of the scale.\n if (type !== ORDINAL_SCALE_TYPE && type !== CATEGORY_SCALE_TYPE) {\n domain = extent(values);\n } else {\n domain = set(values).values();\n }\n return domain;\n}\n\n/**\n * Create custom scale object from the value. When the scale is created from\n * this object, it should return the same value all time.\n * @param {string} attr Attribute.\n * @param {*} value Value.\n * @param {string} type - the type of scale being used\n * @param {function} accessor - the accessor function\n * @param {function} accessor0 - the accessor function for the potential naught value\n * @returns {Object} Custom scale object.\n * @private\n */\nfunction _createScaleObjectForValue(attr, value, type, accessor, accessor0) {\n if (type === LITERAL_SCALE_TYPE) {\n return {\n type: LITERAL_SCALE_TYPE,\n domain: [],\n range: [value],\n distance: 0,\n attr: attr,\n baseValue: undefined,\n isValue: true,\n accessor: accessor,\n accessor0: accessor0\n };\n }\n if (typeof value === 'undefined') {\n return null;\n }\n return {\n type: CATEGORY_SCALE_TYPE,\n range: [value],\n domain: [],\n distance: 0,\n attr: attr,\n baseValue: undefined,\n isValue: true,\n accessor: accessor,\n accessor0: accessor0\n };\n}\n\n/**\n * Create a regular scale object for a further use from the existing parameters.\n * @param {Array} domain - Domain.\n * @param {Array} range - Range.\n * @param {string} type - Type.\n * @param {number} distance - Distance.\n * @param {string} attr - Attribute.\n * @param {number} baseValue - Base value.\n * @param {function} accessor - Attribute accesor\n * @param {function} accessor0 - Attribute accesor for potential naught value\n * @returns {Object} Scale object.\n * @private\n */\nfunction _createScaleObjectForFunction(_ref) {\n var domain = _ref.domain,\n range = _ref.range,\n type = _ref.type,\n distance = _ref.distance,\n attr = _ref.attr,\n baseValue = _ref.baseValue,\n accessor = _ref.accessor,\n accessor0 = _ref.accessor0;\n return {\n domain: domain,\n range: range,\n type: type,\n distance: distance,\n attr: attr,\n baseValue: baseValue,\n isValue: false,\n accessor: accessor,\n accessor0: accessor0\n };\n}\n\n/**\n * Get scale object from props. E. g. object like {xRange, xDomain, xDistance,\n * xType} is transformed into {range, domain, distance, type}.\n * @param {Object} props Props.\n * @param {string} attr Attribute.\n * @returns {*} Null or an object with the scale.\n * @private\n */\nfunction _collectScaleObjectFromProps(props, attr) {\n var value = props[attr],\n fallbackValue = props['_' + attr + 'Value'],\n range = props[attr + 'Range'],\n _props$ = props[attr + 'Distance'],\n distance = _props$ === undefined ? 0 : _props$,\n baseValue = props[attr + 'BaseValue'],\n _props$2 = props[attr + 'Type'],\n type = _props$2 === undefined ? LINEAR_SCALE_TYPE : _props$2,\n noFallBack = props[attr + 'NoFallBack'],\n _props$3 = props['get' + toTitleCase(attr)],\n accessor = _props$3 === undefined ? function (d) {\n return d[attr];\n } : _props$3,\n _props$4 = props['get' + toTitleCase(attr) + '0'],\n accessor0 = _props$4 === undefined ? function (d) {\n return d[attr + '0'];\n } : _props$4;\n var domain = props[attr + 'Domain'];\n // Return value-based scale if the value is assigned.\n\n if (!noFallBack && typeof value !== 'undefined') {\n return _createScaleObjectForValue(attr, value, props[attr + 'Type'], accessor, accessor0);\n }\n // Pick up the domain from the properties and create a new one if it's not\n // available.\n if (typeof baseValue !== 'undefined') {\n domain = addValueToArray(domain, baseValue);\n }\n\n // Make sure that the minimum necessary properties exist.\n if (!range || !domain || !domain.length) {\n // Try to use the fallback value if it is available.\n return _createScaleObjectForValue(attr, fallbackValue, props[attr + 'Type'], accessor, accessor0);\n }\n return _createScaleObjectForFunction({\n domain: domain,\n range: range,\n type: type,\n distance: distance,\n attr: attr,\n baseValue: baseValue,\n accessor: accessor,\n accessor0: accessor0\n });\n}\n\n/**\n * Compute left domain adjustment for the given values.\n * @param {Array} values Array of values.\n * @returns {number} Domain adjustment.\n * @private\n */\nfunction _computeLeftDomainAdjustment(values) {\n if (values.length > 1) {\n return (values[1] - values[0]) / 2;\n }\n if (values.length === 1) {\n return values[0] - 0.5;\n }\n return 0;\n}\n\n/**\n * Compute right domain adjustment for the given values.\n * @param {Array} values Array of values.\n * @returns {number} Domain adjustment.\n * @private\n */\nfunction _computeRightDomainAdjustment(values) {\n if (values.length > 1) {\n return (values[values.length - 1] - values[values.length - 2]) / 2;\n }\n if (values.length === 1) {\n return values[0] - 0.5;\n }\n return 0;\n}\n\n/**\n * Compute distance for the given values.\n * @param {Array} values Array of values.\n * @param {Array} domain Domain.\n * @param {number} bestDistIndex Index of a best distance found.\n * @param {function} scaleFn Scale function.\n * @returns {number} Domain adjustment.\n * @private\n */\nfunction _computeScaleDistance(values, domain, bestDistIndex, scaleFn) {\n if (values.length > 1) {\n // Avoid zero indexes.\n var i = Math.max(bestDistIndex, 1);\n return Math.abs(scaleFn(values[i]) - scaleFn(values[i - 1]));\n }\n if (values.length === 1) {\n return Math.abs(scaleFn(domain[1]) - scaleFn(domain[0]));\n }\n return 0;\n}\n\n/**\n * Normilize array of values with a single value.\n * @param {Array} arr Array of data.\n * @param {Array} values Array of values.\n * @param {string} attr Attribute.\n * @param {string} type Type.\n * @private\n */\nfunction _normalizeValues(data, values, accessor0, type) {\n if (type === TIME_SCALE_TYPE && values.length === 1) {\n var attr0 = accessor0(data[0]);\n return [attr0].concat(_toConsumableArray(values));\n }\n return values;\n}\n\n/**\n * Get the distance, the smallest and the largest value of the domain.\n * @param {Array} data Array of data for the single series.\n * @param {Object} scaleObject Scale object.\n * @returns {{domain0: number, domainN: number, distance: number}} Result.\n * @private\n */\nexport function _getScaleDistanceAndAdjustedDomain(data, scaleObject) {\n var domain = scaleObject.domain,\n type = scaleObject.type,\n accessor = scaleObject.accessor,\n accessor0 = scaleObject.accessor0;\n var uniqueValues = getUniquePropertyValues(data, accessor);\n\n // Fix time scale if a data has only one value.\n var values = _normalizeValues(data, uniqueValues, accessor0, type);\n var index = _getSmallestDistanceIndex(values, scaleObject);\n var adjustedDomain = [].concat(domain);\n adjustedDomain[0] -= _computeLeftDomainAdjustment(values);\n adjustedDomain[domain.length - 1] += _computeRightDomainAdjustment(values);\n // Fix log scale if it's too small.\n if (type === LOG_SCALE_TYPE && domain[0] <= 0) {\n adjustedDomain[0] = Math.min(domain[1] / 10, 1);\n }\n var adjustedScaleFn = getScaleFnFromScaleObject(_extends({}, scaleObject, {\n domain: adjustedDomain\n }));\n var distance = _computeScaleDistance(values, adjustedDomain, index, adjustedScaleFn);\n return {\n domain0: adjustedDomain[0],\n domainN: adjustedDomain[adjustedDomain.length - 1],\n distance: distance\n };\n}\n\n/**\n * Returns true if scale adjustments are possible for a given scale.\n * @param {Object} props Props.\n * @param {Object} scaleObject Scale object.\n * @returns {boolean} True if scale adjustments possible.\n * @private\n */\nfunction _isScaleAdjustmentPossible(props, scaleObject) {\n var attr = scaleObject.attr;\n var _props$_adjustBy = props._adjustBy,\n adjustBy = _props$_adjustBy === undefined ? [] : _props$_adjustBy,\n _props$_adjustWhat = props._adjustWhat,\n adjustWhat = _props$_adjustWhat === undefined ? [] : _props$_adjustWhat;\n\n // The scale cannot be adjusted if there's no attributes to adjust, no\n // suitable values\n\n return adjustWhat.length && adjustBy.length && adjustBy.indexOf(attr) !== -1;\n}\n\n/**\n * Adjust continuous scales (e.g. 'linear', 'log' and 'time') by adding the\n * space from the left and right of them and by computing the best distance.\n * @param {Object} props Props.\n * @param {Object} scaleObject Scale object.\n * @returns {*} Scale object with adjustments.\n * @private\n */\nfunction _adjustContinuousScale(props, scaleObject) {\n var allSeriesData = props._allData,\n _props$_adjustWhat2 = props._adjustWhat,\n adjustWhat = _props$_adjustWhat2 === undefined ? [] : _props$_adjustWhat2;\n\n // Assign the initial values.\n\n var domainLength = scaleObject.domain.length;\n var domain = scaleObject.domain;\n var scaleDomain0 = domain[0];\n var scaleDomainN = domain[domainLength - 1];\n var scaleDistance = scaleObject.distance;\n\n // Find the smallest left position of the domain, the largest right position\n // of the domain and the best distance for them.\n allSeriesData.forEach(function (data, index) {\n if (adjustWhat.indexOf(index) === -1) {\n return;\n }\n if (data && data.length) {\n var _getScaleDistanceAndA = _getScaleDistanceAndAdjustedDomain(data, scaleObject),\n domain0 = _getScaleDistanceAndA.domain0,\n domainN = _getScaleDistanceAndA.domainN,\n distance = _getScaleDistanceAndA.distance;\n scaleDomain0 = Math.min(scaleDomain0, domain0);\n scaleDomainN = Math.max(scaleDomainN, domainN);\n scaleDistance = Math.max(scaleDistance, distance);\n }\n });\n scaleObject.domain = [scaleDomain0].concat(_toConsumableArray(domain.slice(1, -1)), [scaleDomainN]);\n scaleObject.distance = scaleDistance;\n return scaleObject;\n}\n\n/**\n * Get an adjusted scale. Suitable for 'category' and 'ordinal' scales.\n * @param {Object} scaleObject Scale object.\n * @returns {*} Scale object with adjustments.\n * @private\n */\nexport function _adjustCategoricalScale(scaleObject) {\n var scaleFn = getScaleFnFromScaleObject(scaleObject);\n var domain = scaleObject.domain,\n range = scaleObject.range;\n if (domain.length > 1) {\n scaleObject.distance = Math.abs(scaleFn(domain[1]) - scaleFn(domain[0]));\n } else {\n scaleObject.distance = Math.abs(range[1] - range[0]);\n }\n return scaleObject;\n}\n\n/**\n * Retrieve a scale object or a value from the properties passed.\n * @param {Object} props Object of props.\n * @param {string} attr Attribute.\n * @returns {*} Scale object, value or null.\n */\nexport function getScaleObjectFromProps(props, attr) {\n // Create the initial scale object.\n var scaleObject = _collectScaleObjectFromProps(props, attr);\n if (!scaleObject) {\n return null;\n }\n\n // Make sure if it's possible to add space to the scale object. If not,\n // return the object immediately.\n if (!_isScaleAdjustmentPossible(props, scaleObject)) {\n return scaleObject;\n }\n var type = scaleObject.type;\n // Depending on what type the scale is, apply different adjustments. Distances\n // for the ordinal and category scales are even, equal domains cannot be\n // adjusted.\n\n if (type === ORDINAL_SCALE_TYPE || type === CATEGORY_SCALE_TYPE) {\n return _adjustCategoricalScale(scaleObject);\n }\n return _adjustContinuousScale(props, scaleObject);\n}\n\n/**\n * Get d3 scale for a given prop.\n * @param {Object} props Props.\n * @param {string} attr Attribute.\n * @returns {function} d3 scale function.\n */\nexport function getAttributeScale(props, attr) {\n var scaleObject = getScaleObjectFromProps(props, attr);\n return getScaleFnFromScaleObject(scaleObject);\n}\n\n/**\n * Get the value of `attr` from the object.\n * @param {Object} d - data Object.\n * @param {Function} accessor - accessor function.\n * @returns {*} Value of the point.\n * @private\n */\nfunction _getAttrValue(d, accessor) {\n return accessor(d.data ? d.data : d);\n}\nfunction _isDefined(value) {\n return typeof value !== 'undefined';\n}\n\n/*\n * Adds a percentage of padding to a given domain\n * @param {Array} domain X or Y domain to pad.\n * @param {Number} padding Percentage of padding to add to domain\n * @returns {Array} Padded Domain\n */\nfunction _padDomain(domain, padding) {\n if (!domain) {\n return domain;\n }\n if (isNaN(parseFloat(domain[0])) || isNaN(parseFloat(domain[1]))) {\n return domain;\n }\n var _domain = _slicedToArray(domain, 2),\n min = _domain[0],\n max = _domain[1];\n var domainPadding = (max - min) * (padding * 0.01);\n return [min - domainPadding, max + domainPadding];\n}\n\n/**\n * Get prop functor (either a value or a function) for a given attribute.\n * @param {Object} props Series props.\n * @param {Function} accessor - Property accessor.\n * @returns {*} Function or value.\n */\nexport function getAttributeFunctor(props, attr) {\n var scaleObject = getScaleObjectFromProps(props, attr);\n if (scaleObject) {\n var scaleFn = getScaleFnFromScaleObject(scaleObject);\n return function (d) {\n return scaleFn(_getAttrValue(d, scaleObject.accessor));\n };\n }\n return null;\n}\n\n/**\n * Get the functor which extracts value form [attr]0 property. Use baseValue if\n * no attr0 property for a given object is defined. Fall back to domain[0] if no\n * base value is available.\n * @param {Object} props Object of props.\n * @param {string} attr Attribute name.\n * @returns {*} Function which returns value or null if no values available.\n */\nexport function getAttr0Functor(props, attr) {\n var scaleObject = getScaleObjectFromProps(props, attr);\n if (scaleObject) {\n var domain = scaleObject.domain;\n var _scaleObject$baseValu = scaleObject.baseValue,\n baseValue = _scaleObject$baseValu === undefined ? domain[0] : _scaleObject$baseValu;\n var scaleFn = getScaleFnFromScaleObject(scaleObject);\n return function (d) {\n var value = _getAttrValue(d, scaleObject.accessor0);\n return scaleFn(_isDefined(value) ? value : baseValue);\n };\n }\n return null;\n}\n\n/**\n * Tries to get the string|number value of the attr and falls back to\n * a fallback property in case if the value is a scale.\n * @param {Object} props Series props.\n * @param {string} attr Property name.\n * @returns {*} Function or value.\n */\nexport function getAttributeValue(props, attr) {\n var scaleObject = getScaleObjectFromProps(props, attr);\n if (scaleObject) {\n if (!scaleObject.isValue && props['_' + attr + 'Value'] === undefined) {\n warning('[React-vis] Cannot use data defined ' + attr + ' for this ' + 'series type. Using fallback value instead.');\n }\n return props['_' + attr + 'Value'] || scaleObject.range[0];\n }\n return null;\n}\n\n/**\n * Get prop types by the attribute.\n * @param {string} attr Attribute.\n * @returns {Object} Object of xDomain, xRange, xType, xDistance and _xValue,\n * where x is an attribute passed to the function.\n */\nexport function getScalePropTypesByAttribute(attr) {\n var _ref2;\n return _ref2 = {}, _defineProperty(_ref2, '_' + attr + 'Value', PropTypes.any), _defineProperty(_ref2, attr + 'Domain', PropTypes.array), _defineProperty(_ref2, 'get' + toTitleCase(attr), PropTypes.func), _defineProperty(_ref2, 'get' + toTitleCase(attr) + '0', PropTypes.func), _defineProperty(_ref2, attr + 'Range', PropTypes.array), _defineProperty(_ref2, attr + 'Type', PropTypes.oneOf(Object.keys(SCALE_FUNCTIONS))), _defineProperty(_ref2, attr + 'Distance', PropTypes.number), _defineProperty(_ref2, attr + 'BaseValue', PropTypes.any), _ref2;\n}\n\n/**\n * Extract the list of scale properties from the entire props object.\n * @param {Object} props Props.\n * @param {Array} attributes Array of attributes for the given\n * components (for instance, `['x', 'y', 'color']`).\n * @returns {Object} Collected props.\n */\nexport function extractScalePropsFromProps(props, attributes) {\n var result = {};\n Object.keys(props).forEach(function (key) {\n // this filtering is critical for extracting the correct accessors!\n var attr = attributes.find(function (a) {\n // width\n var isPlainSet = key.indexOf(a) === 0;\n // Ex: _data\n var isUnderscoreSet = key.indexOf('_' + a) === 0;\n // EX: getX\n var usesGet = key.indexOf('get' + toTitleCase(a)) === 0;\n return isPlainSet || isUnderscoreSet || usesGet;\n });\n if (!attr) {\n return;\n }\n result[key] = props[key];\n });\n return result;\n}\n\n/**\n * Extract the missing scale props from the given data and return them as\n * an object.\n * @param {Object} props Props.\n * @param {Array} data Array of all data.\n * @param {Array} attributes Array of attributes for the given\n * components (for instance, `['x', 'y', 'color']`).\n * @returns {Object} Collected props.\n */\nexport function getMissingScaleProps(props, data, attributes) {\n var result = {};\n // Make sure that the domain is set pad it if specified\n attributes.forEach(function (attr) {\n if (!props['get' + toTitleCase(attr)]) {\n result['get' + toTitleCase(attr)] = function (d) {\n return d[attr];\n };\n }\n if (!props['get' + toTitleCase(attr) + '0']) {\n result['get' + toTitleCase(attr) + '0'] = function (d) {\n return d[attr + '0'];\n };\n }\n if (!props[attr + 'Domain']) {\n result[attr + 'Domain'] = getDomainByAccessor(data, props['get' + toTitleCase(attr)] || result['get' + toTitleCase(attr)], props['get' + toTitleCase(attr) + '0'] || result['get' + toTitleCase(attr) + '0'], props[attr + 'Type']);\n if (props[attr + 'Padding']) {\n result[attr + 'Domain'] = _padDomain(result[attr + 'Domain'], props[attr + 'Padding']);\n }\n }\n });\n return result;\n}\n\n/**\n * Return a d3 scale that returns the literal value that was given to it\n * @returns {function} literal scale.\n */\nexport function literalScale(defaultValue) {\n function scale(d) {\n if (d === undefined) {\n return defaultValue;\n }\n return d;\n }\n function response() {\n return scale;\n }\n scale.domain = response;\n scale.range = response;\n scale.unknown = response;\n scale.copy = response;\n return scale;\n}\nexport function getFontColorFromBackground(background) {\n if (background) {\n return hsl(background).l > 0.57 ? '#222' : '#fff';\n }\n return null;\n}\n\n/**\n * Creates fallback values for series from scales defined at XYPlot level.\n * @param {Object} props Props of the XYPlot object.\n * @param {Array} children Array of components, children of XYPlot\n * @returns {Array} Collected props.\n */\n\nexport function getXYPlotValues(props, children) {\n var XYPlotScales = XYPLOT_ATTR.reduce(function (prev, attr) {\n var domain = props[attr + 'Domain'],\n range = props[attr + 'Range'],\n type = props[attr + 'Type'];\n if (domain && range && type) {\n return _extends({}, prev, _defineProperty({}, attr, SCALE_FUNCTIONS[type]().domain(domain).range(range)));\n }\n return prev;\n }, {});\n return children.map(function (child) {\n return XYPLOT_ATTR.reduce(function (prev, attr) {\n if (child.props && child.props[attr] !== undefined) {\n var scaleInput = child.props[attr];\n var scale = XYPlotScales[attr];\n var fallbackValue = scale ? scale(scaleInput) : scaleInput;\n return _extends({}, prev, _defineProperty({}, '_' + attr + 'Value', fallbackValue));\n }\n return prev;\n }, {});\n });\n}\nvar OPTIONAL_SCALE_PROPS = ['Padding'];\nvar OPTIONAL_SCALE_PROPS_REGS = OPTIONAL_SCALE_PROPS.map(function (str) {\n return new RegExp(str + '$', 'i');\n});\n/**\n * Get the list of optional scale-related settings for XYPlot\n * mostly just used to find padding properties\n * @param {Object} props Object of props.\n * @returns {Object} Optional Props.\n * @private\n */\nexport function getOptionalScaleProps(props) {\n return Object.keys(props).reduce(function (acc, prop) {\n var propIsNotOptional = OPTIONAL_SCALE_PROPS_REGS.every(function (reg) {\n return !prop.match(reg);\n });\n if (propIsNotOptional) {\n return acc;\n }\n acc[prop] = props[prop];\n return acc;\n }, {});\n}\nexport default {\n extractScalePropsFromProps: extractScalePropsFromProps,\n getAttributeScale: getAttributeScale,\n getAttributeFunctor: getAttributeFunctor,\n getAttr0Functor: getAttr0Functor,\n getAttributeValue: getAttributeValue,\n getDomainByAccessor: getDomainByAccessor,\n getFontColorFromBackground: getFontColorFromBackground,\n getMissingScaleProps: getMissingScaleProps,\n getOptionalScaleProps: getOptionalScaleProps,\n getScaleObjectFromProps: getScaleObjectFromProps,\n getScalePropTypesByAttribute: getScalePropTypesByAttribute,\n getXYPlotValues: getXYPlotValues,\n literalScale: literalScale\n};","import { range as sequence } from \"d3-array\";\nimport ordinal from \"./ordinal\";\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n delete scale.unknown;\n function rescale() {\n var n = domain().length,\n reverse = range[1] < range[0],\n start = range[reverse - 0],\n stop = range[1 - reverse];\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function (i) {\n return start + step * i;\n });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n scale.domain = function (_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n scale.range = function (_) {\n return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n scale.rangeRound = function (_) {\n return range = [+_[0], +_[1]], round = true, rescale();\n };\n scale.bandwidth = function () {\n return bandwidth;\n };\n scale.step = function () {\n return step;\n };\n scale.round = function (_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n scale.padding = function (_) {\n return arguments.length ? (paddingInner = paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n scale.paddingInner = function (_) {\n return arguments.length ? (paddingInner = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n scale.paddingOuter = function (_) {\n return arguments.length ? (paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingOuter;\n };\n scale.align = function (_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n scale.copy = function () {\n return band().domain(domain()).range(range).round(round).paddingInner(paddingInner).paddingOuter(paddingOuter).align(align);\n };\n return rescale();\n}\nfunction pointish(scale) {\n var copy = scale.copy;\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n scale.copy = function () {\n return pointish(copy());\n };\n return scale;\n}\nexport function point() {\n return pointish(band().paddingInner(1));\n}","import { calendar } from \"./time\";\nimport { utcFormat } from \"d3-time-format\";\nimport { utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond } from \"d3-time\";\nexport default function () {\n return calendar(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]);\n}","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport PropTypes from 'prop-types';\nimport { voronoi } from 'd3-voronoi';\nimport { PureComponent } from 'react';\nimport { AnimationPropType } from '../../animation';\nimport { getAttributeFunctor, getAttr0Functor, getAttributeValue, getScaleObjectFromProps, getScalePropTypesByAttribute } from '../../utils/scales-utils';\nvar propTypes = _extends({}, getScalePropTypesByAttribute('x'), getScalePropTypesByAttribute('y'), getScalePropTypesByAttribute('size'), getScalePropTypesByAttribute('opacity'), getScalePropTypesByAttribute('color'), {\n width: PropTypes.number,\n height: PropTypes.number,\n data: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.object, PropTypes.array])),\n onValueMouseOver: PropTypes.func,\n onValueMouseOut: PropTypes.func,\n onValueClick: PropTypes.func,\n onValueRightClick: PropTypes.func,\n onSeriesMouseOver: PropTypes.func,\n onSeriesMouseOut: PropTypes.func,\n onSeriesClick: PropTypes.func,\n onSeriesRightClick: PropTypes.func,\n onNearestX: PropTypes.func,\n onNearestXY: PropTypes.func,\n style: PropTypes.object,\n animation: AnimationPropType,\n stack: PropTypes.bool\n});\nvar defaultProps = {\n className: '',\n stack: false,\n style: {}\n};\nvar AbstractSeries = function (_PureComponent) {\n _inherits(AbstractSeries, _PureComponent);\n function AbstractSeries() {\n var _ref;\n var _temp, _this, _ret;\n _classCallCheck(this, AbstractSeries);\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = AbstractSeries.__proto__ || Object.getPrototypeOf(AbstractSeries)).call.apply(_ref, [this].concat(args))), _this), _this._seriesClickHandler = function (event) {\n var onSeriesClick = _this.props.onSeriesClick;\n if (onSeriesClick) {\n onSeriesClick({\n event: event\n });\n }\n }, _this._seriesMouseOutHandler = function (event) {\n var onSeriesMouseOut = _this.props.onSeriesMouseOut;\n if (onSeriesMouseOut) {\n onSeriesMouseOut({\n event: event\n });\n }\n }, _this._seriesMouseOverHandler = function (event) {\n var onSeriesMouseOver = _this.props.onSeriesMouseOver;\n if (onSeriesMouseOver) {\n onSeriesMouseOver({\n event: event\n });\n }\n }, _this._seriesRightClickHandler = function (event) {\n var onSeriesRightClick = _this.props.onSeriesRightClick;\n if (onSeriesRightClick) {\n onSeriesRightClick({\n event: event\n });\n }\n }, _this._valueClickHandler = function (d, event) {\n var _this$props = _this.props,\n onValueClick = _this$props.onValueClick,\n onSeriesClick = _this$props.onSeriesClick;\n if (onValueClick) {\n onValueClick(d, {\n event: event\n });\n }\n if (onSeriesClick) {\n onSeriesClick({\n event: event\n });\n }\n }, _this._valueMouseOutHandler = function (d, event) {\n var _this$props2 = _this.props,\n onValueMouseOut = _this$props2.onValueMouseOut,\n onSeriesMouseOut = _this$props2.onSeriesMouseOut;\n if (onValueMouseOut) {\n onValueMouseOut(d, {\n event: event\n });\n }\n if (onSeriesMouseOut) {\n onSeriesMouseOut({\n event: event\n });\n }\n }, _this._valueMouseOverHandler = function (d, event) {\n var _this$props3 = _this.props,\n onValueMouseOver = _this$props3.onValueMouseOver,\n onSeriesMouseOver = _this$props3.onSeriesMouseOver;\n if (onValueMouseOver) {\n onValueMouseOver(d, {\n event: event\n });\n }\n if (onSeriesMouseOver) {\n onSeriesMouseOver({\n event: event\n });\n }\n }, _this._valueRightClickHandler = function (d, event) {\n var _this$props4 = _this.props,\n onValueRightClick = _this$props4.onValueRightClick,\n onSeriesRightClick = _this$props4.onSeriesRightClick;\n if (onValueRightClick) {\n onValueRightClick(d, {\n event: event\n });\n }\n if (onSeriesRightClick) {\n onSeriesRightClick({\n event: event\n });\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n _createClass(AbstractSeries, [{\n key: 'onParentMouseMove',\n value: function onParentMouseMove(event) {\n var _props = this.props,\n onNearestX = _props.onNearestX,\n onNearestXY = _props.onNearestXY,\n data = _props.data;\n if (!onNearestX && !onNearestXY || !data) {\n return;\n }\n if (onNearestXY) {\n this._handleNearestXY(event);\n } else {\n this._handleNearestX(event);\n }\n }\n }, {\n key: 'onParentTouchMove',\n value: function onParentTouchMove(e) {\n e.preventDefault();\n this.onParentMouseMove(e);\n }\n }, {\n key: 'onParentTouchStart',\n value: function onParentTouchStart(e) {\n // prevent mouse event emulation\n e.preventDefault();\n }\n\n /**\n * Get the attr0 functor.\n * @param {string} attr Attribute name.\n * @returns {*} Functor.\n * @private\n */\n }, {\n key: '_getAttr0Functor',\n value: function _getAttr0Functor(attr) {\n return getAttr0Functor(this.props, attr);\n }\n\n /**\n * Get attribute functor.\n * @param {string} attr Attribute name\n * @returns {*} Functor.\n * @protected\n */\n }, {\n key: '_getAttributeFunctor',\n value: function _getAttributeFunctor(attr) {\n return getAttributeFunctor(this.props, attr);\n }\n\n /**\n * Get the attribute value if it is available.\n * @param {string} attr Attribute name.\n * @returns {*} Attribute value if available, fallback value or undefined\n * otherwise.\n * @protected\n */\n }, {\n key: '_getAttributeValue',\n value: function _getAttributeValue(attr) {\n return getAttributeValue(this.props, attr);\n }\n\n /**\n * Get the scale object distance by the attribute from the list of properties.\n * @param {string} attr Attribute name.\n * @returns {number} Scale distance.\n * @protected\n */\n }, {\n key: '_getScaleDistance',\n value: function _getScaleDistance(attr) {\n var scaleObject = getScaleObjectFromProps(this.props, attr);\n return scaleObject ? scaleObject.distance : 0;\n }\n }, {\n key: '_getXYCoordinateInContainer',\n value: function _getXYCoordinateInContainer(event) {\n var _props2 = this.props,\n _props2$marginTop = _props2.marginTop,\n marginTop = _props2$marginTop === undefined ? 0 : _props2$marginTop,\n _props2$marginLeft = _props2.marginLeft,\n marginLeft = _props2$marginLeft === undefined ? 0 : _props2$marginLeft;\n var evt = event.nativeEvent,\n currentTarget = event.currentTarget;\n var rect = currentTarget.getBoundingClientRect();\n var x = evt.clientX;\n var y = evt.clientY;\n if (evt.type === 'touchmove') {\n x = evt.touches[0].pageX;\n y = evt.touches[0].pageY;\n }\n return {\n x: x - rect.left - currentTarget.clientLeft - marginLeft,\n y: y - rect.top - currentTarget.clientTop - marginTop\n };\n }\n }, {\n key: '_handleNearestX',\n value: function _handleNearestX(event) {\n var _props3 = this.props,\n onNearestX = _props3.onNearestX,\n data = _props3.data;\n var minDistance = Number.POSITIVE_INFINITY;\n var value = null;\n var valueIndex = null;\n var coordinate = this._getXYCoordinateInContainer(event);\n var xScaleFn = this._getAttributeFunctor('x');\n data.forEach(function (item, i) {\n var currentCoordinate = xScaleFn(item);\n var newDistance = Math.abs(coordinate.x - currentCoordinate);\n if (newDistance < minDistance) {\n minDistance = newDistance;\n value = item;\n valueIndex = i;\n }\n });\n if (!value) {\n return;\n }\n onNearestX(value, {\n innerX: xScaleFn(value),\n index: valueIndex,\n event: event.nativeEvent\n });\n }\n }, {\n key: '_handleNearestXY',\n value: function _handleNearestXY(event) {\n var _props4 = this.props,\n onNearestXY = _props4.onNearestXY,\n data = _props4.data;\n var coordinate = this._getXYCoordinateInContainer(event);\n var xScaleFn = this._getAttributeFunctor('x');\n var yScaleFn = this._getAttributeFunctor('y');\n\n // Create a voronoi with each node center points\n var voronoiInstance = voronoi().x(xScaleFn).y(yScaleFn);\n var foundPoint = voronoiInstance(data).find(coordinate.x, coordinate.y);\n var value = foundPoint.data;\n if (!value) {\n return;\n }\n onNearestXY(value, {\n innerX: foundPoint[0],\n innerY: foundPoint[1],\n index: foundPoint.index,\n event: event.nativeEvent\n });\n }\n\n /**\n * Click handler for the entire series.\n * @param {Object} event Event.\n * @protected\n */\n\n /**\n * Mouse out handler for the entire series.\n * @param {Object} event Event.\n * @protected\n */\n\n /**\n * Mouse over handler for the entire series.\n * @param {Object} event Event.\n * @protected\n */\n\n /**\n * Right Click handler for the entire series.\n * @param {Object} event Event.\n * @protected\n */\n\n /**\n * Click handler for the specific series' value.\n * @param {Object} d Value object\n * @param {Object} event Event.\n * @protected\n */\n\n /**\n * Mouse out handler for the specific series' value.\n * @param {Object} d Value object\n * @param {Object} event Event.\n * @protected\n */\n\n /**\n * Mouse over handler for the specific series' value.\n * @param {Object} d Value object\n * @param {Object} event Event.\n * @protected\n */\n\n /**\n * Right Click handler for the specific series' value.\n * @param {Object} d Value object\n * @param {Object} event Event.\n * @protected\n */\n }], [{\n key: 'getParentConfig',\n /**\n * Get a default config for the parent.\n * @returns {Object} Empty config.\n */\n value: function getParentConfig() {\n return {};\n }\n\n /**\n * Tells the rest of the world that it requires SVG to work.\n * @returns {boolean} Result.\n */\n }, {\n key: 'requiresSVG',\n get: function get() {\n return true;\n }\n }]);\n return AbstractSeries;\n}(PureComponent);\nAbstractSeries.displayName = 'AbstractSeries';\nAbstractSeries.propTypes = propTypes;\nAbstractSeries.defaultProps = defaultProps;\nexport default AbstractSeries;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nexport var DISCRETE_COLOR_RANGE = ['#12939A', '#79C7E3', '#1A3177', '#FF9833', '#EF5D28'];\nexport var EXTENDED_DISCRETE_COLOR_RANGE = ['#19CDD7', '#DDB27C', '#88572C', '#FF991F', '#F15C17', '#223F9A', '#DA70BF', '#125C77', '#4DC19C', '#776E57', '#12939A', '#17B8BE', '#F6D18A', '#B7885E', '#FFCB99', '#F89570', '#829AE3', '#E79FD5', '#1E96BE', '#89DAC1', '#B3AD9E'];\nexport var CONTINUOUS_COLOR_RANGE = ['#EF5D28', '#FF9833'];\nexport var SIZE_RANGE = [1, 10];\nexport var OPACITY_RANGE = [0.1, 1];\nexport var OPACITY_TYPE = 'literal';\nexport var DEFAULT_OPACITY = 1;\nexport var DEFAULT_SIZE = 5;\nexport var DEFAULT_COLOR = DISCRETE_COLOR_RANGE[0];\nexport var DEFAULT_TICK_SIZE = 7;","import \"core-js/modules/es.array.reduce.js\";\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport AbstractSeries from '../plot/series/abstract-series';\nimport { DISCRETE_COLOR_RANGE, DEFAULT_OPACITY } from '../theme';\n\n/**\n * Check if the component is series or not.\n * @param {React.Component} child Component.\n * @returns {boolean} True if the child is series, false otherwise.\n */\nexport function isSeriesChild(child) {\n var prototype = child.type.prototype;\n return prototype instanceof AbstractSeries;\n}\n\n/**\n * Get all series from the 'children' object of the component.\n * @param {Object} children Children.\n * @returns {Array} Array of children.\n */\nexport function getSeriesChildren(children) {\n return React.Children.toArray(children).filter(function (child) {\n return child && isSeriesChild(child);\n });\n}\n\n/**\n * Collect the map of repetitions of the series type for all children.\n * @param {Array} children Array of children.\n * @returns {{}} Map of repetitions where sameTypeTotal is the total amount and\n * sameTypeIndex is always 0.\n */\nfunction collectSeriesTypesInfo(children) {\n var result = {};\n children.filter(isSeriesChild).forEach(function (child) {\n var displayName = child.type.displayName;\n var cluster = child.props.cluster;\n if (!result[displayName]) {\n result[displayName] = {\n sameTypeTotal: 0,\n sameTypeIndex: 0,\n clusters: new Set()\n };\n }\n result[displayName].clusters.add(cluster);\n result[displayName].sameTypeTotal++;\n });\n return result;\n}\n\n/**\n * Check series to see if it has angular data that needs to be converted\n * @param {Array} data - an array of objects to check\n * @returns {Boolean} whether or not this series contains polar configuration\n */\nfunction seriesHasAngleRadius() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n if (!data) {\n return false;\n }\n return data.some(function (row) {\n return row.radius && row.angle;\n });\n}\n\n/**\n * Possibly convert polar coordinates to x/y for computing domain\n * @param {Array} data - an array of objects to check\n * @param {String} attr - the property being checked\n * @returns {Boolean} whether or not this series contains polar configuration\n */\nfunction prepareData(data) {\n if (!seriesHasAngleRadius(data)) {\n return data;\n }\n return data.map(function (row) {\n return _extends({}, row, {\n x: row.radius * Math.cos(row.angle),\n y: row.radius * Math.sin(row.angle)\n });\n });\n}\n\n/**\n * Collect the stacked data for all children in use. If the children don't have\n * the data (e.g. the child is invalid series or something else), then the child\n * is skipped.\n * Each next value of attr is equal to the previous value plus the difference\n * between attr0 and attr.\n * @param {Array} children Array of children.\n * @param {string} attr Attribute to stack by.\n * @returns {Array} New array of children for the series.\n */\nexport function getStackedData(children, attr) {\n var areSomeSeriesStacked = children.some(function (series) {\n return series && series.props.stack;\n });\n // It stores the last segment position added to each bar, separated by cluster.\n var latestAttrPositions = {};\n return children.reduce(function (accumulator, series, seriesIndex) {\n // Skip the children that are not series (e.g. don't have any data).\n if (!series) {\n accumulator.push(null);\n return accumulator;\n }\n var seriesType = series.type.displayName;\n var _series$props = series.props,\n data = _series$props.data,\n _series$props$cluster = _series$props.cluster,\n cluster = _series$props$cluster === undefined ? 'default' : _series$props$cluster,\n stack = _series$props.stack;\n var preppedData = prepareData(data, attr);\n if (!attr || !preppedData || !preppedData.length || areSomeSeriesStacked && !stack) {\n accumulator.push(preppedData);\n return accumulator;\n }\n var attr0 = attr + '0';\n var baseAttr = attr === 'y' ? 'x' : 'y';\n accumulator.push(preppedData.map(function (d, dIndex) {\n var _extends2, _latestAttrPositions$2;\n if (!latestAttrPositions[cluster]) {\n latestAttrPositions[cluster] = {};\n }\n if (!latestAttrPositions[cluster][seriesType]) {\n latestAttrPositions[cluster][seriesType] = {};\n }\n var prevD = latestAttrPositions[cluster][seriesType][d[baseAttr]];\n // It is the first segment of a bar.\n if (!prevD) {\n var _latestAttrPositions$;\n latestAttrPositions[cluster][seriesType][d[baseAttr]] = (_latestAttrPositions$ = {}, _defineProperty(_latestAttrPositions$, attr0, d[attr0]), _defineProperty(_latestAttrPositions$, attr, d[attr]), _latestAttrPositions$);\n return _extends({}, d);\n }\n\n // Calculate the position of the next segment in a bar.\n var nextD = _extends({}, d, (_extends2 = {}, _defineProperty(_extends2, attr0, prevD[attr]), _defineProperty(_extends2, attr, prevD[attr] + d[attr] - (d[attr0] || 0)), _extends2));\n latestAttrPositions[cluster][seriesType][d[baseAttr]] = (_latestAttrPositions$2 = {}, _defineProperty(_latestAttrPositions$2, attr0, nextD[attr0]), _defineProperty(_latestAttrPositions$2, attr, nextD[attr]), _latestAttrPositions$2);\n return nextD;\n }));\n return accumulator;\n }, []);\n}\n\n/**\n * Get the list of series props for a child.\n * @param {Array} children Array of all children.\n * @returns {Array} Array of series props for each child. If a child is not a\n * series, than it's undefined.\n */\nexport function getSeriesPropsFromChildren(children) {\n var result = [];\n var seriesTypesInfo = collectSeriesTypesInfo(children);\n var seriesIndex = 0;\n var _opacityValue = DEFAULT_OPACITY;\n children.forEach(function (child) {\n var props = void 0;\n if (isSeriesChild(child)) {\n var seriesTypeInfo = seriesTypesInfo[child.type.displayName];\n var _colorValue = DISCRETE_COLOR_RANGE[seriesIndex % DISCRETE_COLOR_RANGE.length];\n props = _extends({}, seriesTypeInfo, {\n seriesIndex: seriesIndex,\n _colorValue: _colorValue,\n _opacityValue: _opacityValue\n });\n seriesTypeInfo.sameTypeIndex++;\n seriesIndex++;\n if (child.props.cluster) {\n props.cluster = child.props.cluster;\n // Using Array.from() so we can use .indexOf\n props.clusters = Array.from(seriesTypeInfo.clusters);\n props.sameTypeTotal = props.clusters.length;\n props.sameTypeIndex = props.clusters.indexOf(child.props.cluster);\n }\n }\n result.push(props);\n });\n return result;\n}\n\n/**\n * Find the max radius value from the nodes to be rendered after they have been\n * transformed into an array\n * @param {Array} data - the tree data after it has been broken into a iterable\n * it is an array of objects!\n * @returns {number} the maximum value in coordinates for the radial variable\n */\nexport function getRadialDomain(data) {\n return data.reduce(function (res, row) {\n return Math.max(row.radius, res);\n }, 0);\n}\nexport var ANIMATED_SERIES_PROPS = ['xRange', 'xDomain', 'x', 'yRange', 'yDomain', 'y', 'colorRange', 'colorDomain', 'color', 'opacityRange', 'opacityDomain', 'opacity', 'strokeRange', 'strokeDomain', 'stroke', 'fillRange', 'fillDomain', 'fill', 'width', 'height', 'marginLeft', 'marginTop', 'marginRight', 'marginBottom', 'data', 'angleDomain', 'angleRange', 'angle', 'radiusDomain', 'radiusRange', 'radius', 'innerRadiusDomain', 'innerRadiusRange', 'innerRadius'];\nexport function getStackParams(props) {\n var _stackBy = props._stackBy,\n valuePosAttr = props.valuePosAttr,\n cluster = props.cluster;\n var _props$sameTypeTotal = props.sameTypeTotal,\n sameTypeTotal = _props$sameTypeTotal === undefined ? 1 : _props$sameTypeTotal,\n _props$sameTypeIndex = props.sameTypeIndex,\n sameTypeIndex = _props$sameTypeIndex === undefined ? 0 : _props$sameTypeIndex;\n\n // If bars are stacked, but not clustering, override `sameTypeTotal` and\n // `sameTypeIndex` such that bars are stacked and not staggered.\n\n if (_stackBy === valuePosAttr && !cluster) {\n sameTypeTotal = 1;\n sameTypeIndex = 0;\n }\n return {\n sameTypeTotal: sameTypeTotal,\n sameTypeIndex: sameTypeIndex\n };\n}","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\nfunction Path() {\n this._x0 = this._y0 =\n // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\nfunction path() {\n return new Path();\n}\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function moveTo(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function lineTo(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function quadraticCurveTo(x1, y1, x, y) {\n this._ += \"Q\" + +x1 + \",\" + +y1 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + +x1 + \",\" + +y1 + \",\" + +x2 + \",\" + +y2 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon)) ;\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + +(y01 * x20 > x01 * y20) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + +(da >= pi) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function rect(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + +w + \"v\" + +h + \"h\" + -w + \"Z\";\n },\n toString: function toString() {\n return this._;\n }\n};\nexport default path;","export default function (x) {\n return function constant() {\n return x;\n };\n}","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}","import { path } from \"d3-path\";\nimport constant from \"./constant.js\";\nimport { abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau } from \"./math.js\";\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\nfunction arcEndAngle(d) {\n return d.endAngle;\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,\n y10 = y1 - y0,\n x32 = x3 - x2,\n 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 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}\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 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 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;else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= cw ? 1 : -1, a01 += p1, a11 -= p1;else da1 = 0, a01 = a11 = (a0 + a1) / 2;\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.\n if (da < pi && (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 }\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 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 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 context.closePath();\n if (buffer) return context = null, buffer + \"\" || null;\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 arc.innerRadius = function (_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n arc.outerRadius = function (_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n arc.cornerRadius = function (_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n arc.padRadius = function (_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n arc.startAngle = function (_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n arc.endAngle = function (_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n arc.padAngle = function (_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n arc.context = function (_) {\n return arguments.length ? (context = _ == null ? null : _, arc) : context;\n };\n return arc;\n}","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { arc as arcBuilder } from 'd3-shape';\nimport AbstractSeries from './abstract-series';\nimport { getAttributeFunctor, getAttr0Functor, extractScalePropsFromProps, getMissingScaleProps, getScalePropTypesByAttribute } from '../../utils/scales-utils';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--arc';\nvar ATTRIBUTES = ['radius', 'angle'];\nvar defaultProps = _extends({}, AbstractSeries.defaultProps, {\n center: {\n x: 0,\n y: 0\n },\n arcClassName: '',\n className: '',\n style: {},\n padAngle: 0\n});\n\n/**\n * Prepare the internal representation of row for real use.\n * This is necessary because d3 insists on starting at 12 oclock and moving\n * clockwise, rather than starting at 3 oclock and moving counter clockwise\n * as one might expect from polar\n * @param {Object} row - coordinate object to be modifed\n * @return {Object} angle corrected object\n */\nfunction modifyRow(row) {\n var radius = row.radius,\n angle = row.angle,\n angle0 = row.angle0;\n var truedAngle = -1 * angle + Math.PI / 2;\n var truedAngle0 = -1 * angle0 + Math.PI / 2;\n return _extends({}, row, {\n x: radius * Math.cos(truedAngle),\n y: radius * Math.sin(truedAngle),\n angle: truedAngle,\n angle0: truedAngle0\n });\n}\nvar ArcSeries = function (_AbstractSeries) {\n _inherits(ArcSeries, _AbstractSeries);\n function ArcSeries(props) {\n _classCallCheck(this, ArcSeries);\n var _this = _possibleConstructorReturn(this, (ArcSeries.__proto__ || Object.getPrototypeOf(ArcSeries)).call(this, props));\n var scaleProps = _this._getAllScaleProps(props);\n _this.state = {\n scaleProps: scaleProps\n };\n return _this;\n }\n _createClass(ArcSeries, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n this.setState({\n scaleProps: this._getAllScaleProps(nextProps)\n });\n }\n\n /**\n * Get the map of scales from the props.\n * @param {Object} props Props.\n * @param {Array} data Array of all data.\n * @returns {Object} Map of scales.\n * @private\n */\n }, {\n key: '_getAllScaleProps',\n value: function _getAllScaleProps(props) {\n var defaultScaleProps = this._getDefaultScaleProps(props);\n var userScaleProps = extractScalePropsFromProps(props, ATTRIBUTES);\n var missingScaleProps = getMissingScaleProps(_extends({}, defaultScaleProps, userScaleProps), props.data, ATTRIBUTES);\n return _extends({}, defaultScaleProps, userScaleProps, missingScaleProps);\n }\n\n /**\n * Get the list of scale-related settings that should be applied by default.\n * @param {Object} props Object of props.\n * @returns {Object} Defaults.\n * @private\n */\n }, {\n key: '_getDefaultScaleProps',\n value: function _getDefaultScaleProps(props) {\n var innerWidth = props.innerWidth,\n innerHeight = props.innerHeight;\n var radius = Math.min(innerWidth / 2, innerHeight / 2);\n return {\n radiusRange: [0, radius],\n _radiusValue: radius,\n angleType: 'literal'\n };\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n var _props = this.props,\n arcClassName = _props.arcClassName,\n animation = _props.animation,\n className = _props.className,\n center = _props.center,\n data = _props.data,\n disableSeries = _props.disableSeries,\n hideSeries = _props.hideSeries,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n padAngle = _props.padAngle,\n style = _props.style;\n if (!data) {\n return null;\n }\n if (animation) {\n var cloneData = data.map(function (d) {\n return _extends({}, d);\n });\n return React.createElement('g', {\n className: 'rv-xy-plot__series--arc__animation-wrapper'\n }, React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS,\n data: cloneData\n }), React.createElement(ArcSeries, _extends({}, this.props, {\n animation: null,\n disableSeries: true,\n data: cloneData\n }))), React.createElement(ArcSeries, _extends({}, this.props, {\n animation: null,\n hideSeries: true,\n style: {\n stroke: 'red'\n }\n })));\n }\n var scaleProps = this.state.scaleProps;\n var radiusDomain = scaleProps.radiusDomain;\n // need to generate our own functors as abstract series doesnt have anythign for us\n\n var radius = getAttributeFunctor(scaleProps, 'radius');\n var radius0 = getAttr0Functor(scaleProps, 'radius');\n var angle = getAttributeFunctor(scaleProps, 'angle');\n var angle0 = getAttr0Functor(scaleProps, 'angle');\n // but it does have good color support!\n var fill = this._getAttributeFunctor('fill') || this._getAttributeFunctor('color');\n var stroke = this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color');\n var opacity = this._getAttributeFunctor('opacity');\n var x = this._getAttributeFunctor('x');\n var y = this._getAttributeFunctor('y');\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n onMouseOver: this._seriesMouseOverHandler,\n onMouseOut: this._seriesMouseOutHandler,\n onClick: this._seriesClickHandler,\n onContextMenu: this._seriesRightClickHandler,\n opacity: hideSeries ? 0 : 1,\n pointerEvents: disableSeries ? 'none' : 'all',\n transform: 'translate(' + (marginLeft + x(center)) + ',' + (marginTop + y(center)) + ')'\n }, data.map(function (row, i) {\n var noRadius = radiusDomain[1] === radiusDomain[0];\n var arcArg = {\n innerRadius: noRadius ? 0 : radius0(row),\n outerRadius: radius(row),\n startAngle: angle0(row) || 0,\n endAngle: angle(row)\n };\n var arcedData = arcBuilder().padAngle(padAngle);\n var rowStyle = row.style || {};\n var rowClassName = row.className || '';\n return React.createElement('path', {\n style: _extends({\n opacity: opacity && opacity(row),\n stroke: stroke && stroke(row),\n fill: fill && fill(row)\n }, style, rowStyle),\n onClick: function onClick(e) {\n return _this2._valueClickHandler(modifyRow(row), e);\n },\n onContextMenu: function onContextMenu(e) {\n return _this2._valueRightClickHandler(modifyRow(row), e);\n },\n onMouseOver: function onMouseOver(e) {\n return _this2._valueMouseOverHandler(modifyRow(row), e);\n },\n onMouseOut: function onMouseOut(e) {\n return _this2._valueMouseOutHandler(modifyRow(row), e);\n },\n key: i,\n className: predefinedClassName + '-path ' + arcClassName + ' ' + rowClassName,\n d: arcedData(arcArg)\n });\n }));\n }\n }]);\n return ArcSeries;\n}(AbstractSeries);\nArcSeries.defaultProps = defaultProps;\nArcSeries.displayName = 'ArcSeries';\nexport default ArcSeries;","function Linear(context) {\n this._context = context;\n}\nLinear.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n case 1:\n this._point = 2;\n // proceed\n default:\n this._context.lineTo(x, y);\n break;\n }\n }\n};\nexport default function (context) {\n return new Linear(context);\n}","export function x(p) {\n return p[0];\n}\nexport function y(p) {\n return p[1];\n}","import { path } from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport { x as pointX, y as pointY } from \"./point.js\";\nexport default function () {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n if (context == null) output = curve(buffer = path());\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n if (buffer) return output = null, buffer + \"\" || null;\n }\n line.x = function (_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n line.y = function (_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n line.defined = function (_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n line.curve = function (_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n line.context = function (_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n return line;\n}","import { path } from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport { x as pointX, y as pointY } from \"./point.js\";\nexport default function () {\n var x0 = pointX,\n x1 = null,\n y0 = constant(0),\n y1 = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n if (context == null) output = curve(buffer = path());\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 if (buffer) return output = null, buffer + \"\" || null;\n }\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n area.x = function (_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n area.x0 = function (_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n area.x1 = function (_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n area.y = function (_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n area.y0 = function (_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n area.y1 = function (_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n area.lineX0 = area.lineY0 = function () {\n return arealine().x(x0).y(y0);\n };\n area.lineY1 = function () {\n return arealine().x(x0).y(y1);\n };\n area.lineX1 = function () {\n return arealine().x(x1).y(y0);\n };\n area.defined = function (_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n area.curve = function (_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n area.context = function (_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n return area;\n}","export default function (a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}","export default function (d) {\n return d;\n}","import \"core-js/modules/es.array.sort.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport { tau } from \"./math.js\";\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 function pie(data) {\n var i,\n n = 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 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) {\n return sortValues(arcs[i], arcs[j]);\n });else if (sort != null) index.sort(function (i, j) {\n return sort(data[i], data[j]);\n });\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 return arcs;\n }\n pie.value = function (_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n pie.sortValues = function (_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n pie.sort = function (_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n pie.startAngle = function (_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n pie.endAngle = function (_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n pie.padAngle = function (_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n return pie;\n}","import curveLinear from \"./linear.js\";\nexport var curveRadialLinear = curveRadial(curveLinear);\nfunction Radial(curve) {\n this._curve = curve;\n}\nRadial.prototype = {\n areaStart: function areaStart() {\n this._curve.areaStart();\n },\n areaEnd: function areaEnd() {\n this._curve.areaEnd();\n },\n lineStart: function lineStart() {\n this._curve.lineStart();\n },\n lineEnd: function lineEnd() {\n this._curve.lineEnd();\n },\n point: function point(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\nexport default function curveRadial(curve) {\n function radial(context) {\n return new Radial(curve(context));\n }\n radial._curve = curve;\n return radial;\n}","import curveRadial, { curveRadialLinear } from \"./curve/radial.js\";\nimport line from \"./line.js\";\nexport function lineRadial(l) {\n var c = l.curve;\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n l.curve = function (_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n return l;\n}\nexport default function () {\n return lineRadial(line().curve(curveRadialLinear));\n}","import curveRadial, { curveRadialLinear } from \"./curve/radial.js\";\nimport area from \"./area.js\";\nimport { lineRadial } from \"./lineRadial.js\";\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 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 () {\n return lineRadial(x0());\n }, delete a.lineX0;\n a.lineEndAngle = function () {\n return lineRadial(x1());\n }, delete a.lineX1;\n a.lineInnerRadius = function () {\n return lineRadial(y0());\n }, delete a.lineY0;\n a.lineOuterRadius = function () {\n return lineRadial(y1());\n }, delete a.lineY1;\n a.curve = function (_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n return a;\n}","export default function (x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n}","export var slice = Array.prototype.slice;","import { path } from \"d3-path\";\nimport { slice } from \"../array.js\";\nimport constant from \"../constant.js\";\nimport { x as pointX, y as pointY } from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\nfunction linkSource(d) {\n return d.source;\n}\nfunction linkTarget(d) {\n return d.target;\n}\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n function link() {\n var buffer,\n argv = slice.call(arguments),\n s = source.apply(this, argv),\n t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n link.source = function (_) {\n return arguments.length ? (source = _, link) : source;\n };\n link.target = function (_) {\n return arguments.length ? (target = _, link) : target;\n };\n link.x = function (_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n link.y = function (_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n link.context = function (_) {\n return arguments.length ? (context = _ == null ? null : _, link) : context;\n };\n return link;\n}\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\nexport function linkVertical() {\n return link(curveVertical);\n}\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}","import { pi, tau } from \"../math.js\";\nexport default {\n draw: function draw(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};","export default {\n draw: function draw(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\nexport default {\n draw: function draw(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};","import { pi, tau } from \"../math.js\";\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\nexport default {\n draw: function draw(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};","export default {\n draw: function draw(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};","var sqrt3 = Math.sqrt(3);\nexport default {\n draw: function draw(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\nexport default {\n draw: function draw(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};","import { path } from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\nexport var symbols = [circle, cross, diamond, square, star, triangle, wye];\nexport default function () {\n var type = constant(circle),\n size = constant(64),\n context = null;\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n symbol.type = function (_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n symbol.size = function (_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n symbol.context = function (_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n return symbol;\n}","export default function () {}","function _point(that, x, y) {\n that._context.bezierCurveTo((2 * that._x0 + that._x1) / 3, (2 * that._y0 + that._y1) / 3, (that._x0 + 2 * that._x1) / 3, (that._y0 + 2 * that._y1) / 3, (that._x0 + 4 * that._x1 + x) / 6, (that._y0 + 4 * that._y1 + y) / 6);\n}\nexport { _point as point };\nexport function Basis(context) {\n this._context = context;\n}\nBasis.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 3:\n _point(this, this._x1, this._y1);\n // proceed\n case 2:\n this._context.lineTo(this._x1, this._y1);\n 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 point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6);\n // proceed\n default:\n _point(this, x, y);\n break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\nexport default function (context) {\n return new Basis(context);\n}","import noop from \"../noop.js\";\nimport { point as _point } from \"./basis.js\";\nfunction BasisClosed(context) {\n this._context = context;\n}\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 1:\n {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2:\n {\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 {\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 point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x2 = x, this._y2 = y;\n break;\n case 1:\n this._point = 2;\n this._x3 = x, this._y3 = y;\n break;\n case 2:\n this._point = 3;\n this._x4 = x, this._y4 = y;\n this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6);\n break;\n default:\n _point(this, x, y);\n break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\nexport default function (context) {\n return new BasisClosed(context);\n}","import { point as _point } from \"./basis.js\";\nfunction BasisOpen(context) {\n this._context = context;\n}\nBasisOpen.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n var x0 = (this._x0 + 4 * this._x1 + x) / 6,\n y0 = (this._y0 + 4 * this._y1 + y) / 6;\n this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0);\n break;\n case 3:\n this._point = 4;\n // proceed\n default:\n _point(this, x, y);\n break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\nexport default function (context) {\n return new BasisOpen(context);\n}","import { Basis } from \"./basis.js\";\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\nBundle.prototype = {\n lineStart: function lineStart() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function lineEnd() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\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 while (++i <= j) {\n t = i / j;\n this._basis.point(this._beta * x[i] + (1 - this._beta) * (x0 + t * dx), this._beta * y[i] + (1 - this._beta) * (y0 + t * dy));\n }\n }\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function point(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\nexport default (function custom(beta) {\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n bundle.beta = function (beta) {\n return custom(+beta);\n };\n return bundle;\n})(0.85);","function _point(that, x, y) {\n that._context.bezierCurveTo(that._x1 + that._k * (that._x2 - that._x0), that._y1 + that._k * (that._y2 - that._y0), that._x2 + that._k * (that._x1 - x), that._y2 + that._k * (that._y1 - y), that._x2, that._y2);\n}\nexport { _point as point };\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\nCardinal.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 2:\n this._context.lineTo(this._x2, this._y2);\n break;\n case 3:\n _point(this, this._x1, this._y1);\n 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 point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n case 1:\n this._point = 2;\n this._x1 = x, this._y1 = y;\n break;\n case 2:\n this._point = 3;\n // proceed\n default:\n _point(this, x, y);\n 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};\nexport default (function custom(tension) {\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n cardinal.tension = function (tension) {\n return custom(+tension);\n };\n return cardinal;\n})(0);","import noop from \"../noop.js\";\nimport { point as _point } from \"./cardinal.js\";\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 1:\n {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2:\n {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3:\n {\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 point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x3 = x, this._y3 = y;\n break;\n case 1:\n this._point = 2;\n this._context.moveTo(this._x4 = x, this._y4 = y);\n break;\n case 2:\n this._point = 3;\n this._x5 = x, this._y5 = y;\n break;\n default:\n _point(this, x, y);\n 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};\nexport default (function custom(tension) {\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n cardinal.tension = function (tension) {\n return custom(+tension);\n };\n return cardinal;\n})(0);","import { point as _point } from \"./cardinal.js\";\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\nCardinalOpen.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);\n break;\n case 3:\n this._point = 4;\n // proceed\n default:\n _point(this, x, y);\n 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};\nexport default (function custom(tension) {\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n cardinal.tension = function (tension) {\n return custom(+tension);\n };\n return cardinal;\n})(0);","import { epsilon } from \"../math.js\";\nimport { Cardinal } from \"./cardinal.js\";\nfunction _point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\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 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 that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\nexport { _point as point };\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\nCatmullRom.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 2:\n this._context.lineTo(this._x2, this._y2);\n break;\n case 3:\n this.point(this._x2, this._y2);\n 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 point(x, y) {\n x = +x, y = +y;\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 switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n // proceed\n default:\n _point(this, x, y);\n break;\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};\nexport default (function custom(alpha) {\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n catmullRom.alpha = function (alpha) {\n return custom(+alpha);\n };\n return catmullRom;\n})(0.5);","import { CardinalClosed } from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport { point as _point } from \"./catmullRom.js\";\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 1:\n {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2:\n {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3:\n {\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 point(x, y) {\n x = +x, y = +y;\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 switch (this._point) {\n case 0:\n this._point = 1;\n this._x3 = x, this._y3 = y;\n break;\n case 1:\n this._point = 2;\n this._context.moveTo(this._x4 = x, this._y4 = y);\n break;\n case 2:\n this._point = 3;\n this._x5 = x, this._y5 = y;\n break;\n default:\n _point(this, x, y);\n break;\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};\nexport default (function custom(alpha) {\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n catmullRom.alpha = function (alpha) {\n return custom(+alpha);\n };\n return catmullRom;\n})(0.5);","import { CardinalOpen } from \"./cardinalOpen.js\";\nimport { point as _point } from \"./catmullRom.js\";\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\nCatmullRomOpen.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\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 switch (this._point) {\n case 0:\n this._point = 1;\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);\n break;\n case 3:\n this._point = 4;\n // proceed\n default:\n _point(this, x, y);\n break;\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};\nexport default (function custom(alpha) {\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n catmullRom.alpha = function (alpha) {\n return custom(+alpha);\n };\n return catmullRom;\n})(0.5);","import noop from \"../noop.js\";\nfunction LinearClosed(context) {\n this._context = context;\n}\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._point) this._context.closePath();\n },\n point: function point(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);else this._point = 1, this._context.moveTo(x, y);\n }\n};\nexport default function (context) {\n return new LinearClosed(context);\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}\nfunction MonotoneX(context) {\n this._context = context;\n}\nMonotoneX.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 2:\n this._context.lineTo(this._x1, this._y1);\n break;\n case 3:\n _point(this, this._t0, slope2(this, this._t0));\n 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 point(x, y) {\n var t1 = NaN;\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n _point(this, slope2(this, t1 = slope3(this, x, y)), t1);\n break;\n default:\n _point(this, this._t0, t1 = slope3(this, x, y));\n break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n};\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function (x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\nfunction ReflectContext(context) {\n this._context = context;\n}\nReflectContext.prototype = {\n moveTo: function moveTo(x, y) {\n this._context.moveTo(y, x);\n },\n closePath: function closePath() {\n this._context.closePath();\n },\n lineTo: function lineTo(x, y) {\n this._context.lineTo(y, x);\n },\n bezierCurveTo: function bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._context.bezierCurveTo(y1, x1, y2, x2, y, x);\n }\n};\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}","function Natural(context) {\n this._context = context;\n}\nNatural.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function lineEnd() {\n var x = this._x,\n y = this._y,\n n = x.length;\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 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 point(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}\nexport default function (context) {\n return new Natural(context);\n}","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\nStep.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\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 point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n case 1:\n this._point = 2;\n // proceed\n default:\n {\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};\nexport default function (context) {\n return new Step(context, 0.5);\n}\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\nexport function stepAfter(context) {\n return new Step(context, 1);\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}","export default function (series) {\n var n = series.length,\n o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}","import { slice } from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\nfunction stackValue(d, key) {\n return d[key];\n}\nexport default function () {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n offset(sz, oz);\n return sz;\n }\n stack.keys = function (_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : keys;\n };\n stack.value = function (_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n stack.order = function (_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : order;\n };\n stack.offset = function (_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n return stack;\n}","import none from \"./none.js\";\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}","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}","import none from \"./none.js\";\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}","import none from \"./none.js\";\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}","import \"core-js/modules/es.array.sort.js\";\nimport none from \"./none.js\";\nexport default function (series) {\n var peaks = series.map(peak);\n return none(series).sort(function (a, b) {\n return peaks[a] - peaks[b];\n });\n}\nfunction peak(series) {\n var i = -1,\n j = 0,\n n = series.length,\n vi,\n vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}","import \"core-js/modules/es.array.sort.js\";\nimport none from \"./none.js\";\nexport default function (series) {\n var sums = series.map(sum);\n return none(series).sort(function (a, b) {\n return sums[a] - sums[b];\n });\n}\nexport function sum(series) {\n var s = 0,\n i = -1,\n n = series.length,\n v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}","import ascending from \"./ascending.js\";\nexport default function (series) {\n return ascending(series).reverse();\n}","import appearance from \"./appearance.js\";\nimport { sum } from \"./ascending.js\";\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 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 return bottoms.reverse().concat(tops);\n}","import none from \"./none.js\";\nexport default function (series) {\n return none(series).reverse();\n}","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport * as d3Shape from 'd3-shape';\nimport Animation from '../../animation';\nimport { DEFAULT_OPACITY } from '../../theme';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { warning } from '../../utils/react-utils';\nimport AbstractSeries from './abstract-series';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--line';\nvar AreaSeries = function (_AbstractSeries) {\n _inherits(AreaSeries, _AbstractSeries);\n function AreaSeries() {\n _classCallCheck(this, AreaSeries);\n return _possibleConstructorReturn(this, (AreaSeries.__proto__ || Object.getPrototypeOf(AreaSeries)).apply(this, arguments));\n }\n _createClass(AreaSeries, [{\n key: '_renderArea',\n value: function _renderArea(data, x, y0, y, curve, getNull) {\n var area = d3Shape.area();\n if (curve !== null) {\n if (typeof curve === 'string' && d3Shape[curve]) {\n area = area.curve(d3Shape[curve]);\n } else if (typeof curve === 'function') {\n area = area.curve(curve);\n }\n }\n area = area.defined(getNull);\n area = area.x(x).y0(y0).y1(y);\n return area(data);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n curve = _props.curve,\n data = _props.data,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n style = _props.style;\n if (this.props.nullAccessor) {\n warning('nullAccessor has been renamed to getNull', true);\n }\n if (!data) {\n return null;\n }\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(AreaSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n var x = this._getAttributeFunctor('x');\n var y = this._getAttributeFunctor('y');\n var y0 = this._getAttr0Functor('y');\n var stroke = this._getAttributeValue('stroke') || this._getAttributeValue('color');\n var fill = this._getAttributeValue('fill') || this._getAttributeValue('color');\n var newOpacity = this._getAttributeValue('opacity');\n var opacity = Number.isFinite(newOpacity) ? newOpacity : DEFAULT_OPACITY;\n var getNull = this.props.nullAccessor || this.props.getNull;\n var d = this._renderArea(data, x, y0, y, curve, getNull);\n return React.createElement('path', {\n d: d,\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')',\n onMouseOver: this._seriesMouseOverHandler,\n onMouseOut: this._seriesMouseOutHandler,\n onClick: this._seriesClickHandler,\n onContextMenu: this._seriesRightClickHandler,\n style: _extends({\n opacity: opacity,\n stroke: stroke,\n fill: fill\n }, style)\n });\n }\n }]);\n return AreaSeries;\n}(AbstractSeries);\nAreaSeries.displayName = 'AreaSeries';\nAreaSeries.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n getNull: function getNull() {\n return true;\n }\n});\nexport default AreaSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nvar CLASSES = {\n bottom: 'rv-xy-plot__borders-bottom',\n container: 'rv-xy-plot__borders',\n left: 'rv-xy-plot__borders-left',\n right: 'rv-xy-plot__borders-right',\n top: 'rv-xy-plot__borders-top'\n};\nfunction Borders(props) {\n var marginTop = props.marginTop,\n marginBottom = props.marginBottom,\n marginLeft = props.marginLeft,\n marginRight = props.marginRight,\n innerWidth = props.innerWidth,\n innerHeight = props.innerHeight,\n style = props.style,\n className = props.className;\n var height = innerHeight + marginTop + marginBottom;\n var width = innerWidth + marginLeft + marginRight;\n return React.createElement('g', {\n className: CLASSES.container + ' ' + className\n }, React.createElement('rect', {\n className: CLASSES.bottom + ' ' + className + '-bottom',\n style: _extends({}, style.all, style.bottom),\n x: 0,\n y: height - marginBottom,\n width: width,\n height: marginBottom\n }), React.createElement('rect', {\n className: CLASSES.left + ' ' + className + '-left',\n style: _extends({}, style.all, style.left),\n x: 0,\n y: 0,\n width: marginLeft,\n height: height\n }), React.createElement('rect', {\n className: CLASSES.right + ' ' + className + '-right',\n style: _extends({}, style.all, style.right),\n x: width - marginRight,\n y: 0,\n width: marginRight,\n height: height\n }), React.createElement('rect', {\n className: CLASSES.top + ' ' + className + '-top',\n style: _extends({}, style.all, style.top),\n x: 0,\n y: 0,\n width: width,\n height: marginTop\n }));\n}\nBorders.displayName = 'Borders';\nBorders.defaultProps = {\n className: '',\n style: {\n all: {},\n bottom: {},\n left: {},\n right: {},\n top: {}\n }\n};\nBorders.requiresSVG = true;\nexport default Borders;","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nvar ChartLabel = function (_React$PureComponent) {\n _inherits(ChartLabel, _React$PureComponent);\n function ChartLabel() {\n _classCallCheck(this, ChartLabel);\n return _possibleConstructorReturn(this, (ChartLabel.__proto__ || Object.getPrototypeOf(ChartLabel)).apply(this, arguments));\n }\n _createClass(ChartLabel, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n innerHeight = _props.innerHeight,\n innerWidth = _props.innerWidth,\n marginBottom = _props.marginBottom,\n marginLeft = _props.marginLeft,\n marginRight = _props.marginRight,\n marginTop = _props.marginTop,\n className = _props.className,\n includeMargin = _props.includeMargin,\n style = _props.style,\n text = _props.text,\n xPercent = _props.xPercent,\n yPercent = _props.yPercent;\n var width = innerWidth + (includeMargin ? marginLeft + marginRight : 0);\n var height = innerHeight + (includeMargin ? marginTop + marginBottom : 0);\n var xPos = width * xPercent + (includeMargin ? 0 : marginLeft);\n var yPos = height * yPercent + (includeMargin ? marginLeft : 0);\n return React.createElement('g', {\n transform: 'translate(' + xPos + ', ' + yPos + ')',\n className: 'rv-xy-plot__axis__title ' + className\n }, React.createElement('text', style, text));\n }\n }], [{\n key: 'requiresSVG',\n get: function get() {\n return true;\n }\n }]);\n return ChartLabel;\n}(React.PureComponent);\nChartLabel.displayName = 'ChartLabel';\nChartLabel.defaultProps = {\n className: '',\n includeMargin: true,\n text: '',\n xPercent: 0,\n yPercent: 0,\n style: {}\n};\nexport default ChartLabel;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport { range } from 'd3-array';\nimport { scaleLinear } from 'd3-scale';\nexport var ORIENTATION = {\n TOP: 'top',\n LEFT: 'left',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n VERTICAL: 'vertical',\n HORIZONTAL: 'horizontal'\n};\nexport var DIRECTION = {\n VERTICAL: 'vertical',\n HORIZONTAL: 'horizontal'\n};\n\n/**\n * Get total amount of ticks from a given size in pixels.\n * @param {number} size Size of the axis in pixels.\n * @returns {number} Total amount of ticks.\n */\nexport function getTicksTotalFromSize(size) {\n if (size < 700) {\n if (size > 300) {\n return 10;\n }\n return 5;\n }\n return 20;\n}\n\n/**\n * Get the tick values from a given d3 scale.\n * @param {d3.scale} scale Scale function.\n * @param {number} tickTotal Total number of ticks\n * @param {Array} tickValues Array of tick values if they exist.\n * @returns {Array} Array of tick values.\n */\nexport function getTickValues(scale, tickTotal, tickValues) {\n return !tickValues ? scale.ticks ? scale.ticks(tickTotal) : scale.domain() : tickValues;\n}\n\n/**\n * Generate a description of a decorative axis in terms of a linear equation\n * y = slope * x + offset in coordinates\n * @param {Object} axisStart Object of format {x, y} describing in coordinates\n * the start position of the decorative axis\n * @param {Object} axisEnd Object of format {x, y} describing in coordinates\n * the start position of the decorative axis\n * @returns {Number} Object describing each the line in coordinates\n */\nexport function generateFit(axisStart, axisEnd) {\n // address the special case when the slope is infinite\n if (axisStart.x === axisEnd.x) {\n return {\n left: axisStart.y,\n right: axisEnd.y,\n slope: 0,\n offset: axisStart.x\n };\n }\n var slope = (axisStart.y - axisEnd.y) / (axisStart.x - axisEnd.x);\n return {\n left: axisStart.x,\n right: axisEnd.x,\n // generate the linear projection of the axis direction\n slope: slope,\n offset: axisStart.y - slope * axisStart.x\n };\n}\n\n/**\n * Generate a description of a decorative axis in terms of a linear equation\n * y = slope * x + offset in coordinates\n * @param props\n * props.@param {Object} axisStart Object of format {x, y} describing in coordinates\n * the start position of the decorative axis\n * props.@param {Object} axisEnd Object of format {x, y} describing in coordinates\n * the start position of the decorative axis\n * props.@param {Number} numberOfTicks The number of ticks on the axis\n * props.@param {Array.Numbers} axisDomain The values to be interpolated across for the axis\n * @returns {Number} Object describing the slope and the specific coordinates of the points\n */\nexport function generatePoints(_ref) {\n var axisStart = _ref.axisStart,\n axisEnd = _ref.axisEnd,\n numberOfTicks = _ref.numberOfTicks,\n axisDomain = _ref.axisDomain;\n var _generateFit = generateFit(axisStart, axisEnd),\n left = _generateFit.left,\n right = _generateFit.right,\n slope = _generateFit.slope,\n offset = _generateFit.offset;\n // construct a linear band of points, then map them\n\n var pointSlope = (right - left) / numberOfTicks;\n var axisScale = scaleLinear().domain([left, right]).range(axisDomain);\n var slopeVertical = axisStart.x === axisEnd.x;\n return {\n slope: slopeVertical ? Infinity : slope,\n points: range(left, right + pointSlope, pointSlope).map(function (val) {\n if (slopeVertical) {\n return {\n y: val,\n x: slope * val + offset,\n text: axisScale(val)\n };\n }\n return {\n x: val,\n y: slope * val + offset,\n text: axisScale(val)\n };\n }).slice(0, numberOfTicks + 1)\n };\n}\n\n/**\n * Compute the angle (in radians) of a decorative axis\n * @param {Object} axisStart Object of format {x, y} describing in coordinates\n * the start position of the decorative axis\n * @param {Object} axisEnd Object of format {x, y} describing in coordinates\n * the start position of the decorative axis\n * @returns {Number} Angle in radials\n */\nexport function getAxisAngle(axisStart, axisEnd) {\n if (axisStart.x === axisEnd.x) {\n return axisEnd.y > axisStart.y ? Math.PI / 2 : 3 * Math.PI / 2;\n }\n return Math.atan((axisEnd.y - axisStart.y) / (axisEnd.x - axisStart.x));\n}\nexport default {\n DIRECTION: DIRECTION,\n ORIENTATION: ORIENTATION,\n getTicksTotalFromSize: getTicksTotalFromSize,\n getTickValues: getTickValues\n};","import \"core-js/modules/es.array.reduce.js\";\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React, { PureComponent } from 'react';\nimport { getAttributeScale } from '../utils/scales-utils';\nimport Animation, { AnimationPropType } from '../animation';\nimport { getTicksTotalFromSize, getTickValues } from '../utils/axis-utils';\nvar animatedProps = ['xRange', 'yRange', 'xDomain', 'yDomain', 'width', 'height', 'marginLeft', 'marginTop', 'marginRight', 'marginBottom', 'tickTotal'];\nvar CircularGridLines = function (_PureComponent) {\n _inherits(CircularGridLines, _PureComponent);\n function CircularGridLines() {\n _classCallCheck(this, CircularGridLines);\n return _possibleConstructorReturn(this, (CircularGridLines.__proto__ || Object.getPrototypeOf(CircularGridLines)).apply(this, arguments));\n }\n _createClass(CircularGridLines, [{\n key: '_getDefaultProps',\n value: function _getDefaultProps() {\n var _props = this.props,\n innerWidth = _props.innerWidth,\n innerHeight = _props.innerHeight,\n marginTop = _props.marginTop,\n marginLeft = _props.marginLeft;\n return {\n left: marginLeft,\n top: marginTop,\n width: innerWidth,\n height: innerHeight,\n style: {},\n tickTotal: getTicksTotalFromSize(Math.min(innerWidth, innerHeight))\n };\n }\n }, {\n key: 'render',\n value: function render() {\n var _props2 = this.props,\n animation = _props2.animation,\n centerX = _props2.centerX,\n centerY = _props2.centerY;\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: animatedProps\n }), React.createElement(CircularGridLines, _extends({}, this.props, {\n animation: null\n })));\n }\n var props = _extends({}, this._getDefaultProps(), this.props);\n var tickTotal = props.tickTotal,\n tickValues = props.tickValues,\n marginLeft = props.marginLeft,\n marginTop = props.marginTop,\n rRange = props.rRange,\n style = props.style;\n var xScale = getAttributeScale(props, 'x');\n var yScale = getAttributeScale(props, 'y');\n var values = getTickValues(xScale, tickTotal, tickValues);\n return React.createElement('g', {\n transform: 'translate(' + (xScale(centerX) + marginLeft) + ',' + (yScale(centerY) + marginTop) + ')',\n className: 'rv-xy-plot__circular-grid-lines'\n }, values.reduce(function (res, value, index) {\n var radius = xScale(value);\n if (rRange && (radius < rRange[0] || radius > rRange[1])) {\n return res;\n }\n return res.concat([React.createElement('circle', _extends({\n cx: 0,\n cy: 0,\n r: radius\n }, {\n key: index,\n className: 'rv-xy-plot__circular-grid-lines__line',\n style: style\n }))]);\n }, []));\n }\n }]);\n return CircularGridLines;\n}(PureComponent);\nCircularGridLines.displayName = 'CircularGridLines';\nCircularGridLines.defaultProps = {\n centerX: 0,\n centerY: 0\n};\nCircularGridLines.requiresSVG = true;\nexport default CircularGridLines;","var array = Array.prototype;\nexport var slice = array.slice;","export default function (a, b) {\n return a - b;\n}","export default function (x) {\n return function () {\n return x;\n };\n}","export default function (ring, hole) {\n var i = -1,\n n = hole.length,\n c;\n while (++i < n) if (c = ringContains(ring, hole[i])) return c;\n return 0;\n}\nfunction ringContains(ring, point) {\n var x = point[0],\n y = point[1],\n contains = -1;\n for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {\n var pi = ring[i],\n xi = pi[0],\n yi = pi[1],\n pj = ring[j],\n xj = pj[0],\n yj = pj[1];\n if (segmentContains(pi, pj, point)) return 0;\n if (yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi) contains = -contains;\n }\n return contains;\n}\nfunction segmentContains(a, b, c) {\n var i;\n return collinear(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]);\n}\nfunction collinear(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]);\n}\nfunction within(p, q, r) {\n return p <= q && q <= r || r <= q && q <= p;\n}","export default function () {}","import \"core-js/modules/es.array.sort.js\";\nimport { extent, thresholdSturges, tickStep, range } from \"d3-array\";\nimport { slice } from \"./array\";\nimport ascending from \"./ascending\";\nimport area from \"./area\";\nimport constant from \"./constant\";\nimport contains from \"./contains\";\nimport noop from \"./noop\";\nvar cases = [[], [[[1.0, 1.5], [0.5, 1.0]]], [[[1.5, 1.0], [1.0, 1.5]]], [[[1.5, 1.0], [0.5, 1.0]]], [[[1.0, 0.5], [1.5, 1.0]]], [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]], [[[1.0, 0.5], [1.0, 1.5]]], [[[1.0, 0.5], [0.5, 1.0]]], [[[0.5, 1.0], [1.0, 0.5]]], [[[1.0, 1.5], [1.0, 0.5]]], [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]], [[[1.5, 1.0], [1.0, 0.5]]], [[[0.5, 1.0], [1.5, 1.0]]], [[[1.0, 1.5], [1.5, 1.0]]], [[[0.5, 1.0], [1.0, 1.5]]], []];\nexport default function () {\n var dx = 1,\n dy = 1,\n threshold = thresholdSturges,\n smooth = smoothLinear;\n function contours(values) {\n var tz = threshold(values);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n var domain = extent(values),\n start = domain[0],\n stop = domain[1];\n tz = tickStep(start, stop, tz);\n tz = range(Math.floor(start / tz) * tz, Math.floor(stop / tz) * tz, tz);\n } else {\n tz = tz.slice().sort(ascending);\n }\n return tz.map(function (value) {\n return contour(values, value);\n });\n }\n\n // Accumulate, smooth contour rings, assign holes to exterior rings.\n // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js\n function contour(values, value) {\n var polygons = [],\n holes = [];\n isorings(values, value, function (ring) {\n smooth(ring, values, value);\n if (area(ring) > 0) polygons.push([ring]);else holes.push(ring);\n });\n holes.forEach(function (hole) {\n for (var i = 0, n = polygons.length, polygon; i < n; ++i) {\n if (contains((polygon = polygons[i])[0], hole) !== -1) {\n polygon.push(hole);\n return;\n }\n }\n });\n return {\n type: \"MultiPolygon\",\n value: value,\n coordinates: polygons\n };\n }\n\n // Marching squares with isolines stitched into rings.\n // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js\n function isorings(values, value, callback) {\n var fragmentByStart = new Array(),\n fragmentByEnd = new Array(),\n x,\n y,\n t0,\n t1,\n t2,\n t3;\n\n // Special case for the first row (y = -1, t2 = t3 = 0).\n x = y = -1;\n t1 = values[0] >= value;\n cases[t1 << 1].forEach(stitch);\n while (++x < dx - 1) {\n t0 = t1, t1 = values[x + 1] >= value;\n cases[t0 | t1 << 1].forEach(stitch);\n }\n cases[t1 << 0].forEach(stitch);\n\n // General case for the intermediate rows.\n while (++y < dy - 1) {\n x = -1;\n t1 = values[y * dx + dx] >= value;\n t2 = values[y * dx] >= value;\n cases[t1 << 1 | t2 << 2].forEach(stitch);\n while (++x < dx - 1) {\n t0 = t1, t1 = values[y * dx + dx + x + 1] >= value;\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);\n }\n cases[t1 | t2 << 3].forEach(stitch);\n }\n\n // Special case for the last row (y = dy - 1, t0 = t1 = 0).\n x = -1;\n t2 = values[y * dx] >= value;\n cases[t2 << 2].forEach(stitch);\n while (++x < dx - 1) {\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t2 << 2 | t3 << 3].forEach(stitch);\n }\n cases[t2 << 3].forEach(stitch);\n function stitch(line) {\n var start = [line[0][0] + x, line[0][1] + y],\n end = [line[1][0] + x, line[1][1] + y],\n startIndex = index(start),\n endIndex = index(end),\n f,\n g;\n if (f = fragmentByEnd[startIndex]) {\n if (g = fragmentByStart[endIndex]) {\n delete fragmentByEnd[f.end];\n delete fragmentByStart[g.start];\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[f.start] = fragmentByEnd[g.end] = {\n start: f.start,\n end: g.end,\n ring: f.ring.concat(g.ring)\n };\n }\n } else {\n delete fragmentByEnd[f.end];\n f.ring.push(end);\n fragmentByEnd[f.end = endIndex] = f;\n }\n } else if (f = fragmentByStart[endIndex]) {\n if (g = fragmentByEnd[startIndex]) {\n delete fragmentByStart[f.start];\n delete fragmentByEnd[g.end];\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[g.start] = fragmentByEnd[f.end] = {\n start: g.start,\n end: f.end,\n ring: g.ring.concat(f.ring)\n };\n }\n } else {\n delete fragmentByStart[f.start];\n f.ring.unshift(start);\n fragmentByStart[f.start = startIndex] = f;\n }\n } else {\n fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {\n start: startIndex,\n end: endIndex,\n ring: [start, end]\n };\n }\n }\n }\n function index(point) {\n return point[0] * 2 + point[1] * (dx + 1) * 4;\n }\n function smoothLinear(ring, values, value) {\n ring.forEach(function (point) {\n var x = point[0],\n y = point[1],\n xt = x | 0,\n yt = y | 0,\n v0,\n v1 = values[yt * dx + xt];\n if (x > 0 && x < dx && xt === x) {\n v0 = values[yt * dx + xt - 1];\n point[0] = x + (value - v0) / (v1 - v0) - 0.5;\n }\n if (y > 0 && y < dy && yt === y) {\n v0 = values[(yt - 1) * dx + xt];\n point[1] = y + (value - v0) / (v1 - v0) - 0.5;\n }\n });\n }\n contours.contour = contour;\n contours.size = function (_) {\n if (!arguments.length) return [dx, dy];\n var _0 = Math.ceil(_[0]),\n _1 = Math.ceil(_[1]);\n if (!(_0 > 0) || !(_1 > 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, contours;\n };\n contours.thresholds = function (_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), contours) : threshold;\n };\n contours.smooth = function (_) {\n return arguments.length ? (smooth = _ ? smoothLinear : noop, contours) : smooth === smoothLinear;\n };\n return contours;\n}","export default function (ring) {\n var i = 0,\n n = ring.length,\n area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];\n while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];\n return area;\n}","// TODO Optimize edge cases.\n// TODO Optimize index calculation.\n// TODO Optimize arguments.\nexport function blurX(source, target, r) {\n var n = source.width,\n m = source.height,\n w = (r << 1) + 1;\n for (var j = 0; j < m; ++j) {\n for (var i = 0, sr = 0; i < n + r; ++i) {\n if (i < n) {\n sr += source.data[i + j * n];\n }\n if (i >= r) {\n if (i >= w) {\n sr -= source.data[i - w + j * n];\n }\n target.data[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w);\n }\n }\n }\n}\n\n// TODO Optimize edge cases.\n// TODO Optimize index calculation.\n// TODO Optimize arguments.\nexport function blurY(source, target, r) {\n var n = source.width,\n m = source.height,\n w = (r << 1) + 1;\n for (var i = 0; i < n; ++i) {\n for (var j = 0, sr = 0; j < m + r; ++j) {\n if (j < m) {\n sr += source.data[i + j * n];\n }\n if (j >= r) {\n if (j >= w) {\n sr -= source.data[i + (j - w) * n];\n }\n target.data[i + (j - r) * n] = sr / Math.min(j + 1, m - 1 + w - j, w);\n }\n }\n }\n}","import \"core-js/modules/es.typed-array.set.js\";\nimport \"core-js/modules/es.typed-array.sort.js\";\nimport { max, range, tickStep } from \"d3-array\";\nimport { slice } from \"./array\";\nimport { blurX, blurY } from \"./blur\";\nimport constant from \"./constant\";\nimport contours from \"./contours\";\nfunction defaultX(d) {\n return d[0];\n}\nfunction defaultY(d) {\n return d[1];\n}\nfunction defaultWeight() {\n return 1;\n}\nexport default function () {\n var x = defaultX,\n y = defaultY,\n weight = defaultWeight,\n dx = 960,\n dy = 500,\n r = 20,\n // blur radius\n k = 2,\n // log2(grid cell size)\n o = r * 3,\n // grid offset, to pad for blur\n n = dx + o * 2 >> k,\n // grid width\n m = dy + o * 2 >> k,\n // grid height\n threshold = constant(20);\n function density(data) {\n var values0 = new Float32Array(n * m),\n values1 = new Float32Array(n * m);\n data.forEach(function (d, i, data) {\n var xi = +x(d, i, data) + o >> k,\n yi = +y(d, i, data) + o >> k,\n wi = +weight(d, i, data);\n if (xi >= 0 && xi < n && yi >= 0 && yi < m) {\n values0[xi + yi * n] += wi;\n }\n });\n\n // TODO Optimize.\n blurX({\n width: n,\n height: m,\n data: values0\n }, {\n width: n,\n height: m,\n data: values1\n }, r >> k);\n blurY({\n width: n,\n height: m,\n data: values1\n }, {\n width: n,\n height: m,\n data: values0\n }, r >> k);\n blurX({\n width: n,\n height: m,\n data: values0\n }, {\n width: n,\n height: m,\n data: values1\n }, r >> k);\n blurY({\n width: n,\n height: m,\n data: values1\n }, {\n width: n,\n height: m,\n data: values0\n }, r >> k);\n blurX({\n width: n,\n height: m,\n data: values0\n }, {\n width: n,\n height: m,\n data: values1\n }, r >> k);\n blurY({\n width: n,\n height: m,\n data: values1\n }, {\n width: n,\n height: m,\n data: values0\n }, r >> k);\n var tz = threshold(values0);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n var stop = max(values0);\n tz = tickStep(0, stop, tz);\n tz = range(0, Math.floor(stop / tz) * tz, tz);\n tz.shift();\n }\n return contours().thresholds(tz).size([n, m])(values0).map(transform);\n }\n function transform(geometry) {\n geometry.value *= Math.pow(2, -2 * k); // Density in points per square pixel.\n geometry.coordinates.forEach(transformPolygon);\n return geometry;\n }\n function transformPolygon(coordinates) {\n coordinates.forEach(transformRing);\n }\n function transformRing(coordinates) {\n coordinates.forEach(transformPoint);\n }\n\n // TODO Optimize.\n function transformPoint(coordinates) {\n coordinates[0] = coordinates[0] * Math.pow(2, k) - o;\n coordinates[1] = coordinates[1] * Math.pow(2, k) - o;\n }\n function resize() {\n o = r * 3;\n n = dx + o * 2 >> k;\n m = dy + o * 2 >> k;\n return density;\n }\n density.x = function (_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), density) : x;\n };\n density.y = function (_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), density) : y;\n };\n density.weight = function (_) {\n return arguments.length ? (weight = typeof _ === \"function\" ? _ : constant(+_), density) : weight;\n };\n density.size = function (_) {\n if (!arguments.length) return [dx, dy];\n var _0 = Math.ceil(_[0]),\n _1 = Math.ceil(_[1]);\n if (!(_0 >= 0) && !(_0 >= 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, resize();\n };\n density.cellSize = function (_) {\n if (!arguments.length) return 1 << k;\n if (!((_ = +_) >= 1)) throw new Error(\"invalid cell size\");\n return k = Math.floor(Math.log(_) / Math.LN2), resize();\n };\n density.thresholds = function (_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), density) : threshold;\n };\n density.bandwidth = function (_) {\n if (!arguments.length) return Math.sqrt(r * (r + 1));\n if (!((_ = +_) >= 0)) throw new Error(\"invalid bandwidth\");\n return r = Math.round((Math.sqrt(4 * _ * _ + 1) - 1) / 2), resize();\n };\n return density;\n}","export default function (x) {\n return x;\n}","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\nvar streamObjectType = {\n Feature: function Feature(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function FeatureCollection(object, stream) {\n var features = object.features,\n i = -1,\n n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\nvar streamGeometryType = {\n Sphere: function Sphere(object, stream) {\n stream.sphere();\n },\n Point: function Point(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function MultiPoint(object, stream) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function LineString(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function MultiLineString(object, stream) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function Polygon(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function MultiPolygon(object, stream) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function GeometryCollection(object, stream) {\n var geometries = object.geometries,\n i = -1,\n n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\nfunction streamLine(coordinates, stream, closed) {\n var i = -1,\n n = coordinates.length - closed,\n coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\nfunction streamPolygon(coordinates, stream) {\n var i = -1,\n n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\n stream.polygonEnd();\n}\nexport default function (object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}","// Adds floating point numbers with twice the normal precision.\n// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and\n// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)\n// 305–363 (1997).\n// Code adapted from GeographicLib by Charles F. F. Karney,\n// http://geographiclib.sourceforge.net/\n\nexport default function () {\n return new Adder();\n}\nfunction Adder() {\n this.reset();\n}\nAdder.prototype = {\n constructor: Adder,\n reset: function reset() {\n this.s =\n // rounded value\n this.t = 0; // exact error\n },\n\n add: function add(y) {\n _add(temp, y, this.t);\n _add(this, temp.s, this.s);\n if (this.s) this.t += temp.t;else this.s = temp.t;\n },\n valueOf: function valueOf() {\n return this.s;\n }\n};\nvar temp = new Adder();\nfunction _add(adder, a, b) {\n var x = adder.s = a + b,\n bv = x - a,\n av = x - bv;\n adder.t = a - av + (b - bv);\n}","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function (x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n};\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}","export default function noop() {}","import adder from \"../adder.js\";\nimport { abs } from \"../math.js\";\nimport noop from \"../noop.js\";\nvar areaSum = adder(),\n areaRingSum = adder(),\n x00,\n y00,\n x0,\n y0;\nvar areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function polygonStart() {\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function polygonEnd() {\n areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n areaSum.add(abs(areaRingSum));\n areaRingSum.reset();\n },\n result: function result() {\n var area = areaSum / 2;\n areaSum.reset();\n return area;\n }\n};\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\nfunction areaPointFirst(x, y) {\n areaStream.point = areaPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\nfunction areaPoint(x, y) {\n areaRingSum.add(y0 * x - x0 * y);\n x0 = x, y0 = y;\n}\nfunction areaRingEnd() {\n areaPoint(x00, y00);\n}\nexport default areaStream;","import noop from \"../noop.js\";\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function result() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\nexport default boundsStream;","import { sqrt } from \"../math.js\";\n\n// TODO Enforce positive area for exterior, negative area for interior?\n\nvar X0 = 0,\n Y0 = 0,\n Z0 = 0,\n X1 = 0,\n Y1 = 0,\n Z1 = 0,\n X2 = 0,\n Y2 = 0,\n Z2 = 0,\n x00,\n y00,\n x0,\n y0;\nvar centroidStream = {\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function polygonStart() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function polygonEnd() {\n centroidStream.point = centroidPoint;\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n },\n result: function result() {\n var centroid = Z2 ? [X2 / Z2, Y2 / Z2] : Z1 ? [X1 / Z1, Y1 / Z1] : Z0 ? [X0 / Z0, Y0 / Z0] : [NaN, NaN];\n X0 = Y0 = Z0 = X1 = Y1 = Z1 = X2 = Y2 = Z2 = 0;\n return centroid;\n }\n};\nfunction centroidPoint(x, y) {\n X0 += x;\n Y0 += y;\n ++Z0;\n}\nfunction centroidLineStart() {\n centroidStream.point = centroidPointFirstLine;\n}\nfunction centroidPointFirstLine(x, y) {\n centroidStream.point = centroidPointLine;\n centroidPoint(x0 = x, y0 = y);\n}\nfunction centroidPointLine(x, y) {\n var dx = x - x0,\n dy = y - y0,\n z = sqrt(dx * dx + dy * dy);\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n centroidPoint(x0 = x, y0 = y);\n}\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\nfunction centroidRingStart() {\n centroidStream.point = centroidPointFirstRing;\n}\nfunction centroidRingEnd() {\n centroidPointRing(x00, y00);\n}\nfunction centroidPointFirstRing(x, y) {\n centroidStream.point = centroidPointRing;\n centroidPoint(x00 = x0 = x, y00 = y0 = y);\n}\nfunction centroidPointRing(x, y) {\n var dx = x - x0,\n dy = y - y0,\n z = sqrt(dx * dx + dy * dy);\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n z = y0 * x - x0 * y;\n X2 += z * (x0 + x);\n Y2 += z * (y0 + y);\n Z2 += z * 3;\n centroidPoint(x0 = x, y0 = y);\n}\nexport default centroidStream;","import { tau } from \"../math.js\";\nimport noop from \"../noop.js\";\nexport default function PathContext(context) {\n this._context = context;\n}\nPathContext.prototype = {\n _radius: 4.5,\n pointRadius: function pointRadius(_) {\n return this._radius = _, this;\n },\n polygonStart: function polygonStart() {\n this._line = 0;\n },\n polygonEnd: function polygonEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function point(x, y) {\n switch (this._point) {\n case 0:\n {\n this._context.moveTo(x, y);\n this._point = 1;\n break;\n }\n case 1:\n {\n this._context.lineTo(x, y);\n break;\n }\n default:\n {\n this._context.moveTo(x + this._radius, y);\n this._context.arc(x, y, this._radius, 0, tau);\n break;\n }\n }\n },\n result: noop\n};","import adder from \"../adder.js\";\nimport { sqrt } from \"../math.js\";\nimport noop from \"../noop.js\";\nvar lengthSum = adder(),\n lengthRing,\n x00,\n y00,\n x0,\n y0;\nvar lengthStream = {\n point: noop,\n lineStart: function lineStart() {\n lengthStream.point = lengthPointFirst;\n },\n lineEnd: function lineEnd() {\n if (lengthRing) lengthPoint(x00, y00);\n lengthStream.point = noop;\n },\n polygonStart: function polygonStart() {\n lengthRing = true;\n },\n polygonEnd: function polygonEnd() {\n lengthRing = null;\n },\n result: function result() {\n var length = +lengthSum;\n lengthSum.reset();\n return length;\n }\n};\nfunction lengthPointFirst(x, y) {\n lengthStream.point = lengthPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\nfunction lengthPoint(x, y) {\n x0 -= x, y0 -= y;\n lengthSum.add(sqrt(x0 * x0 + y0 * y0));\n x0 = x, y0 = y;\n}\nexport default lengthStream;","export default function PathString() {\n this._string = [];\n}\nPathString.prototype = {\n _radius: 4.5,\n _circle: circle(4.5),\n pointRadius: function pointRadius(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function polygonStart() {\n this._line = 0;\n },\n polygonEnd: function polygonEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function point(x, y) {\n switch (this._point) {\n case 0:\n {\n this._string.push(\"M\", x, \",\", y);\n this._point = 1;\n break;\n }\n case 1:\n {\n this._string.push(\"L\", x, \",\", y);\n break;\n }\n default:\n {\n if (this._circle == null) this._circle = circle(this._radius);\n this._string.push(\"M\", x, \",\", y, this._circle);\n break;\n }\n }\n },\n result: function result() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n};\nfunction circle(radius) {\n return \"m0,\" + radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius + \"z\";\n}","import identity from \"../identity.js\";\nimport stream from \"../stream.js\";\nimport pathArea from \"./area.js\";\nimport pathBounds from \"./bounds.js\";\nimport pathCentroid from \"./centroid.js\";\nimport PathContext from \"./context.js\";\nimport pathMeasure from \"./measure.js\";\nimport PathString from \"./string.js\";\nexport default function (projection, context) {\n var pointRadius = 4.5,\n projectionStream,\n contextStream;\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n stream(object, projectionStream(contextStream));\n }\n return contextStream.result();\n }\n path.area = function (object) {\n stream(object, projectionStream(pathArea));\n return pathArea.result();\n };\n path.measure = function (object) {\n stream(object, projectionStream(pathMeasure));\n return pathMeasure.result();\n };\n path.bounds = function (object) {\n stream(object, projectionStream(pathBounds));\n return pathBounds.result();\n };\n path.centroid = function (object) {\n stream(object, projectionStream(pathCentroid));\n return pathCentroid.result();\n };\n path.projection = function (_) {\n return arguments.length ? (projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream, path) : projection;\n };\n path.context = function (_) {\n if (!arguments.length) return context;\n contextStream = _ == null ? (context = null, new PathString()) : new PathContext(context = _);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n path.pointRadius = function (_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n return path.projection(projection).context(context);\n}","import \"core-js/modules/es.array.reduce.js\";\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport { contourDensity } from 'd3-contour';\nimport { geoPath } from 'd3-geo';\nimport { scaleLinear } from 'd3-scale';\nimport AbstractSeries from './abstract-series';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { CONTINUOUS_COLOR_RANGE } from '../../theme';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--contour';\nfunction getDomain(data) {\n return data.reduce(function (acc, row) {\n return {\n min: Math.min(acc.min, row.value),\n max: Math.max(acc.max, row.value)\n };\n }, {\n min: Infinity,\n max: -Infinity\n });\n}\nvar ContourSeries = function (_AbstractSeries) {\n _inherits(ContourSeries, _AbstractSeries);\n function ContourSeries() {\n _classCallCheck(this, ContourSeries);\n return _possibleConstructorReturn(this, (ContourSeries.__proto__ || Object.getPrototypeOf(ContourSeries)).apply(this, arguments));\n }\n _createClass(ContourSeries, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n animation = _props.animation,\n bandwidth = _props.bandwidth,\n className = _props.className,\n colorRange = _props.colorRange,\n data = _props.data,\n innerHeight = _props.innerHeight,\n innerWidth = _props.innerWidth,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n style = _props.style;\n if (!data || !innerWidth || !innerHeight) {\n return null;\n }\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(ContourSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n var x = this._getAttributeFunctor('x');\n var y = this._getAttributeFunctor('y');\n var contouredData = contourDensity().x(function (d) {\n return x(d);\n }).y(function (d) {\n return y(d);\n }).size([innerWidth, innerHeight]).bandwidth(bandwidth)(data);\n var geo = geoPath();\n var _getDomain = getDomain(contouredData),\n min = _getDomain.min,\n max = _getDomain.max;\n var colorScale = scaleLinear().domain([min, max]).range(colorRange || CONTINUOUS_COLOR_RANGE);\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n }, contouredData.map(function (polygon, index) {\n return React.createElement('path', {\n className: 'rv-xy-plot__series--contour-line',\n key: 'rv-xy-plot__series--contour-line-' + index,\n d: geo(polygon),\n style: _extends({\n fill: colorScale(polygon.value)\n }, style)\n });\n }));\n }\n }]);\n return ContourSeries;\n}(AbstractSeries);\nContourSeries.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n bandwidth: 40,\n style: {}\n});\nexport default ContourSeries;","export default function (values, valueof) {\n var n = values.length,\n i = -1,\n value,\n max;\n if (valueof == null) {\n while (++i < n) {\n // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n max = value;\n while (++i < n) {\n // Compare the remaining values.\n if ((value = values[i]) != null && value > max) {\n max = value;\n }\n }\n }\n }\n } else {\n while (++i < n) {\n // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max = value;\n while (++i < n) {\n // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n return max;\n}","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { transformValueToString } from '../utils/data-utils';\nimport { getAttributeFunctor } from '../utils/scales-utils';\n\n/**\n * Format title by detault.\n * @param {Array} values List of values.\n * @returns {*} Formatted value or undefined.\n */\nfunction defaultTitleFormat(values) {\n var value = getFirstNonEmptyValue(values);\n if (value) {\n return {\n title: 'x',\n value: transformValueToString(value.x)\n };\n }\n}\n\n/**\n * Format items by default.\n * @param {Array} values Array of values.\n * @returns {*} Formatted list of items.\n */\nfunction defaultItemsFormat(values) {\n return values.map(function (v, i) {\n if (v) {\n return {\n value: v.y,\n title: i\n };\n }\n });\n}\n\n/**\n * Get the first non-empty item from an array.\n * @param {Array} values Array of values.\n * @returns {*} First non-empty value or undefined.\n */\nfunction getFirstNonEmptyValue(values) {\n return (values || []).find(function (v) {\n return Boolean(v);\n });\n}\nvar Crosshair = function (_PureComponent) {\n _inherits(Crosshair, _PureComponent);\n function Crosshair() {\n _classCallCheck(this, Crosshair);\n return _possibleConstructorReturn(this, (Crosshair.__proto__ || Object.getPrototypeOf(Crosshair)).apply(this, arguments));\n }\n _createClass(Crosshair, [{\n key: '_renderCrosshairItems',\n /**\n * Render crosshair items (title + value for each series).\n * @returns {*} Array of React classes with the crosshair values.\n * @private\n */\n value: function _renderCrosshairItems() {\n var _props = this.props,\n values = _props.values,\n itemsFormat = _props.itemsFormat;\n var items = itemsFormat(values);\n if (!items) {\n return null;\n }\n return items.filter(function (i) {\n return i;\n }).map(function renderValue(item, i) {\n return React.createElement('div', {\n className: 'rv-crosshair__item',\n key: 'item' + i\n }, React.createElement('span', {\n className: 'rv-crosshair__item__title'\n }, item.title), ': ', React.createElement('span', {\n className: 'rv-crosshair__item__value'\n }, item.value));\n });\n }\n\n /**\n * Render crosshair title.\n * @returns {*} Container with the crosshair title.\n * @private\n */\n }, {\n key: '_renderCrosshairTitle',\n value: function _renderCrosshairTitle() {\n var _props2 = this.props,\n values = _props2.values,\n titleFormat = _props2.titleFormat,\n style = _props2.style;\n var titleItem = titleFormat(values);\n if (!titleItem) {\n return null;\n }\n return React.createElement('div', {\n className: 'rv-crosshair__title',\n key: 'title',\n style: style.title\n }, React.createElement('span', {\n className: 'rv-crosshair__title__title'\n }, titleItem.title), ': ', React.createElement('span', {\n className: 'rv-crosshair__title__value'\n }, titleItem.value));\n }\n }, {\n key: 'render',\n value: function render() {\n var _props3 = this.props,\n children = _props3.children,\n className = _props3.className,\n values = _props3.values,\n marginTop = _props3.marginTop,\n marginLeft = _props3.marginLeft,\n innerWidth = _props3.innerWidth,\n innerHeight = _props3.innerHeight,\n style = _props3.style;\n var value = getFirstNonEmptyValue(values);\n if (!value) {\n return null;\n }\n var x = getAttributeFunctor(this.props, 'x');\n var innerLeft = x(value);\n var _props$orientation = this.props.orientation,\n orientation = _props$orientation === undefined ? innerLeft > innerWidth / 2 ? 'left' : 'right' : _props$orientation;\n var left = marginLeft + innerLeft;\n var top = marginTop;\n var innerClassName = 'rv-crosshair__inner rv-crosshair__inner--' + orientation;\n return React.createElement('div', {\n className: 'rv-crosshair ' + className,\n style: {\n left: left + 'px',\n top: top + 'px'\n }\n }, React.createElement('div', {\n className: 'rv-crosshair__line',\n style: _extends({\n height: innerHeight + 'px'\n }, style.line)\n }), React.createElement('div', {\n className: innerClassName\n }, children ? children : React.createElement('div', {\n className: 'rv-crosshair__inner__content',\n style: style.box\n }, React.createElement('div', null, this._renderCrosshairTitle(), this._renderCrosshairItems()))));\n }\n }], [{\n key: 'defaultProps',\n get: function get() {\n return {\n titleFormat: defaultTitleFormat,\n itemsFormat: defaultItemsFormat,\n style: {\n line: {},\n title: {},\n box: {}\n }\n };\n }\n }, {\n key: 'propTypes',\n get: function get() {\n return {\n className: PropTypes.string,\n values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.object])),\n series: PropTypes.object,\n innerWidth: PropTypes.number,\n innerHeight: PropTypes.number,\n marginLeft: PropTypes.number,\n marginTop: PropTypes.number,\n orientation: PropTypes.oneOf(['left', 'right']),\n itemsFormat: PropTypes.func,\n titleFormat: PropTypes.func,\n style: PropTypes.shape({\n line: PropTypes.object,\n title: PropTypes.object,\n box: PropTypes.object\n })\n };\n }\n }]);\n return Crosshair;\n}(PureComponent);\nCrosshair.displayName = 'Crosshair';\nexport default Crosshair;","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport AbstractSeries from './abstract-series';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--custom-svg-wrapper';\nvar DEFAULT_STYLE = {\n stroke: 'blue',\n fill: 'blue'\n};\nfunction predefinedComponents(type) {\n var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n var style = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_STYLE;\n switch (type) {\n case 'diamond':\n return React.createElement('polygon', {\n style: style,\n points: '0 0 ' + size / 2 + ' ' + size / 2 + ' 0 ' + size + ' ' + -size / 2 + ' ' + size / 2 + ' 0 0'\n });\n case 'star':\n var starPoints = [].concat(_toConsumableArray(new Array(5))).map(function (c, index) {\n var angle = index / 5 * Math.PI * 2;\n var innerAngle = angle + Math.PI / 10;\n var outerAngle = angle - Math.PI / 10;\n // ratio of inner polygon to outer polgyon\n var innerRadius = size / 2.61;\n return '\\n ' + Math.cos(outerAngle) * size + ' ' + Math.sin(outerAngle) * size + '\\n ' + Math.cos(innerAngle) * innerRadius + ' ' + Math.sin(innerAngle) * innerRadius + '\\n ';\n }).join(' ');\n return React.createElement('polygon', {\n points: starPoints,\n x: '0',\n y: '0',\n height: size,\n width: size,\n style: style\n });\n case 'square':\n return React.createElement('rect', {\n x: '' + -size / 2,\n y: '' + -size / 2,\n height: size,\n width: size,\n style: style\n });\n default:\n case 'circle':\n return React.createElement('circle', {\n cx: '0',\n cy: '0',\n r: size / 2,\n style: style\n });\n }\n}\nfunction getInnerComponent(_ref) {\n var customComponent = _ref.customComponent,\n defaultType = _ref.defaultType,\n positionInPixels = _ref.positionInPixels,\n positionFunctions = _ref.positionFunctions,\n style = _ref.style,\n propsSize = _ref.propsSize;\n var size = customComponent.size;\n var aggStyle = _extends({}, style, customComponent.style || {});\n var innerComponent = customComponent.customComponent;\n if (!innerComponent && typeof defaultType === 'string') {\n return predefinedComponents(defaultType, size || propsSize, aggStyle);\n }\n // if default component is a function\n if (!innerComponent) {\n return defaultType(customComponent, positionInPixels, aggStyle);\n }\n if (typeof innerComponent === 'string') {\n return predefinedComponents(innerComponent || defaultType, size, aggStyle);\n }\n // if inner component is a function\n return innerComponent(customComponent, positionInPixels, aggStyle);\n}\nvar CustomSVGSeries = function (_AbstractSeries) {\n _inherits(CustomSVGSeries, _AbstractSeries);\n function CustomSVGSeries() {\n _classCallCheck(this, CustomSVGSeries);\n return _possibleConstructorReturn(this, (CustomSVGSeries.__proto__ || Object.getPrototypeOf(CustomSVGSeries)).apply(this, arguments));\n }\n _createClass(CustomSVGSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n customComponent = _props.customComponent,\n data = _props.data,\n innerHeight = _props.innerHeight,\n innerWidth = _props.innerWidth,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n style = _props.style,\n size = _props.size;\n if (!data || !innerWidth || !innerHeight) {\n return null;\n }\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(CustomSVGSeries, _extends({}, this.props, {\n animation: false\n })));\n }\n var x = this._getAttributeFunctor('x');\n var y = this._getAttributeFunctor('y');\n var contents = data.map(function (seriesComponent, index) {\n var positionInPixels = {\n x: x(seriesComponent),\n y: y(seriesComponent)\n };\n var innerComponent = getInnerComponent({\n customComponent: seriesComponent,\n positionInPixels: positionInPixels,\n defaultType: customComponent,\n positionFunctions: {\n x: x,\n y: y\n },\n style: style,\n propsSize: size\n });\n return React.createElement('g', {\n className: 'rv-xy-plot__series--custom-svg',\n key: 'rv-xy-plot__series--custom-svg-' + index,\n transform: 'translate(' + positionInPixels.x + ',' + positionInPixels.y + ')',\n onMouseEnter: function onMouseEnter(e) {\n return _this2._valueMouseOverHandler(seriesComponent, e);\n },\n onMouseLeave: function onMouseLeave(e) {\n return _this2._valueMouseOutHandler(seriesComponent, e);\n }\n }, innerComponent);\n });\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n }, contents);\n }\n }]);\n return CustomSVGSeries;\n}(AbstractSeries);\nCustomSVGSeries.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n animation: false,\n customComponent: 'circle',\n style: {},\n size: 2\n});\nexport default CustomSVGSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport { generatePoints, getAxisAngle } from '../../utils/axis-utils';\n\n/**\n * Generate the actual polygons to be plotted\n * @param {Object} props\n - props.animation {Boolean}\n - props.axisDomain {Array} a pair of values specifying the domain of the axis\n - props.numberOfTicks{Number} the number of ticks on the axis\n - props.axisStart {Object} a object specify in cartesian space the start of the axis\n example: {x: 0, y: 0}\n - props.axisEnd {Object} a object specify in cartesian space the start of the axis\n - props.tickValue {Func} a formatting function for the tick values\n - props.tickSize {Number} a pixel size of the axis\n - props.style {Object} The style object for the axis\n * @return {Component} the plotted axis\n */\nexport default function decorativeAxisTick(props) {\n var axisDomain = props.axisDomain,\n numberOfTicks = props.numberOfTicks,\n axisStart = props.axisStart,\n axisEnd = props.axisEnd,\n tickValue = props.tickValue,\n tickSize = props.tickSize,\n style = props.style;\n var _generatePoints = generatePoints({\n axisStart: axisStart,\n axisEnd: axisEnd,\n numberOfTicks: numberOfTicks,\n axisDomain: axisDomain\n }),\n points = _generatePoints.points;\n // add a quarter rotation to make ticks orthogonal to axis\n\n var tickAngle = getAxisAngle(axisStart, axisEnd) + Math.PI / 2;\n return points.map(function (point, index) {\n var tickProps = _extends({\n x1: 0,\n y1: 0,\n x2: tickSize * Math.cos(tickAngle),\n y2: tickSize * Math.sin(tickAngle)\n }, style.ticks);\n var textProps = _extends({\n x: tickSize * Math.cos(tickAngle),\n y: tickSize * Math.sin(tickAngle),\n textAnchor: 'start'\n }, style.text);\n return React.createElement('g', {\n key: index,\n transform: 'translate(' + point.x + ', ' + point.y + ')',\n className: 'rv-xy-plot__axis__tick'\n }, React.createElement('line', _extends({}, tickProps, {\n className: 'rv-xy-plot__axis__tick__line'\n })), React.createElement('text', _extends({}, textProps, {\n className: 'rv-xy-plot__axis__tick__text'\n }), tickValue(point.text)));\n });\n}","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport { format } from 'd3-format';\nimport AbstractSeries from '../series/abstract-series';\nimport DecorativeAxisTicks from './decorative-axis-ticks';\nimport Animation from '../../animation';\nvar predefinedClassName = 'rv-xy-manipulable-axis rv-xy-plot__axis';\nvar animatedProps = ['xRange', 'yRange', 'xDomain', 'yDomain', 'width', 'height', 'marginLeft', 'marginTop', 'marginRight', 'marginBottom', 'tickSize', 'tickTotal', 'tickSizeInner', 'tickSizeOuter'];\nvar DecorativeAxis = function (_AbstractSeries) {\n _inherits(DecorativeAxis, _AbstractSeries);\n function DecorativeAxis() {\n _classCallCheck(this, DecorativeAxis);\n return _possibleConstructorReturn(this, (DecorativeAxis.__proto__ || Object.getPrototypeOf(DecorativeAxis)).apply(this, arguments));\n }\n _createClass(DecorativeAxis, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n axisStart = _props.axisStart,\n axisEnd = _props.axisEnd,\n axisDomain = _props.axisDomain,\n numberOfTicks = _props.numberOfTicks,\n tickValue = _props.tickValue,\n tickSize = _props.tickSize,\n style = _props.style;\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: animatedProps\n }), React.createElement(DecorativeAxis, _extends({}, this.props, {\n animation: null\n })));\n }\n var x = this._getAttributeFunctor('x');\n var y = this._getAttributeFunctor('y');\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n }, React.createElement('line', _extends({}, _extends({\n x1: x({\n x: axisStart.x\n }),\n x2: x({\n x: axisEnd.x\n }),\n y1: y({\n y: axisStart.y\n }),\n y2: y({\n y: axisEnd.y\n })\n }, style.line), {\n className: 'rv-xy-plot__axis__line'\n })), React.createElement('g', {\n className: 'rv-xy-manipulable-axis__ticks'\n }, DecorativeAxisTicks({\n axisDomain: axisDomain,\n axisEnd: {\n x: x(axisEnd),\n y: y(axisEnd)\n },\n axisStart: {\n x: x(axisStart),\n y: y(axisStart)\n },\n numberOfTicks: numberOfTicks,\n tickValue: tickValue,\n tickSize: tickSize,\n style: style\n })));\n }\n }]);\n return DecorativeAxis;\n}(AbstractSeries);\nvar DEFAULT_FORMAT = format('.2r');\nDecorativeAxis.defaultProps = {\n className: '',\n numberOfTicks: 10,\n tickValue: function tickValue(d) {\n return DEFAULT_FORMAT(d);\n },\n tickSize: 5,\n style: {\n line: {\n strokeWidth: 1\n },\n ticks: {\n strokeWidth: 2\n },\n text: {}\n }\n};\nDecorativeAxis.displayName = 'DecorativeAxis';\nexport default DecorativeAxis;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nvar predefinedClassName = 'rv-gradient-defs';\nfunction GradientDefs(props) {\n var className = props.className;\n return React.createElement('defs', {\n className: predefinedClassName + ' ' + className\n }, props.children);\n}\nGradientDefs.displayName = 'GradientDefs';\nGradientDefs.requiresSVG = true;\nGradientDefs.defaultProps = {\n className: ''\n};\nexport default GradientDefs;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React, { PureComponent } from 'react';\nimport { getAttributeScale } from '../utils/scales-utils';\nimport Animation, { AnimationPropType } from '../animation';\nimport { getTicksTotalFromSize, getTickValues, DIRECTION } from '../utils/axis-utils';\nvar VERTICAL = DIRECTION.VERTICAL;\nvar defaultProps = {\n direction: VERTICAL\n};\nvar animatedProps = ['xRange', 'yRange', 'xDomain', 'yDomain', 'width', 'height', 'marginLeft', 'marginTop', 'marginRight', 'marginBottom', 'tickTotal'];\nvar GridLines = function (_PureComponent) {\n _inherits(GridLines, _PureComponent);\n function GridLines() {\n _classCallCheck(this, GridLines);\n return _possibleConstructorReturn(this, (GridLines.__proto__ || Object.getPrototypeOf(GridLines)).apply(this, arguments));\n }\n _createClass(GridLines, [{\n key: '_getDefaultProps',\n value: function _getDefaultProps() {\n var _props = this.props,\n innerWidth = _props.innerWidth,\n innerHeight = _props.innerHeight,\n marginTop = _props.marginTop,\n marginLeft = _props.marginLeft,\n direction = _props.direction;\n return {\n left: marginLeft,\n top: marginTop,\n width: innerWidth,\n height: innerHeight,\n tickTotal: getTicksTotalFromSize(direction === VERTICAL ? innerWidth : innerHeight)\n };\n }\n }, {\n key: 'render',\n value: function render() {\n var _props2 = this.props,\n animation = _props2.animation,\n className = _props2.className;\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: animatedProps\n }), React.createElement(GridLines, _extends({}, this.props, {\n animation: null\n })));\n }\n var props = _extends({}, this._getDefaultProps(), this.props);\n var attr = props.attr,\n direction = props.direction,\n width = props.width,\n height = props.height,\n style = props.style,\n tickTotal = props.tickTotal,\n tickValues = props.tickValues,\n top = props.top,\n left = props.left;\n var isVertical = direction === VERTICAL;\n var tickXAttr = isVertical ? 'y' : 'x';\n var tickYAttr = isVertical ? 'x' : 'y';\n var length = isVertical ? height : width;\n var scale = getAttributeScale(props, attr);\n var values = getTickValues(scale, tickTotal, tickValues);\n return React.createElement('g', {\n transform: 'translate(' + left + ',' + top + ')',\n className: 'rv-xy-plot__grid-lines ' + className\n }, values.map(function (v, i) {\n var _pathProps;\n var pos = scale(v);\n var pathProps = (_pathProps = {}, _defineProperty(_pathProps, tickYAttr + '1', pos), _defineProperty(_pathProps, tickYAttr + '2', pos), _defineProperty(_pathProps, tickXAttr + '1', 0), _defineProperty(_pathProps, tickXAttr + '2', length), _pathProps);\n return React.createElement('line', _extends({}, pathProps, {\n key: i,\n className: 'rv-xy-plot__grid-lines__line',\n style: style\n }));\n }));\n }\n }]);\n return GridLines;\n}(PureComponent);\nGridLines.displayName = 'GridLines';\nGridLines.defaultProps = defaultProps;\nGridLines.requiresSVG = true;\nexport default GridLines;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport AbstractSeries from './abstract-series';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--heatmap';\nvar HeatmapSeries = function (_AbstractSeries) {\n _inherits(HeatmapSeries, _AbstractSeries);\n function HeatmapSeries() {\n _classCallCheck(this, HeatmapSeries);\n return _possibleConstructorReturn(this, (HeatmapSeries.__proto__ || Object.getPrototypeOf(HeatmapSeries)).apply(this, arguments));\n }\n _createClass(HeatmapSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n data = _props.data,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n style = _props.style;\n if (!data) {\n return null;\n }\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(HeatmapSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n var _rectStyle$style = _extends({\n rectStyle: {}\n }, style),\n rectStyle = _rectStyle$style.rectStyle;\n var x = this._getAttributeFunctor('x');\n var y = this._getAttributeFunctor('y');\n var opacity = this._getAttributeFunctor('opacity');\n var fill = this._getAttributeFunctor('fill') || this._getAttributeFunctor('color');\n var stroke = this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color');\n var xDistance = this._getScaleDistance('x');\n var yDistance = this._getScaleDistance('y');\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n }, data.map(function (d, i) {\n var attrs = _extends({\n style: _extends({\n stroke: stroke && stroke(d),\n fill: fill && fill(d),\n opacity: opacity && opacity(d)\n }, style)\n }, rectStyle, {\n x: x(d) - xDistance / 2,\n y: y(d) - yDistance / 2,\n width: xDistance,\n height: yDistance,\n key: i,\n onClick: function onClick(e) {\n return _this2._valueClickHandler(d, e);\n },\n onContextMenu: function onContextMenu(e) {\n return _this2._valueRightClickHandler(d, e);\n },\n onMouseOver: function onMouseOver(e) {\n return _this2._valueMouseOverHandler(d, e);\n },\n onMouseOut: function onMouseOut(e) {\n return _this2._valueMouseOutHandler(d, e);\n }\n });\n return React.createElement('rect', attrs);\n }));\n }\n }], [{\n key: 'getParentConfig',\n value: function getParentConfig(attr) {\n var isDomainAdjustmentNeeded = attr === 'x' || attr === 'y';\n return {\n isDomainAdjustmentNeeded: isDomainAdjustmentNeeded\n };\n }\n }]);\n return HeatmapSeries;\n}(AbstractSeries);\nHeatmapSeries.displayName = 'HeatmapSeries';\nexport default HeatmapSeries;","var thirdPi = Math.PI / 3,\n angles = [0, thirdPi, 2 * thirdPi, 3 * thirdPi, 4 * thirdPi, 5 * thirdPi];\nfunction pointX(d) {\n return d[0];\n}\nfunction pointY(d) {\n return d[1];\n}\nexport default function () {\n var x0 = 0,\n y0 = 0,\n x1 = 1,\n y1 = 1,\n x = pointX,\n y = pointY,\n r,\n dx,\n dy;\n function hexbin(points) {\n var binsById = {},\n bins = [],\n i,\n n = points.length;\n for (i = 0; i < n; ++i) {\n if (isNaN(px = +x.call(null, point = points[i], i, points)) || isNaN(py = +y.call(null, point, i, points))) continue;\n var point,\n px,\n py,\n pj = Math.round(py = py / dy),\n pi = Math.round(px = px / dx - (pj & 1) / 2),\n py1 = py - pj;\n if (Math.abs(py1) * 3 > 1) {\n var px1 = px - pi,\n pi2 = pi + (px < pi ? -1 : 1) / 2,\n pj2 = pj + (py < pj ? -1 : 1),\n px2 = px - pi2,\n py2 = py - pj2;\n if (px1 * px1 + py1 * py1 > px2 * px2 + py2 * py2) pi = pi2 + (pj & 1 ? 1 : -1) / 2, pj = pj2;\n }\n var id = pi + \"-\" + pj,\n bin = binsById[id];\n if (bin) bin.push(point);else {\n bins.push(bin = binsById[id] = [point]);\n bin.x = (pi + (pj & 1) / 2) * dx;\n bin.y = pj * dy;\n }\n }\n return bins;\n }\n function hexagon(radius) {\n var x0 = 0,\n y0 = 0;\n return angles.map(function (angle) {\n var x1 = Math.sin(angle) * radius,\n y1 = -Math.cos(angle) * radius,\n dx = x1 - x0,\n dy = y1 - y0;\n x0 = x1, y0 = y1;\n return [dx, dy];\n });\n }\n hexbin.hexagon = function (radius) {\n return \"m\" + hexagon(radius == null ? r : +radius).join(\"l\") + \"z\";\n };\n hexbin.centers = function () {\n var centers = [],\n j = Math.round(y0 / dy),\n i = Math.round(x0 / dx);\n for (var y = j * dy; y < y1 + r; y += dy, ++j) {\n for (var x = i * dx + (j & 1) * dx / 2; x < x1 + dx / 2; x += dx) {\n centers.push([x, y]);\n }\n }\n return centers;\n };\n hexbin.mesh = function () {\n var fragment = hexagon(r).slice(0, 4).join(\"l\");\n return hexbin.centers().map(function (p) {\n return \"M\" + p + \"m\" + fragment;\n }).join(\"\");\n };\n hexbin.x = function (_) {\n return arguments.length ? (x = _, hexbin) : x;\n };\n hexbin.y = function (_) {\n return arguments.length ? (y = _, hexbin) : y;\n };\n hexbin.radius = function (_) {\n return arguments.length ? (r = +_, dx = r * 2 * Math.sin(thirdPi), dy = r * 1.5, hexbin) : r;\n };\n hexbin.size = function (_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], hexbin) : [x1 - x0, y1 - y0];\n };\n hexbin.extent = function (_) {\n return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], hexbin) : [[x0, y0], [x1, y1]];\n };\n return hexbin.radius(1);\n}","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport Animation from '../../animation';\nimport { hexbin } from 'd3-hexbin';\nimport { scaleLinear } from 'd3-scale';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { CONTINUOUS_COLOR_RANGE } from '../../theme';\nimport AbstractSeries from './abstract-series';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--hexbin';\nfunction getColorDomain(_ref, hexes) {\n var countDomain = _ref.countDomain;\n if (countDomain) {\n return countDomain;\n }\n return [0, Math.max.apply(Math, _toConsumableArray(hexes.map(function (row) {\n return row.length;\n })))];\n}\nvar HexbinSeries = function (_AbstractSeries) {\n _inherits(HexbinSeries, _AbstractSeries);\n function HexbinSeries() {\n _classCallCheck(this, HexbinSeries);\n return _possibleConstructorReturn(this, (HexbinSeries.__proto__ || Object.getPrototypeOf(HexbinSeries)).apply(this, arguments));\n }\n _createClass(HexbinSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n colorRange = _props.colorRange,\n data = _props.data,\n innerHeight = _props.innerHeight,\n innerWidth = _props.innerWidth,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n radius = _props.radius,\n sizeHexagonsWithCount = _props.sizeHexagonsWithCount,\n style = _props.style,\n xOffset = _props.xOffset,\n yOffset = _props.yOffset;\n if (!data) {\n return null;\n }\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(HexbinSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n var x = this._getAttributeFunctor('x');\n var y = this._getAttributeFunctor('y');\n var hex = hexbin().x(function (d) {\n return x(d) + xOffset;\n }).y(function (d) {\n return y(d) + yOffset;\n }).radius(radius).size([innerWidth, innerHeight]);\n var hexagonPath = hex.hexagon();\n var hexes = hex(data);\n var countDomain = getColorDomain(this.props, hexes);\n var color = scaleLinear().domain(countDomain).range(colorRange);\n var size = scaleLinear().domain(countDomain).range([0, radius]);\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n }, hexes.map(function (d, i) {\n var attrs = {\n style: style,\n d: sizeHexagonsWithCount ? hex.hexagon(size(d.length)) : hexagonPath,\n fill: color(d.length),\n transform: 'translate(' + d.x + ', ' + d.y + ')',\n key: i,\n onClick: function onClick(e) {\n return _this2._valueClickHandler(d, e);\n },\n onContextMenu: function onContextMenu(e) {\n return _this2._valueRightClickHandler(d, e);\n },\n onMouseOver: function onMouseOver(e) {\n return _this2._valueMouseOverHandler(d, e);\n },\n onMouseOut: function onMouseOut(e) {\n return _this2._valueMouseOutHandler(d, e);\n }\n };\n return React.createElement('path', attrs);\n }));\n }\n }]);\n return HexbinSeries;\n}(AbstractSeries);\nHexbinSeries.defaultProps = {\n radius: 20,\n colorRange: CONTINUOUS_COLOR_RANGE,\n xOffset: 0,\n yOffset: 0\n};\nHexbinSeries.displayName = 'HexbinSeries';\nexport default HexbinSeries;","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nimport React from 'react';\nimport AbstractSeries from './series/abstract-series';\nimport { getAttributeScale } from '../utils/scales-utils';\nfunction getLocs(evt) {\n var xLoc = evt.type === 'touchstart' ? evt.pageX : evt.offsetX;\n var yLoc = evt.type === 'touchstart' ? evt.pageY : evt.offsetY;\n return {\n xLoc: xLoc,\n yLoc: yLoc\n };\n}\nvar Highlight = function (_AbstractSeries) {\n _inherits(Highlight, _AbstractSeries);\n function Highlight() {\n var _ref;\n var _temp, _this, _ret;\n _classCallCheck(this, Highlight);\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Highlight.__proto__ || Object.getPrototypeOf(Highlight)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n dragging: false,\n brushArea: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n brushing: false,\n startLocX: 0,\n startLocY: 0,\n dragArea: null\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n _createClass(Highlight, [{\n key: '_getDrawArea',\n value: function _getDrawArea(xLoc, yLoc) {\n var _state = this.state,\n startLocX = _state.startLocX,\n startLocY = _state.startLocY;\n var _props = this.props,\n enableX = _props.enableX,\n enableY = _props.enableY,\n highlightWidth = _props.highlightWidth,\n highlightHeight = _props.highlightHeight,\n innerWidth = _props.innerWidth,\n innerHeight = _props.innerHeight,\n marginLeft = _props.marginLeft,\n marginRight = _props.marginRight,\n marginBottom = _props.marginBottom,\n marginTop = _props.marginTop;\n var plotHeight = innerHeight + marginTop + marginBottom;\n var plotWidth = innerWidth + marginLeft + marginRight;\n var touchWidth = highlightWidth || plotWidth;\n var touchHeight = highlightHeight || plotHeight;\n return {\n bottom: enableY ? Math.max(startLocY, yLoc) : touchHeight,\n right: enableX ? Math.max(startLocX, xLoc) : touchWidth,\n left: enableX ? Math.min(xLoc, startLocX) : 0,\n top: enableY ? Math.min(yLoc, startLocY) : 0\n };\n }\n }, {\n key: '_getDragArea',\n value: function _getDragArea(xLoc, yLoc) {\n var _props2 = this.props,\n enableX = _props2.enableX,\n enableY = _props2.enableY;\n var _state2 = this.state,\n startLocX = _state2.startLocX,\n startLocY = _state2.startLocY,\n dragArea = _state2.dragArea;\n return {\n bottom: dragArea.bottom + (enableY ? yLoc - startLocY : 0),\n left: dragArea.left + (enableX ? xLoc - startLocX : 0),\n right: dragArea.right + (enableX ? xLoc - startLocX : 0),\n top: dragArea.top + (enableY ? yLoc - startLocY : 0)\n };\n }\n }, {\n key: '_clickedOutsideDrag',\n value: function _clickedOutsideDrag(xLoc, yLoc) {\n var _props3 = this.props,\n enableX = _props3.enableX,\n enableY = _props3.enableY;\n var _state3 = this.state,\n dragArea = _state3.dragArea,\n _state3$brushArea = _state3.brushArea,\n left = _state3$brushArea.left,\n right = _state3$brushArea.right,\n top = _state3$brushArea.top,\n bottom = _state3$brushArea.bottom;\n var clickedOutsideDragX = dragArea && (xLoc < left || xLoc > right);\n var clickedOutsideDragY = dragArea && (yLoc < top || yLoc > bottom);\n if (enableX && enableY) {\n return clickedOutsideDragX || clickedOutsideDragY;\n }\n if (enableX) {\n return clickedOutsideDragX;\n }\n if (enableY) {\n return clickedOutsideDragY;\n }\n return true;\n }\n }, {\n key: '_convertAreaToCoordinates',\n value: function _convertAreaToCoordinates(brushArea) {\n // NOTE only continuous scales are supported for brushing/getting coordinates back\n var _props4 = this.props,\n enableX = _props4.enableX,\n enableY = _props4.enableY,\n marginLeft = _props4.marginLeft,\n marginTop = _props4.marginTop;\n var xScale = getAttributeScale(this.props, 'x');\n var yScale = getAttributeScale(this.props, 'y');\n\n // Ensure that users wishes are being respected about which scales are evaluated\n // this is specifically enabled to ensure brushing on mixed categorical and linear\n // charts will run as expected\n\n if (enableX && enableY) {\n return {\n bottom: yScale.invert(brushArea.bottom),\n left: xScale.invert(brushArea.left - marginLeft),\n right: xScale.invert(brushArea.right - marginLeft),\n top: yScale.invert(brushArea.top)\n };\n }\n if (enableY) {\n return {\n bottom: yScale.invert(brushArea.bottom - marginTop),\n top: yScale.invert(brushArea.top - marginTop)\n };\n }\n if (enableX) {\n return {\n left: xScale.invert(brushArea.left - marginLeft),\n right: xScale.invert(brushArea.right - marginLeft)\n };\n }\n return {};\n }\n }, {\n key: 'startBrushing',\n value: function startBrushing(e) {\n var _this2 = this;\n var _props5 = this.props,\n onBrushStart = _props5.onBrushStart,\n onDragStart = _props5.onDragStart,\n drag = _props5.drag;\n var dragArea = this.state.dragArea;\n var _getLocs = getLocs(e.nativeEvent),\n xLoc = _getLocs.xLoc,\n yLoc = _getLocs.yLoc;\n var startArea = function startArea(dragging, resetDrag) {\n var emptyBrush = {\n bottom: yLoc,\n left: xLoc,\n right: xLoc,\n top: yLoc\n };\n _this2.setState({\n dragging: dragging,\n brushArea: dragArea && !resetDrag ? dragArea : emptyBrush,\n brushing: !dragging,\n startLocX: xLoc,\n startLocY: yLoc\n });\n };\n var clickedOutsideDrag = this._clickedOutsideDrag(xLoc, yLoc);\n if (drag && !dragArea || !drag || clickedOutsideDrag) {\n startArea(false, clickedOutsideDrag);\n if (onBrushStart) {\n onBrushStart(e);\n }\n return;\n }\n if (drag && dragArea) {\n startArea(true, clickedOutsideDrag);\n if (onDragStart) {\n onDragStart(e);\n }\n }\n }\n }, {\n key: 'stopBrushing',\n value: function stopBrushing(e) {\n var _state4 = this.state,\n brushing = _state4.brushing,\n dragging = _state4.dragging,\n brushArea = _state4.brushArea;\n // Quickly short-circuit if the user isn't brushing in our component\n\n if (!brushing && !dragging) {\n return;\n }\n var _props6 = this.props,\n onBrushEnd = _props6.onBrushEnd,\n onDragEnd = _props6.onDragEnd,\n drag = _props6.drag;\n var noHorizontal = Math.abs(brushArea.right - brushArea.left) < 5;\n var noVertical = Math.abs(brushArea.top - brushArea.bottom) < 5;\n // Invoke the callback with null if the selected area was < 5px\n var isNulled = noVertical || noHorizontal;\n // Clear the draw area\n this.setState({\n brushing: false,\n dragging: false,\n brushArea: drag ? brushArea : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n startLocX: 0,\n startLocY: 0,\n dragArea: drag && !isNulled && brushArea\n });\n if (brushing && onBrushEnd) {\n onBrushEnd(!isNulled ? this._convertAreaToCoordinates(brushArea) : null);\n }\n if (drag && onDragEnd) {\n onDragEnd(!isNulled ? this._convertAreaToCoordinates(brushArea) : null);\n }\n }\n }, {\n key: 'onBrush',\n value: function onBrush(e) {\n var _props7 = this.props,\n onBrush = _props7.onBrush,\n onDrag = _props7.onDrag,\n drag = _props7.drag;\n var _state5 = this.state,\n brushing = _state5.brushing,\n dragging = _state5.dragging;\n var _getLocs2 = getLocs(e.nativeEvent),\n xLoc = _getLocs2.xLoc,\n yLoc = _getLocs2.yLoc;\n if (brushing) {\n var brushArea = this._getDrawArea(xLoc, yLoc);\n this.setState({\n brushArea: brushArea\n });\n if (onBrush) {\n onBrush(this._convertAreaToCoordinates(brushArea));\n }\n }\n if (drag && dragging) {\n var _brushArea = this._getDragArea(xLoc, yLoc);\n this.setState({\n brushArea: _brushArea\n });\n if (onDrag) {\n onDrag(this._convertAreaToCoordinates(_brushArea));\n }\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n var _props8 = this.props,\n color = _props8.color,\n className = _props8.className,\n highlightHeight = _props8.highlightHeight,\n highlightWidth = _props8.highlightWidth,\n highlightX = _props8.highlightX,\n highlightY = _props8.highlightY,\n innerWidth = _props8.innerWidth,\n innerHeight = _props8.innerHeight,\n marginLeft = _props8.marginLeft,\n marginRight = _props8.marginRight,\n marginTop = _props8.marginTop,\n marginBottom = _props8.marginBottom,\n opacity = _props8.opacity;\n var _state$brushArea = this.state.brushArea,\n left = _state$brushArea.left,\n right = _state$brushArea.right,\n top = _state$brushArea.top,\n bottom = _state$brushArea.bottom;\n var leftPos = 0;\n if (highlightX) {\n var xScale = getAttributeScale(this.props, 'x');\n leftPos = xScale(highlightX);\n }\n var topPos = 0;\n if (highlightY) {\n var yScale = getAttributeScale(this.props, 'y');\n topPos = yScale(highlightY);\n }\n var plotWidth = marginLeft + marginRight + innerWidth;\n var plotHeight = marginTop + marginBottom + innerHeight;\n var touchWidth = highlightWidth || plotWidth;\n var touchHeight = highlightHeight || plotHeight;\n return React.createElement('g', {\n transform: 'translate(' + leftPos + ', ' + topPos + ')',\n className: className + ' rv-highlight-container'\n }, React.createElement('rect', {\n className: 'rv-mouse-target',\n fill: 'black',\n opacity: '0',\n x: '0',\n y: '0',\n width: Math.max(touchWidth, 0),\n height: Math.max(touchHeight, 0),\n onMouseDown: function onMouseDown(e) {\n return _this3.startBrushing(e);\n },\n onMouseMove: function onMouseMove(e) {\n return _this3.onBrush(e);\n },\n onMouseUp: function onMouseUp(e) {\n return _this3.stopBrushing(e);\n },\n onMouseLeave: function onMouseLeave(e) {\n return _this3.stopBrushing(e);\n }\n // preventDefault() so that mouse event emulation does not happen\n ,\n onTouchEnd: function onTouchEnd(e) {\n e.preventDefault();\n _this3.stopBrushing(e);\n },\n onTouchCancel: function onTouchCancel(e) {\n e.preventDefault();\n _this3.stopBrushing(e);\n },\n onContextMenu: function onContextMenu(e) {\n return e.preventDefault();\n },\n onContextMenuCapture: function onContextMenuCapture(e) {\n return e.preventDefault();\n }\n }), React.createElement('rect', {\n className: 'rv-highlight',\n pointerEvents: 'none',\n opacity: opacity,\n fill: color,\n x: left,\n y: top,\n width: Math.min(Math.max(0, right - left), touchWidth),\n height: Math.min(Math.max(0, bottom - top), touchHeight)\n }));\n }\n }]);\n return Highlight;\n}(AbstractSeries);\nHighlight.displayName = 'HighlightOverlay';\nHighlight.defaultProps = {\n color: 'rgb(77, 182, 172)',\n className: '',\n enableX: true,\n enableY: true,\n opacity: 0.3\n};\nexport default Highlight;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { transformValueToString } from '../utils/data-utils';\nimport { getAttributeFunctor } from '../utils/scales-utils';\n\n/*\n * Hint provides two options for placement of hint:\n * a) around a data point in one of four quadrants (imagine the point bisected\n * by two axes -vertical, horizontal- creating 4 quadrants around a data\n * point).\n * b) **New** pin to an edge of chart/plot area and position along that edge\n * using data point's other dimension value.\n *\n * To support these two options, deprecate one Hint props (orientation) with two\n * new Hint align prop object (horizontal, vertical) with following values:\n *\n * horizontal: auto, left, right, leftEdge, rightEdge\n * vertical: auto, bottom, top, bottomEdge, topEdge\n *\n * Thus, the following ALIGN constants are the values for horizontal\n * and vertical\n */\nvar ALIGN = {\n AUTO: 'auto',\n LEFT: 'left',\n RIGHT: 'right',\n LEFT_EDGE: 'leftEdge',\n RIGHT_EDGE: 'rightEdge',\n BOTTOM: 'bottom',\n TOP: 'top',\n BOTTOM_EDGE: 'bottomEdge',\n TOP_EDGE: 'topEdge'\n};\n\n/**\n * For backwards support, retain the ORIENTATION prop constants\n */\nvar ORIENTATION = {\n BOTTOM_LEFT: 'bottomleft',\n BOTTOM_RIGHT: 'bottomright',\n TOP_LEFT: 'topleft',\n TOP_RIGHT: 'topright'\n};\n\n/**\n * Default format function for the value.\n * @param {Object} value Value.\n * @returns {Array} title-value pairs.\n */\nfunction defaultFormat(value) {\n return Object.keys(value).map(function getProp(key) {\n return {\n title: key,\n value: transformValueToString(value[key])\n };\n });\n}\nvar Hint = function (_PureComponent) {\n _inherits(Hint, _PureComponent);\n function Hint() {\n _classCallCheck(this, Hint);\n return _possibleConstructorReturn(this, (Hint.__proto__ || Object.getPrototypeOf(Hint)).apply(this, arguments));\n }\n _createClass(Hint, [{\n key: '_getAlign',\n /**\n * Obtain align object with horizontal and vertical settings\n * but convert any AUTO values to the non-auto ALIGN depending on the\n * values of x and y.\n * @param {number} x X value.\n * @param {number} y Y value.\n * @returns {Object} Align object w/ horizontal, vertical prop strings.\n * @private\n */\n value: function _getAlign(x, y) {\n var _props = this.props,\n innerWidth = _props.innerWidth,\n innerHeight = _props.innerHeight,\n orientation = _props.orientation,\n _props$align = _props.align,\n horizontal = _props$align.horizontal,\n vertical = _props$align.vertical;\n var align = orientation ? this._mapOrientationToAlign(orientation) : {\n horizontal: horizontal,\n vertical: vertical\n };\n if (horizontal === ALIGN.AUTO) {\n align.horizontal = x > innerWidth / 2 ? ALIGN.LEFT : ALIGN.RIGHT;\n }\n if (vertical === ALIGN.AUTO) {\n align.vertical = y > innerHeight / 2 ? ALIGN.TOP : ALIGN.BOTTOM;\n }\n return align;\n }\n\n /**\n * Get the class names from align values.\n * @param {Object} align object with horizontal and vertical prop strings.\n * @returns {string} Class names.\n * @private\n */\n }, {\n key: '_getAlignClassNames',\n value: function _getAlignClassNames(align) {\n var orientation = this.props.orientation;\n var orientationClass = orientation ? 'rv-hint--orientation-' + orientation : '';\n return orientationClass + ' rv-hint--horizontalAlign-' + align.horizontal + '\\n rv-hint--verticalAlign-' + align.vertical;\n }\n\n /**\n * Get a CSS mixin for a proper positioning of the element.\n * @param {Object} align object with horizontal and vertical prop strings.\n * @param {number} x X position.\n * @param {number} y Y position.\n * @returns {Object} Object, that may contain `left` or `right, `top` or\n * `bottom` properties.\n * @private\n */\n }, {\n key: '_getAlignStyle',\n value: function _getAlignStyle(align, x, y) {\n return _extends({}, this._getXCSS(align.horizontal, x), this._getYCSS(align.vertical, y));\n }\n\n /**\n * Get the bottom coordinate of the hint.\n * When y undefined or null, edge case, pin bottom.\n * @param {number} y Y.\n * @returns {{bottom: *}} Mixin.\n * @private\n */\n }, {\n key: '_getCSSBottom',\n value: function _getCSSBottom(y) {\n if (y === undefined || y === null) {\n return {\n bottom: 0\n };\n }\n var _props2 = this.props,\n innerHeight = _props2.innerHeight,\n marginBottom = _props2.marginBottom;\n return {\n bottom: marginBottom + innerHeight - y\n };\n }\n\n /**\n * Get the left coordinate of the hint.\n * When x undefined or null, edge case, pin left.\n * @param {number} x X.\n * @returns {{left: *}} Mixin.\n * @private\n */\n }, {\n key: '_getCSSLeft',\n value: function _getCSSLeft(x) {\n if (x === undefined || x === null) {\n return {\n left: 0\n };\n }\n var marginLeft = this.props.marginLeft;\n return {\n left: marginLeft + x\n };\n }\n\n /**\n * Get the right coordinate of the hint.\n * When x undefined or null, edge case, pin right.\n * @param {number} x X.\n * @returns {{right: *}} Mixin.\n * @private\n */\n }, {\n key: '_getCSSRight',\n value: function _getCSSRight(x) {\n if (x === undefined || x === null) {\n return {\n right: 0\n };\n }\n var _props3 = this.props,\n innerWidth = _props3.innerWidth,\n marginRight = _props3.marginRight;\n return {\n right: marginRight + innerWidth - x\n };\n }\n\n /**\n * Get the top coordinate of the hint.\n * When y undefined or null, edge case, pin top.\n * @param {number} y Y.\n * @returns {{top: *}} Mixin.\n * @private\n */\n }, {\n key: '_getCSSTop',\n value: function _getCSSTop(y) {\n if (y === undefined || y === null) {\n return {\n top: 0\n };\n }\n var marginTop = this.props.marginTop;\n return {\n top: marginTop + y\n };\n }\n\n /**\n * Get the position for the hint and the appropriate class name.\n * @returns {{style: Object, positionClassName: string}} Style and className for the\n * hint.\n * @private\n */\n }, {\n key: '_getPositionInfo',\n value: function _getPositionInfo() {\n var _props4 = this.props,\n value = _props4.value,\n getAlignStyle = _props4.getAlignStyle;\n var x = getAttributeFunctor(this.props, 'x')(value);\n var y = getAttributeFunctor(this.props, 'y')(value);\n var align = this._getAlign(x, y);\n return {\n position: getAlignStyle ? getAlignStyle(align, x, y) : this._getAlignStyle(align, x, y),\n positionClassName: this._getAlignClassNames(align)\n };\n }\n }, {\n key: '_getXCSS',\n value: function _getXCSS(horizontal, x) {\n // obtain xCSS\n switch (horizontal) {\n case ALIGN.LEFT_EDGE:\n // this pins x to left edge\n return this._getCSSLeft(null);\n case ALIGN.RIGHT_EDGE:\n // this pins x to left edge\n return this._getCSSRight(null);\n case ALIGN.LEFT:\n // this places hint text to the left of center, so set its right edge\n return this._getCSSRight(x);\n case ALIGN.RIGHT:\n default:\n // this places hint text to the right of center, so set its left edge\n // default case should not be possible but if it happens set to RIGHT\n return this._getCSSLeft(x);\n }\n }\n }, {\n key: '_getYCSS',\n value: function _getYCSS(verticalAlign, y) {\n // obtain yCSS\n switch (verticalAlign) {\n case ALIGN.TOP_EDGE:\n // this pins x to top edge\n return this._getCSSTop(null);\n case ALIGN.BOTTOM_EDGE:\n // this pins x to bottom edge\n return this._getCSSBottom(null);\n case ALIGN.BOTTOM:\n // this places hint text to the bottom of center, so set its top edge\n return this._getCSSTop(y);\n case ALIGN.TOP:\n default:\n // this places hint text to the top of center, so set its bottom edge\n // default case should not be possible but if it happens set to BOTTOM\n return this._getCSSBottom(y);\n }\n }\n }, {\n key: '_mapOrientationToAlign',\n value: function _mapOrientationToAlign(orientation) {\n // TODO: print warning that this feature is deprecated and support will be\n // removed in next major release.\n switch (orientation) {\n case ORIENTATION.BOTTOM_LEFT:\n return {\n horizontal: ALIGN.LEFT,\n vertical: ALIGN.BOTTOM\n };\n case ORIENTATION.BOTTOM_RIGHT:\n return {\n horizontal: ALIGN.RIGHT,\n vertical: ALIGN.BOTTOM\n };\n case ORIENTATION.TOP_LEFT:\n return {\n horizontal: ALIGN.LEFT,\n vertical: ALIGN.TOP\n };\n case ORIENTATION.TOP_RIGHT:\n return {\n horizontal: ALIGN.RIGHT,\n vertical: ALIGN.TOP\n };\n default:\n // fall back to horizontalAlign, verticalAlign that are either\n // provided or defaulted to AUTO. So, don't change things\n break;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props5 = this.props,\n value = _props5.value,\n format = _props5.format,\n children = _props5.children,\n style = _props5.style,\n className = _props5.className;\n var _getPositionInfo2 = this._getPositionInfo(),\n position = _getPositionInfo2.position,\n positionClassName = _getPositionInfo2.positionClassName;\n return React.createElement('div', {\n className: 'rv-hint ' + positionClassName + ' ' + className,\n style: _extends({}, style, position, {\n position: 'absolute'\n })\n }, children ? children : React.createElement('div', {\n className: 'rv-hint__content',\n style: style.content\n }, format(value).map(function (formattedProp, i) {\n return React.createElement('div', {\n key: 'rv-hint' + i,\n style: style.row\n }, React.createElement('span', {\n className: 'rv-hint__title',\n style: style.title\n }, formattedProp.title), ': ', React.createElement('span', {\n className: 'rv-hint__value',\n style: style.value\n }, formattedProp.value));\n })));\n }\n }], [{\n key: 'defaultProps',\n get: function get() {\n return {\n format: defaultFormat,\n align: {\n horizontal: ALIGN.AUTO,\n vertical: ALIGN.AUTO\n },\n style: {}\n };\n }\n }, {\n key: 'propTypes',\n get: function get() {\n return {\n marginTop: PropTypes.number,\n marginLeft: PropTypes.number,\n innerWidth: PropTypes.number,\n innerHeight: PropTypes.number,\n scales: PropTypes.object,\n value: PropTypes.object,\n format: PropTypes.func,\n style: PropTypes.object,\n className: PropTypes.string,\n align: PropTypes.shape({\n horizontal: PropTypes.oneOf([ALIGN.AUTO, ALIGN.LEFT, ALIGN.RIGHT, ALIGN.LEFT_EDGE, ALIGN.RIGHT_EDGE]),\n vertical: PropTypes.oneOf([ALIGN.AUTO, ALIGN.BOTTOM, ALIGN.TOP, ALIGN.BOTTOM_EDGE, ALIGN.TOP_EDGE])\n }),\n getAlignStyle: PropTypes.func,\n orientation: PropTypes.oneOf([ORIENTATION.BOTTOM_LEFT, ORIENTATION.BOTTOM_RIGHT, ORIENTATION.TOP_LEFT, ORIENTATION.TOP_RIGHT])\n };\n }\n }]);\n return Hint;\n}(PureComponent);\nHint.displayName = 'Hint';\nHint.ORIENTATION = ORIENTATION;\nHint.ALIGN = ALIGN;\nexport default Hint;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS, getStackParams } from '../../utils/series-utils';\nimport AbstractSeries from './abstract-series';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--bar';\nvar BarSeries = function (_AbstractSeries) {\n _inherits(BarSeries, _AbstractSeries);\n function BarSeries() {\n _classCallCheck(this, BarSeries);\n return _possibleConstructorReturn(this, (BarSeries.__proto__ || Object.getPrototypeOf(BarSeries)).apply(this, arguments));\n }\n _createClass(BarSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n data = _props.data,\n linePosAttr = _props.linePosAttr,\n lineSizeAttr = _props.lineSizeAttr,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n style = _props.style,\n valuePosAttr = _props.valuePosAttr,\n valueSizeAttr = _props.valueSizeAttr,\n barWidth = _props.barWidth;\n if (!data) {\n return null;\n }\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(BarSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n var _getStackParams = getStackParams(this.props),\n sameTypeTotal = _getStackParams.sameTypeTotal,\n sameTypeIndex = _getStackParams.sameTypeIndex;\n var distance = this._getScaleDistance(linePosAttr);\n var lineFunctor = this._getAttributeFunctor(linePosAttr);\n var valueFunctor = this._getAttributeFunctor(valuePosAttr);\n var value0Functor = this._getAttr0Functor(valuePosAttr);\n var fillFunctor = this._getAttributeFunctor('fill') || this._getAttributeFunctor('color');\n var strokeFunctor = this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color');\n var opacityFunctor = this._getAttributeFunctor('opacity');\n var halfSpace = distance / 2 * barWidth;\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n }, data.map(function (d, i) {\n var _attrs;\n\n // totalSpaceAvailable is the space we have available to draw all the\n // bars of a same 'linePosAttr' value (a.k.a. sameTypeTotal)\n var totalSpaceAvailable = halfSpace * 2;\n var totalSpaceCenter = lineFunctor(d);\n // totalSpaceStartingPoint is the first pixel were we can start drawing\n var totalSpaceStartingPoint = totalSpaceCenter - halfSpace;\n // spaceTakenByInterBarsPixels has the overhead space consumed by each bar of sameTypeTotal\n var spaceTakenByInterBarsPixels = (sameTypeTotal - 1) / sameTypeTotal;\n // spacePerBar is the space we have available to draw sameTypeIndex bar\n var spacePerBar = totalSpaceAvailable / sameTypeTotal - spaceTakenByInterBarsPixels;\n // barStartingPoint is the first pixel were we can start drawing sameTypeIndex bar\n var barStartingPoint = totalSpaceStartingPoint + spacePerBar * sameTypeIndex + sameTypeIndex;\n var attrs = (_attrs = {\n style: _extends({\n opacity: opacityFunctor && opacityFunctor(d),\n stroke: strokeFunctor && strokeFunctor(d),\n fill: fillFunctor && fillFunctor(d)\n }, style)\n }, _defineProperty(_attrs, linePosAttr, barStartingPoint), _defineProperty(_attrs, lineSizeAttr, spacePerBar), _defineProperty(_attrs, valuePosAttr, Math.min(value0Functor(d), valueFunctor(d))), _defineProperty(_attrs, valueSizeAttr, Math.abs(-value0Functor(d) + valueFunctor(d))), _defineProperty(_attrs, 'onClick', function onClick(e) {\n return _this2._valueClickHandler(d, e);\n }), _defineProperty(_attrs, 'onContextMenu', function onContextMenu(e) {\n return _this2._valueRightClickHandler(d, e);\n }), _defineProperty(_attrs, 'onMouseOver', function onMouseOver(e) {\n return _this2._valueMouseOverHandler(d, e);\n }), _defineProperty(_attrs, 'onMouseOut', function onMouseOut(e) {\n return _this2._valueMouseOutHandler(d, e);\n }), _defineProperty(_attrs, 'key', i), _attrs);\n return React.createElement('rect', attrs);\n }));\n }\n }], [{\n key: 'propTypes',\n get: function get() {\n return _extends({}, AbstractSeries.propTypes, {\n linePosAttr: PropTypes.string,\n valuePosAttr: PropTypes.string,\n lineSizeAttr: PropTypes.string,\n valueSizeAttr: PropTypes.string,\n cluster: PropTypes.string,\n barWidth: PropTypes.number\n });\n }\n }, {\n key: 'defaultProps',\n get: function get() {\n return {\n barWidth: 0.85\n };\n }\n }]);\n return BarSeries;\n}(AbstractSeries);\nBarSeries.displayName = 'BarSeries';\nexport default BarSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport AbstractSeries from './abstract-series';\nimport BarSeries from './bar-series';\nvar HorizontalBarSeries = function (_AbstractSeries) {\n _inherits(HorizontalBarSeries, _AbstractSeries);\n function HorizontalBarSeries() {\n _classCallCheck(this, HorizontalBarSeries);\n return _possibleConstructorReturn(this, (HorizontalBarSeries.__proto__ || Object.getPrototypeOf(HorizontalBarSeries)).apply(this, arguments));\n }\n _createClass(HorizontalBarSeries, [{\n key: 'render',\n value: function render() {\n return React.createElement(BarSeries, _extends({}, this.props, {\n linePosAttr: 'y',\n valuePosAttr: 'x',\n lineSizeAttr: 'height',\n valueSizeAttr: 'width'\n }));\n }\n }], [{\n key: 'getParentConfig',\n value: function getParentConfig(attr) {\n var isDomainAdjustmentNeeded = attr === 'y';\n var zeroBaseValue = attr === 'x';\n return {\n isDomainAdjustmentNeeded: isDomainAdjustmentNeeded,\n zeroBaseValue: zeroBaseValue\n };\n }\n }]);\n return HorizontalBarSeries;\n}(AbstractSeries);\nHorizontalBarSeries.displayName = 'HorizontalBarSeries';\nexport default HorizontalBarSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\nimport PropTypes from 'prop-types';\nimport { rgb } from 'd3-color';\nimport { DEFAULT_OPACITY } from '../../theme';\nimport { getAttributeFunctor, getScaleObjectFromProps, getAttr0Functor } from '../../utils/scales-utils';\nimport { getStackParams } from '../../utils/series-utils';\nimport AbstractSeries from './abstract-series';\nfunction getScaleDistance(props, attr) {\n var scaleObject = getScaleObjectFromProps(props, attr);\n return scaleObject ? scaleObject.distance : 0;\n}\nvar BarSeriesCanvas = function (_AbstractSeries) {\n _inherits(BarSeriesCanvas, _AbstractSeries);\n function BarSeriesCanvas() {\n _classCallCheck(this, BarSeriesCanvas);\n return _possibleConstructorReturn(this, (BarSeriesCanvas.__proto__ || Object.getPrototypeOf(BarSeriesCanvas)).apply(this, arguments));\n }\n _createClass(BarSeriesCanvas, [{\n key: 'render',\n value: function render() {\n return null;\n }\n }], [{\n key: 'renderLayer',\n value: function renderLayer(props, ctx) {\n var data = props.data,\n linePosAttr = props.linePosAttr,\n lineSizeAttr = props.lineSizeAttr,\n valuePosAttr = props.valuePosAttr,\n marginTop = props.marginTop,\n marginBottom = props.marginBottom;\n if (!data || data.length === 0) {\n return;\n }\n var distance = getScaleDistance(props, linePosAttr);\n var line = getAttributeFunctor(props, linePosAttr);\n var value = getAttributeFunctor(props, valuePosAttr);\n var value0 = getAttr0Functor(props, valuePosAttr);\n var fill = getAttributeFunctor(props, 'fill') || getAttributeFunctor(props, 'color');\n var stroke = getAttributeFunctor(props, 'stroke') || getAttributeFunctor(props, 'color');\n var opacity = getAttributeFunctor(props, 'opacity');\n var halfSpace = distance / 2 * 0.85;\n // totalSpaceAvailable is the space we have available to draw all the\n // bars of a same 'linePosAttr' value (a.k.a. sameTypeTotal)\n var totalSpaceAvailable = halfSpace * 2;\n var _getStackParams = getStackParams(props),\n sameTypeTotal = _getStackParams.sameTypeTotal,\n sameTypeIndex = _getStackParams.sameTypeIndex;\n data.forEach(function (row) {\n var totalSpaceCenter = line(row);\n // totalSpaceStartingPoint is the first pixel were we can start drawing\n var totalSpaceStartingPoint = totalSpaceCenter - halfSpace;\n\n // spaceTakenByInterBarsPixels has the overhead space consumed by each bar of sameTypeTotal\n var spaceTakenByInterBarsPixels = (sameTypeTotal - 1) / sameTypeTotal;\n // lineSize is the space we have available to draw sameTypeIndex bar\n var lineSize = totalSpaceAvailable / sameTypeTotal - spaceTakenByInterBarsPixels;\n var fillColor = rgb(fill(row));\n var strokeColor = rgb(stroke(row));\n var rowOpacity = opacity(row) || DEFAULT_OPACITY;\n\n // linePos is the first pixel were we can start drawing sameTypeIndex bar\n var linePos = totalSpaceStartingPoint + lineSize * sameTypeIndex + sameTypeIndex;\n var valuePos = Math.min(value0(row), value(row));\n var x = valuePosAttr === 'x' ? valuePos : linePos;\n var y = valuePosAttr === 'y' ? valuePos : linePos;\n var valueSize = Math.abs(-value0(row) + value(row));\n var height = lineSizeAttr === 'height' ? lineSize : valueSize;\n var width = lineSizeAttr === 'width' ? lineSize : valueSize;\n ctx.beginPath();\n ctx.rect(x + marginBottom, y + marginTop, width, height);\n ctx.fillStyle = 'rgba(' + fillColor.r + ', ' + fillColor.g + ', ' + fillColor.b + ', ' + rowOpacity + ')';\n ctx.fill();\n ctx.strokeStyle = 'rgba(' + strokeColor.r + ', ' + strokeColor.g + ', ' + strokeColor.b + ', ' + rowOpacity + ')';\n ctx.stroke();\n });\n }\n }, {\n key: 'requiresSVG',\n get: function get() {\n return false;\n }\n }, {\n key: 'isCanvas',\n get: function get() {\n return true;\n }\n }]);\n return BarSeriesCanvas;\n}(AbstractSeries);\nBarSeriesCanvas.displayName = 'BarSeriesCanvas';\nBarSeriesCanvas.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n linePosAttr: PropTypes.string.isRequired,\n valuePosAttr: PropTypes.string.isRequired,\n lineSizeAttr: PropTypes.string.isRequired,\n valueSizeAttr: PropTypes.string.isRequired\n});\nBarSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default BarSeriesCanvas;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport AbstractSeries from './abstract-series';\nimport BarSeries from './bar-series-canvas';\nvar HorizontalBarSeriesCanvas = function (_AbstractSeries) {\n _inherits(HorizontalBarSeriesCanvas, _AbstractSeries);\n function HorizontalBarSeriesCanvas() {\n _classCallCheck(this, HorizontalBarSeriesCanvas);\n return _possibleConstructorReturn(this, (HorizontalBarSeriesCanvas.__proto__ || Object.getPrototypeOf(HorizontalBarSeriesCanvas)).apply(this, arguments));\n }\n _createClass(HorizontalBarSeriesCanvas, [{\n key: 'render',\n value: function render() {\n return null;\n }\n }], [{\n key: 'getParentConfig',\n value: function getParentConfig(attr) {\n var isDomainAdjustmentNeeded = attr === 'y';\n var zeroBaseValue = attr === 'x';\n return {\n isDomainAdjustmentNeeded: isDomainAdjustmentNeeded,\n zeroBaseValue: zeroBaseValue\n };\n }\n }, {\n key: 'renderLayer',\n value: function renderLayer(props, ctx) {\n BarSeries.renderLayer(_extends({}, props, {\n linePosAttr: 'y',\n valuePosAttr: 'x',\n lineSizeAttr: 'height',\n valueSizeAttr: 'width'\n }), ctx);\n }\n }, {\n key: 'requiresSVG',\n get: function get() {\n return false;\n }\n }, {\n key: 'isCanvas',\n get: function get() {\n return true;\n }\n }]);\n return HorizontalBarSeriesCanvas;\n}(AbstractSeries);\nHorizontalBarSeriesCanvas.displayName = 'HorizontalBarSeriesCanvas';\nHorizontalBarSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default HorizontalBarSeriesCanvas;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport { DIRECTION } from '../utils/axis-utils';\nimport GridLines from './grid-lines';\nvar HORIZONTAL = DIRECTION.HORIZONTAL;\nvar defaultProps = {\n direction: HORIZONTAL,\n attr: 'y'\n};\nfunction HorizontalGridLines(props) {\n return React.createElement(GridLines, props);\n}\nHorizontalGridLines.displayName = 'HorizontalGridLines';\nHorizontalGridLines.defaultProps = defaultProps;\nHorizontalGridLines.requiresSVG = true;\nexport default HorizontalGridLines;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport AbstractSeries from './abstract-series';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--rect';\nvar RectSeries = function (_AbstractSeries) {\n _inherits(RectSeries, _AbstractSeries);\n function RectSeries() {\n _classCallCheck(this, RectSeries);\n return _possibleConstructorReturn(this, (RectSeries.__proto__ || Object.getPrototypeOf(RectSeries)).apply(this, arguments));\n }\n _createClass(RectSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n data = _props.data,\n linePosAttr = _props.linePosAttr,\n lineSizeAttr = _props.lineSizeAttr,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n style = _props.style,\n valuePosAttr = _props.valuePosAttr,\n valueSizeAttr = _props.valueSizeAttr;\n if (!data) {\n return null;\n }\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(RectSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n var lineFunctor = this._getAttributeFunctor(linePosAttr);\n var line0Functor = this._getAttr0Functor(linePosAttr);\n var valueFunctor = this._getAttributeFunctor(valuePosAttr);\n var value0Functor = this._getAttr0Functor(valuePosAttr);\n var fillFunctor = this._getAttributeFunctor('fill') || this._getAttributeFunctor('color');\n var strokeFunctor = this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color');\n var opacityFunctor = this._getAttributeFunctor('opacity');\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n }, data.map(function (d, i) {\n var _attrs;\n var attrs = (_attrs = {\n style: _extends({\n opacity: opacityFunctor && opacityFunctor(d),\n stroke: strokeFunctor && strokeFunctor(d),\n fill: fillFunctor && fillFunctor(d)\n }, style)\n }, _defineProperty(_attrs, linePosAttr, line0Functor(d)), _defineProperty(_attrs, lineSizeAttr, Math.abs(lineFunctor(d) - line0Functor(d))), _defineProperty(_attrs, valuePosAttr, Math.min(value0Functor(d), valueFunctor(d))), _defineProperty(_attrs, valueSizeAttr, Math.abs(-value0Functor(d) + valueFunctor(d))), _defineProperty(_attrs, 'onClick', function onClick(e) {\n return _this2._valueClickHandler(d, e);\n }), _defineProperty(_attrs, 'onContextMenu', function onContextMenu(e) {\n return _this2._valueRightClickHandler(d, e);\n }), _defineProperty(_attrs, 'onMouseOver', function onMouseOver(e) {\n return _this2._valueMouseOverHandler(d, e);\n }), _defineProperty(_attrs, 'onMouseOut', function onMouseOut(e) {\n return _this2._valueMouseOutHandler(d, e);\n }), _defineProperty(_attrs, 'key', i), _attrs);\n return React.createElement('rect', attrs);\n }));\n }\n }], [{\n key: 'propTypes',\n get: function get() {\n return _extends({}, AbstractSeries.propTypes, {\n linePosAttr: PropTypes.string,\n valuePosAttr: PropTypes.string,\n lineSizeAttr: PropTypes.string,\n valueSizeAttr: PropTypes.string\n });\n }\n }]);\n return RectSeries;\n}(AbstractSeries);\nRectSeries.displayName = 'RectSeries';\nexport default RectSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport AbstractSeries from './abstract-series';\nimport RectSeries from './rect-series';\nvar HorizontalRectSeries = function (_AbstractSeries) {\n _inherits(HorizontalRectSeries, _AbstractSeries);\n function HorizontalRectSeries() {\n _classCallCheck(this, HorizontalRectSeries);\n return _possibleConstructorReturn(this, (HorizontalRectSeries.__proto__ || Object.getPrototypeOf(HorizontalRectSeries)).apply(this, arguments));\n }\n _createClass(HorizontalRectSeries, [{\n key: 'render',\n value: function render() {\n return React.createElement(RectSeries, _extends({}, this.props, {\n linePosAttr: 'y',\n valuePosAttr: 'x',\n lineSizeAttr: 'height',\n valueSizeAttr: 'width'\n }));\n }\n }], [{\n key: 'getParentConfig',\n value: function getParentConfig(attr) {\n var isDomainAdjustmentNeeded = false;\n var zeroBaseValue = attr === 'x';\n return {\n isDomainAdjustmentNeeded: isDomainAdjustmentNeeded,\n zeroBaseValue: zeroBaseValue\n };\n }\n }]);\n return HorizontalRectSeries;\n}(AbstractSeries);\nHorizontalRectSeries.displayName = 'HorizontalRectSeries';\nexport default HorizontalRectSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\nimport PropTypes from 'prop-types';\nimport { rgb } from 'd3-color';\nimport { DEFAULT_OPACITY } from '../../theme';\nimport { getAttributeFunctor, getAttr0Functor } from '../../utils/scales-utils';\nimport AbstractSeries from './abstract-series';\nvar RectSeriesCanvas = function (_AbstractSeries) {\n _inherits(RectSeriesCanvas, _AbstractSeries);\n function RectSeriesCanvas() {\n _classCallCheck(this, RectSeriesCanvas);\n return _possibleConstructorReturn(this, (RectSeriesCanvas.__proto__ || Object.getPrototypeOf(RectSeriesCanvas)).apply(this, arguments));\n }\n _createClass(RectSeriesCanvas, [{\n key: 'render',\n value: function render() {\n return null;\n }\n }], [{\n key: 'renderLayer',\n value: function renderLayer(props, ctx) {\n var data = props.data,\n linePosAttr = props.linePosAttr,\n lineSizeAttr = props.lineSizeAttr,\n marginLeft = props.marginLeft,\n marginTop = props.marginTop,\n valuePosAttr = props.valuePosAttr;\n if (!data || data.length === 0) {\n return;\n }\n var line = getAttributeFunctor(props, linePosAttr);\n var line0 = getAttr0Functor(props, linePosAttr);\n var value = getAttributeFunctor(props, valuePosAttr);\n var value0 = getAttr0Functor(props, valuePosAttr);\n var fill = getAttributeFunctor(props, 'fill') || getAttributeFunctor(props, 'color');\n var stroke = getAttributeFunctor(props, 'stroke') || getAttributeFunctor(props, 'color');\n var opacity = getAttributeFunctor(props, 'opacity');\n data.forEach(function (row) {\n var fillColor = rgb(fill(row));\n var strokeColor = rgb(stroke(row));\n var rowOpacity = opacity(row) || DEFAULT_OPACITY;\n var linePos = line0(row);\n var valuePos = Math.min(value0(row), value(row));\n var x = valuePosAttr === 'x' ? valuePos : linePos;\n var y = valuePosAttr === 'y' ? valuePos : linePos;\n var lineSize = Math.abs(line(row) - line0(row));\n var valueSize = Math.abs(-value0(row) + value(row));\n var height = lineSizeAttr === 'height' ? lineSize : valueSize;\n var width = lineSizeAttr === 'width' ? lineSize : valueSize;\n ctx.beginPath();\n ctx.rect(x + marginLeft, y + marginTop, width, height);\n ctx.fillStyle = 'rgba(' + fillColor.r + ', ' + fillColor.g + ', ' + fillColor.b + ', ' + rowOpacity + ')';\n ctx.fill();\n ctx.strokeStyle = 'rgba(' + strokeColor.r + ', ' + strokeColor.g + ', ' + strokeColor.b + ', ' + rowOpacity + ')';\n ctx.stroke();\n });\n }\n }, {\n key: 'requiresSVG',\n get: function get() {\n return false;\n }\n }, {\n key: 'isCanvas',\n get: function get() {\n return true;\n }\n }]);\n return RectSeriesCanvas;\n}(AbstractSeries);\nRectSeriesCanvas.displayName = 'RectSeriesCanvas';\nRectSeriesCanvas.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n linePosAttr: PropTypes.string.isRequired,\n valuePosAttr: PropTypes.string.isRequired,\n lineSizeAttr: PropTypes.string.isRequired,\n valueSizeAttr: PropTypes.string.isRequired\n});\nRectSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default RectSeriesCanvas;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport AbstractSeries from './abstract-series';\nimport RectSeries from './rect-series-canvas';\nvar HorizontalRectSeriesCanvas = function (_AbstractSeries) {\n _inherits(HorizontalRectSeriesCanvas, _AbstractSeries);\n function HorizontalRectSeriesCanvas() {\n _classCallCheck(this, HorizontalRectSeriesCanvas);\n return _possibleConstructorReturn(this, (HorizontalRectSeriesCanvas.__proto__ || Object.getPrototypeOf(HorizontalRectSeriesCanvas)).apply(this, arguments));\n }\n _createClass(HorizontalRectSeriesCanvas, [{\n key: 'render',\n value: function render() {\n return null;\n }\n }], [{\n key: 'getParentConfig',\n value: function getParentConfig(attr) {\n var isDomainAdjustmentNeeded = false;\n var zeroBaseValue = attr === 'x';\n return {\n isDomainAdjustmentNeeded: isDomainAdjustmentNeeded,\n zeroBaseValue: zeroBaseValue\n };\n }\n }, {\n key: 'renderLayer',\n value: function renderLayer(props, ctx) {\n RectSeries.renderLayer(_extends({}, props, {\n linePosAttr: 'y',\n valuePosAttr: 'x',\n lineSizeAttr: 'height',\n valueSizeAttr: 'width'\n }), ctx);\n }\n }, {\n key: 'requiresSVG',\n get: function get() {\n return false;\n }\n }, {\n key: 'isCanvas',\n get: function get() {\n return true;\n }\n }]);\n return HorizontalRectSeriesCanvas;\n}(AbstractSeries);\nHorizontalRectSeriesCanvas.displayName = 'HorizontalRectSeriesCanvas';\nHorizontalRectSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default HorizontalRectSeriesCanvas;","import \"core-js/modules/es.array.reduce.js\";\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport AbstractSeries from './abstract-series';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--label';\nvar getTextAnchor = function getTextAnchor(labelAnchorX, leftOfMiddle) {\n return labelAnchorX ? labelAnchorX : leftOfMiddle ? 'start' : 'end';\n};\nvar getDominantBaseline = function getDominantBaseline(labelAnchorY, aboveMiddle) {\n return labelAnchorY ? labelAnchorY : aboveMiddle ? 'text-before-edge' : 'text-after-edge';\n};\nvar LabelSeries = function (_AbstractSeries) {\n _inherits(LabelSeries, _AbstractSeries);\n function LabelSeries() {\n _classCallCheck(this, LabelSeries);\n return _possibleConstructorReturn(this, (LabelSeries.__proto__ || Object.getPrototypeOf(LabelSeries)).apply(this, arguments));\n }\n _createClass(LabelSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n var _props = this.props,\n animation = _props.animation,\n allowOffsetToBeReversed = _props.allowOffsetToBeReversed,\n className = _props.className,\n data = _props.data,\n _data = _props._data,\n getLabel = _props.getLabel,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n rotation = _props.rotation,\n style = _props.style,\n xRange = _props.xRange,\n yRange = _props.yRange,\n labelAnchorX = _props.labelAnchorX,\n labelAnchorY = _props.labelAnchorY;\n if (!data) {\n return null;\n }\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(LabelSeries, _extends({}, this.props, {\n animation: null,\n _data: data\n })));\n }\n var xFunctor = this._getAttributeFunctor('x');\n var yFunctor = this._getAttributeFunctor('y');\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')',\n style: style\n }, data.reduce(function (res, d, i) {\n var markStyle = d.style,\n xOffset = d.xOffset,\n yOffset = d.yOffset;\n if (!getLabel(d)) {\n return res;\n }\n var xVal = xFunctor(d);\n var yVal = yFunctor(d);\n var leftOfMiddle = xVal < (xRange[1] - xRange[0]) / 2;\n var aboveMiddle = yVal < Math.abs(yRange[1] - yRange[0]) / 2;\n var x = xVal + (allowOffsetToBeReversed && leftOfMiddle ? -1 : 1) * (xOffset || 0);\n var y = yVal + (allowOffsetToBeReversed && aboveMiddle ? -1 : 1) * (yOffset || 0);\n var hasRotationValueSet = d.rotation === 0 || d.rotation;\n var labelRotation = hasRotationValueSet ? d.rotation : rotation;\n var attrs = _extends({\n dominantBaseline: getDominantBaseline(labelAnchorY, aboveMiddle),\n className: 'rv-xy-plot__series--label-text',\n key: i,\n onClick: function onClick(e) {\n return _this2._valueClickHandler(d, e);\n },\n onContextMenu: function onContextMenu(e) {\n return _this2._valueRightClickHandler(d, e);\n },\n onMouseOver: function onMouseOver(e) {\n return _this2._valueMouseOverHandler(d, e);\n },\n onMouseOut: function onMouseOut(e) {\n return _this2._valueMouseOutHandler(d, e);\n },\n textAnchor: getTextAnchor(labelAnchorX, leftOfMiddle),\n x: x,\n y: y,\n transform: 'rotate(' + labelRotation + ',' + x + ',' + y + ')'\n }, markStyle);\n var textContent = getLabel(_data ? _data[i] : d);\n return res.concat([React.createElement('text', attrs, textContent)]);\n }, []));\n }\n }]);\n return LabelSeries;\n}(AbstractSeries);\nLabelSeries.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n animation: false,\n rotation: 0,\n getLabel: function getLabel(d) {\n return d.label;\n }\n});\nLabelSeries.displayName = 'LabelSeries';\nexport default LabelSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport * as d3Shape from 'd3-shape';\nimport Animation from '../../animation';\nimport { DEFAULT_OPACITY } from '../../theme';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { warning } from '../../utils/react-utils';\nimport AbstractSeries from './abstract-series';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--line';\nvar STROKE_STYLES = {\n dashed: '6, 2',\n solid: null\n};\nvar LineSeries = function (_AbstractSeries) {\n _inherits(LineSeries, _AbstractSeries);\n function LineSeries() {\n _classCallCheck(this, LineSeries);\n return _possibleConstructorReturn(this, (LineSeries.__proto__ || Object.getPrototypeOf(LineSeries)).apply(this, arguments));\n }\n _createClass(LineSeries, [{\n key: '_renderLine',\n value: function _renderLine(data, x, y, curve, getNull) {\n var line = d3Shape.line();\n if (curve !== null) {\n if (typeof curve === 'string' && d3Shape[curve]) {\n line = line.curve(d3Shape[curve]);\n } else if (typeof curve === 'function') {\n line = line.curve(curve);\n }\n }\n line = line.defined(getNull);\n line = line.x(x).y(y);\n return line(data);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n data = _props.data;\n if (this.props.nullAccessor) {\n warning('nullAccessor has been renamed to getNull', true);\n }\n if (!data) {\n return null;\n }\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(LineSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n var _props2 = this.props,\n curve = _props2.curve,\n marginLeft = _props2.marginLeft,\n marginTop = _props2.marginTop,\n strokeDasharray = _props2.strokeDasharray,\n strokeStyle = _props2.strokeStyle,\n strokeWidth = _props2.strokeWidth,\n style = _props2.style;\n var x = this._getAttributeFunctor('x');\n var y = this._getAttributeFunctor('y');\n var stroke = this._getAttributeValue('stroke') || this._getAttributeValue('color');\n var newOpacity = this._getAttributeValue('opacity');\n var opacity = Number.isFinite(newOpacity) ? newOpacity : DEFAULT_OPACITY;\n var getNull = this.props.nullAccessor || this.props.getNull;\n var d = this._renderLine(data, x, y, curve, getNull);\n return React.createElement('path', {\n d: d,\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')',\n onMouseOver: this._seriesMouseOverHandler,\n onMouseOut: this._seriesMouseOutHandler,\n onClick: this._seriesClickHandler,\n onContextMenu: this._seriesRightClickHandler,\n style: _extends({\n opacity: opacity,\n strokeDasharray: STROKE_STYLES[strokeStyle] || strokeDasharray,\n strokeWidth: strokeWidth,\n stroke: stroke\n }, style)\n });\n }\n }]);\n return LineSeries;\n}(AbstractSeries);\nLineSeries.displayName = 'LineSeries';\nLineSeries.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n strokeStyle: 'solid',\n style: {},\n opacity: 1,\n curve: null,\n className: '',\n getNull: function getNull() {\n return true;\n }\n});\nexport default LineSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { warning } from '../../utils/react-utils';\nimport { DEFAULT_SIZE, DEFAULT_OPACITY } from '../../theme';\nimport AbstractSeries from './abstract-series';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--mark';\nvar DEFAULT_STROKE_WIDTH = 1;\nvar MarkSeries = function (_AbstractSeries) {\n _inherits(MarkSeries, _AbstractSeries);\n function MarkSeries() {\n _classCallCheck(this, MarkSeries);\n return _possibleConstructorReturn(this, (MarkSeries.__proto__ || Object.getPrototypeOf(MarkSeries)).apply(this, arguments));\n }\n _createClass(MarkSeries, [{\n key: '_renderCircle',\n value: function _renderCircle(d, i, strokeWidth, style, scalingFunctions) {\n var _this2 = this;\n var fill = scalingFunctions.fill,\n opacity = scalingFunctions.opacity,\n size = scalingFunctions.size,\n stroke = scalingFunctions.stroke,\n x = scalingFunctions.x,\n y = scalingFunctions.y;\n var attrs = {\n r: size ? size(d) : DEFAULT_SIZE,\n cx: x(d),\n cy: y(d),\n style: _extends({\n opacity: opacity ? opacity(d) : DEFAULT_OPACITY,\n stroke: stroke && stroke(d),\n fill: fill && fill(d),\n strokeWidth: strokeWidth || DEFAULT_STROKE_WIDTH\n }, style),\n key: i,\n onClick: function onClick(e) {\n return _this2._valueClickHandler(d, e);\n },\n onContextMenu: function onContextMenu(e) {\n return _this2._valueRightClickHandler(d, e);\n },\n onMouseOver: function onMouseOver(e) {\n return _this2._valueMouseOverHandler(d, e);\n },\n onMouseOut: function onMouseOut(e) {\n return _this2._valueMouseOutHandler(d, e);\n }\n };\n return React.createElement('circle', attrs);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n data = _props.data,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n strokeWidth = _props.strokeWidth,\n style = _props.style;\n if (this.props.nullAccessor) {\n warning('nullAccessor has been renamed to getNull', true);\n }\n var getNull = this.props.nullAccessor || this.props.getNull;\n if (!data) {\n return null;\n }\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(MarkSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n var scalingFunctions = {\n fill: this._getAttributeFunctor('fill') || this._getAttributeFunctor('color'),\n opacity: this._getAttributeFunctor('opacity'),\n size: this._getAttributeFunctor('size'),\n stroke: this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color'),\n x: this._getAttributeFunctor('x'),\n y: this._getAttributeFunctor('y')\n };\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n }, data.map(function (d, i) {\n return getNull(d) && _this3._renderCircle(d, i, strokeWidth, style, scalingFunctions);\n }));\n }\n }]);\n return MarkSeries;\n}(AbstractSeries);\nMarkSeries.displayName = 'MarkSeries';\nMarkSeries.defaultProps = {\n getNull: function getNull() {\n return true;\n }\n};\nexport default MarkSeries;","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport AbstractSeries from './abstract-series';\nimport LineSeries from './line-series';\nimport MarkSeries from './mark-series';\nvar LineMarkSeries = function (_AbstractSeries) {\n _inherits(LineMarkSeries, _AbstractSeries);\n function LineMarkSeries() {\n _classCallCheck(this, LineMarkSeries);\n return _possibleConstructorReturn(this, (LineMarkSeries.__proto__ || Object.getPrototypeOf(LineMarkSeries)).apply(this, arguments));\n }\n _createClass(LineMarkSeries, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n lineStyle = _props.lineStyle,\n markStyle = _props.markStyle,\n style = _props.style;\n return React.createElement('g', {\n className: 'rv-xy-plot__series rv-xy-plot__series--linemark'\n }, React.createElement(LineSeries, _extends({}, this.props, {\n style: _extends({}, style, lineStyle)\n })), React.createElement(MarkSeries, _extends({}, this.props, {\n style: _extends({}, style, markStyle)\n })));\n }\n }], [{\n key: 'defaultProps',\n get: function get() {\n return _extends({}, LineSeries.defaultProps, {\n lineStyle: {},\n markStyle: {}\n });\n }\n }]);\n return LineMarkSeries;\n}(AbstractSeries);\nLineMarkSeries.displayName = 'LineMarkSeries';\nexport default LineMarkSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport { rgb } from 'd3-color';\nimport { DEFAULT_SIZE, DEFAULT_OPACITY } from '../../theme';\nimport { getAttributeFunctor } from '../../utils/scales-utils';\nimport AbstractSeries from './abstract-series';\nvar MarkSeriesCanvas = function (_AbstractSeries) {\n _inherits(MarkSeriesCanvas, _AbstractSeries);\n function MarkSeriesCanvas() {\n _classCallCheck(this, MarkSeriesCanvas);\n return _possibleConstructorReturn(this, (MarkSeriesCanvas.__proto__ || Object.getPrototypeOf(MarkSeriesCanvas)).apply(this, arguments));\n }\n _createClass(MarkSeriesCanvas, [{\n key: 'render',\n value: function render() {\n return null;\n }\n }], [{\n key: 'renderLayer',\n value: function renderLayer(props, ctx) {\n var data = props.data,\n marginLeft = props.marginLeft,\n marginTop = props.marginTop;\n var x = getAttributeFunctor(props, 'x');\n var y = getAttributeFunctor(props, 'y');\n var size = getAttributeFunctor(props, 'size') || function (p) {\n return DEFAULT_SIZE;\n };\n var fill = getAttributeFunctor(props, 'fill') || getAttributeFunctor(props, 'color');\n var stroke = getAttributeFunctor(props, 'stroke') || getAttributeFunctor(props, 'color');\n var opacity = getAttributeFunctor(props, 'opacity');\n data.forEach(function (row) {\n var fillColor = rgb(fill(row));\n var strokeColor = rgb(stroke(row));\n var rowOpacity = opacity(row) || DEFAULT_OPACITY;\n ctx.beginPath();\n ctx.arc(x(row) + marginLeft, y(row) + marginTop, size(row), 0, 2 * Math.PI);\n ctx.fillStyle = 'rgba(' + fillColor.r + ', ' + fillColor.g + ', ' + fillColor.b + ', ' + rowOpacity + ')';\n ctx.fill();\n ctx.strokeStyle = 'rgba(' + strokeColor.r + ', ' + strokeColor.g + ', ' + strokeColor.b + ', ' + rowOpacity + ')';\n ctx.stroke();\n });\n }\n }, {\n key: 'requiresSVG',\n get: function get() {\n return false;\n }\n }, {\n key: 'isCanvas',\n get: function get() {\n return true;\n }\n }]);\n return MarkSeriesCanvas;\n}(AbstractSeries);\nMarkSeriesCanvas.displayName = 'MarkSeriesCanvas';\nMarkSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default MarkSeriesCanvas;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport { rgb } from 'd3-color';\nimport * as d3Shape from 'd3-shape';\nimport React from 'react';\nimport { DEFAULT_OPACITY } from '../../theme';\nimport { getAttributeFunctor, getAttributeValue } from '../../utils/scales-utils';\nimport AbstractSeries from './abstract-series';\nvar LineSeriesCanvas = function (_AbstractSeries) {\n _inherits(LineSeriesCanvas, _AbstractSeries);\n function LineSeriesCanvas() {\n _classCallCheck(this, LineSeriesCanvas);\n return _possibleConstructorReturn(this, (LineSeriesCanvas.__proto__ || Object.getPrototypeOf(LineSeriesCanvas)).apply(this, arguments));\n }\n _createClass(LineSeriesCanvas, [{\n key: 'render',\n value: function render() {\n return React.createElement('div', null);\n }\n }], [{\n key: 'renderLayer',\n value: function renderLayer(props, ctx) {\n var curve = props.curve,\n data = props.data,\n marginLeft = props.marginLeft,\n marginTop = props.marginTop,\n strokeWidth = props.strokeWidth,\n strokeDasharray = props.strokeDasharray;\n if (!data || data.length === 0) {\n return;\n }\n var x = getAttributeFunctor(props, 'x');\n var y = getAttributeFunctor(props, 'y');\n var stroke = getAttributeValue(props, 'stroke') || getAttributeValue(props, 'color');\n var strokeColor = rgb(stroke);\n var newOpacity = getAttributeValue(props, 'opacity');\n var opacity = Number.isFinite(newOpacity) ? newOpacity : DEFAULT_OPACITY;\n var line = d3Shape.line().x(function (row) {\n return x(row) + marginLeft;\n }).y(function (row) {\n return y(row) + marginTop;\n });\n if (typeof curve === 'string' && d3Shape[curve]) {\n line = line.curve(d3Shape[curve]);\n } else if (typeof curve === 'function') {\n line = line.curve(curve);\n }\n ctx.beginPath();\n ctx.strokeStyle = 'rgba(' + strokeColor.r + ', ' + strokeColor.g + ', ' + strokeColor.b + ', ' + opacity + ')';\n ctx.lineWidth = strokeWidth;\n if (strokeDasharray) {\n ctx.setLineDash(strokeDasharray);\n }\n line.context(ctx)(data);\n ctx.stroke();\n ctx.closePath();\n // set back to default\n ctx.lineWidth = 1;\n ctx.setLineDash([]);\n }\n }, {\n key: 'requiresSVG',\n get: function get() {\n return false;\n }\n }, {\n key: 'isCanvas',\n get: function get() {\n return true;\n }\n }]);\n return LineSeriesCanvas;\n}(AbstractSeries);\nLineSeriesCanvas.displayName = 'LineSeriesCanvas';\nLineSeriesCanvas.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n strokeWidth: 2\n});\nexport default LineSeriesCanvas;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport AbstractSeries from './abstract-series';\nimport MarkSeriesCanvas from './mark-series-canvas';\nimport LineSeriesCanvas from './line-series-canvas';\nvar LineMarkSeriesCanvas = function (_AbstractSeries) {\n _inherits(LineMarkSeriesCanvas, _AbstractSeries);\n function LineMarkSeriesCanvas() {\n _classCallCheck(this, LineMarkSeriesCanvas);\n return _possibleConstructorReturn(this, (LineMarkSeriesCanvas.__proto__ || Object.getPrototypeOf(LineMarkSeriesCanvas)).apply(this, arguments));\n }\n _createClass(LineMarkSeriesCanvas, [{\n key: 'render',\n value: function render() {\n return null;\n }\n }], [{\n key: 'renderLayer',\n value: function renderLayer(props, ctx) {\n LineSeriesCanvas.renderLayer(props, ctx);\n MarkSeriesCanvas.renderLayer(props, ctx);\n }\n }, {\n key: 'requiresSVG',\n get: function get() {\n return false;\n }\n }, {\n key: 'isCanvas',\n get: function get() {\n return true;\n }\n }]);\n return LineMarkSeriesCanvas;\n}(AbstractSeries);\nLineMarkSeriesCanvas.displayName = 'LineMarkSeriesCanvas';\nLineMarkSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default LineMarkSeriesCanvas;","import \"core-js/modules/es.array.reduce.js\";\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport AbstractSeries from './abstract-series';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--polygon';\nvar DEFAULT_COLOR = '#12939A';\nvar generatePath = function generatePath(data, xFunctor, yFunctor) {\n return data.reduce(function (res, row, i) {\n return res + ' ' + (i ? 'L' : 'M') + xFunctor(row) + ' ' + yFunctor(row);\n }, '') + ' Z';\n};\nvar PolygonSeries = function (_AbstractSeries) {\n _inherits(PolygonSeries, _AbstractSeries);\n function PolygonSeries() {\n _classCallCheck(this, PolygonSeries);\n return _possibleConstructorReturn(this, (PolygonSeries.__proto__ || Object.getPrototypeOf(PolygonSeries)).apply(this, arguments));\n }\n _createClass(PolygonSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n var _props = this.props,\n animation = _props.animation,\n color = _props.color,\n className = _props.className,\n data = _props.data,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n style = _props.style;\n if (!data) {\n return null;\n }\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(PolygonSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n var xFunctor = this._getAttributeFunctor('x');\n var yFunctor = this._getAttributeFunctor('y');\n return React.createElement('path', {\n className: predefinedClassName + ' ' + className,\n onMouseOver: function onMouseOver(e) {\n return _this2._seriesMouseOverHandler(data, e);\n },\n onMouseOut: function onMouseOut(e) {\n return _this2._seriesMouseOutHandler(data, e);\n },\n onClick: this._seriesClickHandler,\n onContextMenu: this._seriesRightClickHandler,\n fill: color || DEFAULT_COLOR,\n style: style,\n d: generatePath(data, xFunctor, yFunctor),\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n });\n }\n }], [{\n key: 'propTypes',\n get: function get() {\n return _extends({}, AbstractSeries.propTypes);\n }\n }]);\n return PolygonSeries;\n}(AbstractSeries);\nPolygonSeries.displayName = 'PolygonSeries';\nexport default PolygonSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport AbstractSeries from './abstract-series';\nimport BarSeries from './bar-series';\nvar VerticalBarSeries = function (_AbstractSeries) {\n _inherits(VerticalBarSeries, _AbstractSeries);\n function VerticalBarSeries() {\n _classCallCheck(this, VerticalBarSeries);\n return _possibleConstructorReturn(this, (VerticalBarSeries.__proto__ || Object.getPrototypeOf(VerticalBarSeries)).apply(this, arguments));\n }\n _createClass(VerticalBarSeries, [{\n key: 'render',\n value: function render() {\n return React.createElement(BarSeries, _extends({}, this.props, {\n linePosAttr: 'x',\n valuePosAttr: 'y',\n lineSizeAttr: 'width',\n valueSizeAttr: 'height'\n }));\n }\n }], [{\n key: 'getParentConfig',\n value: function getParentConfig(attr) {\n var isDomainAdjustmentNeeded = attr === 'x';\n var zeroBaseValue = attr === 'y';\n return {\n isDomainAdjustmentNeeded: isDomainAdjustmentNeeded,\n zeroBaseValue: zeroBaseValue\n };\n }\n }]);\n return VerticalBarSeries;\n}(AbstractSeries);\nVerticalBarSeries.displayName = 'VerticalBarSeries';\nexport default VerticalBarSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport AbstractSeries from './abstract-series';\nimport BarSeries from './bar-series-canvas';\nvar HorizontalBarSeriesCanvas = function (_AbstractSeries) {\n _inherits(HorizontalBarSeriesCanvas, _AbstractSeries);\n function HorizontalBarSeriesCanvas() {\n _classCallCheck(this, HorizontalBarSeriesCanvas);\n return _possibleConstructorReturn(this, (HorizontalBarSeriesCanvas.__proto__ || Object.getPrototypeOf(HorizontalBarSeriesCanvas)).apply(this, arguments));\n }\n _createClass(HorizontalBarSeriesCanvas, [{\n key: 'render',\n value: function render() {\n return null;\n }\n }], [{\n key: 'getParentConfig',\n value: function getParentConfig(attr) {\n var isDomainAdjustmentNeeded = attr === 'x';\n var zeroBaseValue = attr === 'y';\n return {\n isDomainAdjustmentNeeded: isDomainAdjustmentNeeded,\n zeroBaseValue: zeroBaseValue\n };\n }\n }, {\n key: 'renderLayer',\n value: function renderLayer(props, ctx) {\n BarSeries.renderLayer(_extends({}, props, {\n linePosAttr: 'x',\n valuePosAttr: 'y',\n lineSizeAttr: 'width',\n valueSizeAttr: 'height'\n }), ctx);\n }\n }, {\n key: 'requiresSVG',\n get: function get() {\n return false;\n }\n }, {\n key: 'isCanvas',\n get: function get() {\n return true;\n }\n }]);\n return HorizontalBarSeriesCanvas;\n}(AbstractSeries);\nHorizontalBarSeriesCanvas.displayName = 'HorizontalBarSeriesCanvas';\nHorizontalBarSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default HorizontalBarSeriesCanvas;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport GridLines from './grid-lines';\nimport { DIRECTION } from '../utils/axis-utils';\nvar VERTICAL = DIRECTION.VERTICAL;\nvar defaultProps = {\n direction: VERTICAL,\n attr: 'x'\n};\nfunction VerticalGridLines(props) {\n return React.createElement(GridLines, props);\n}\nVerticalGridLines.displayName = 'VerticalGridLines';\nVerticalGridLines.defaultProps = defaultProps;\nVerticalGridLines.requiresSVG = true;\nexport default VerticalGridLines;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport AbstractSeries from './abstract-series';\nimport RectSeries from './rect-series';\nvar VerticalRectSeries = function (_AbstractSeries) {\n _inherits(VerticalRectSeries, _AbstractSeries);\n function VerticalRectSeries() {\n _classCallCheck(this, VerticalRectSeries);\n return _possibleConstructorReturn(this, (VerticalRectSeries.__proto__ || Object.getPrototypeOf(VerticalRectSeries)).apply(this, arguments));\n }\n _createClass(VerticalRectSeries, [{\n key: 'render',\n value: function render() {\n return React.createElement(RectSeries, _extends({}, this.props, {\n linePosAttr: 'x',\n valuePosAttr: 'y',\n lineSizeAttr: 'width',\n valueSizeAttr: 'height'\n }));\n }\n }], [{\n key: 'getParentConfig',\n value: function getParentConfig(attr) {\n var isDomainAdjustmentNeeded = false;\n var zeroBaseValue = attr === 'y';\n return {\n isDomainAdjustmentNeeded: isDomainAdjustmentNeeded,\n zeroBaseValue: zeroBaseValue\n };\n }\n }]);\n return VerticalRectSeries;\n}(AbstractSeries);\nVerticalRectSeries.displayName = 'VerticalRectSeries';\nexport default VerticalRectSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport AbstractSeries from './abstract-series';\nimport RectSeries from './rect-series-canvas';\nvar HorizontalRectSeriesCanvas = function (_AbstractSeries) {\n _inherits(HorizontalRectSeriesCanvas, _AbstractSeries);\n function HorizontalRectSeriesCanvas() {\n _classCallCheck(this, HorizontalRectSeriesCanvas);\n return _possibleConstructorReturn(this, (HorizontalRectSeriesCanvas.__proto__ || Object.getPrototypeOf(HorizontalRectSeriesCanvas)).apply(this, arguments));\n }\n _createClass(HorizontalRectSeriesCanvas, [{\n key: 'render',\n value: function render() {\n return null;\n }\n }], [{\n key: 'getParentConfig',\n value: function getParentConfig(attr) {\n var isDomainAdjustmentNeeded = false;\n var zeroBaseValue = attr === 'y';\n return {\n isDomainAdjustmentNeeded: isDomainAdjustmentNeeded,\n zeroBaseValue: zeroBaseValue\n };\n }\n }, {\n key: 'renderLayer',\n value: function renderLayer(props, ctx) {\n RectSeries.renderLayer(_extends({}, props, {\n linePosAttr: 'x',\n valuePosAttr: 'y',\n lineSizeAttr: 'width',\n valueSizeAttr: 'height'\n }), ctx);\n }\n }, {\n key: 'requiresSVG',\n get: function get() {\n return false;\n }\n }, {\n key: 'isCanvas',\n get: function get() {\n return true;\n }\n }]);\n return HorizontalRectSeriesCanvas;\n}(AbstractSeries);\nHorizontalRectSeriesCanvas.displayName = 'HorizontalRectSeriesCanvas';\nHorizontalRectSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default HorizontalRectSeriesCanvas;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nimport React from 'react';\nimport { voronoi } from 'd3-voronoi';\nimport { getAttributeFunctor } from '../utils/scales-utils';\nvar NOOP = function NOOP(f) {\n return f;\n};\n\n// Find the index of the node at coordinates of a touch point\nfunction getNodeIndex(evt) {\n var _evt$nativeEvent = evt.nativeEvent,\n pageX = _evt$nativeEvent.pageX,\n pageY = _evt$nativeEvent.pageY;\n var target = document.elementFromPoint(pageX, pageY);\n if (!target) {\n return -1;\n }\n var parentNode = target.parentNode;\n return Array.prototype.indexOf.call(parentNode.childNodes, target);\n}\nfunction getExtent(_ref) {\n var innerWidth = _ref.innerWidth,\n innerHeight = _ref.innerHeight,\n marginLeft = _ref.marginLeft,\n marginTop = _ref.marginTop;\n return [[marginLeft, marginTop], [innerWidth + marginLeft, innerHeight + marginTop]];\n}\nfunction Voronoi(props) {\n var className = props.className,\n extent = props.extent,\n nodes = props.nodes,\n onBlur = props.onBlur,\n _onClick = props.onClick,\n _onMouseUp = props.onMouseUp,\n _onMouseDown = props.onMouseDown,\n onHover = props.onHover,\n polygonStyle = props.polygonStyle,\n style = props.style,\n x = props.x,\n y = props.y;\n // Create a voronoi with each node center points\n\n var voronoiInstance = voronoi().x(x || getAttributeFunctor(props, 'x')).y(y || getAttributeFunctor(props, 'y')).extent(extent || getExtent(props));\n\n // Create an array of polygons corresponding to the cells in voronoi\n var polygons = voronoiInstance.polygons(nodes);\n\n // Create helper function to handle special logic for touch events\n var handleTouchEvent = function handleTouchEvent(handler) {\n return function (evt) {\n evt.preventDefault();\n var index = getNodeIndex(evt);\n if (index > -1 && index < polygons.length) {\n var d = polygons[index];\n handler(d.data);\n }\n };\n };\n return React.createElement('g', {\n className: className + ' rv-voronoi',\n style: style\n // Because of the nature of how touch events, and more specifically touchmove\n // and how it differs from mouseover, we must manage touch events on the parent\n ,\n onTouchEnd: handleTouchEvent(_onMouseUp),\n onTouchStart: handleTouchEvent(_onMouseDown),\n onTouchMove: handleTouchEvent(onHover),\n onTouchCancel: handleTouchEvent(onBlur)\n }, polygons.map(function (d, i) {\n return React.createElement('path', {\n className: 'rv-voronoi__cell ' + (d.data && d.data.className || ''),\n d: 'M' + d.join('L') + 'Z',\n onClick: function onClick() {\n return _onClick(d.data);\n },\n onMouseUp: function onMouseUp() {\n return _onMouseUp(d.data);\n },\n onMouseDown: function onMouseDown() {\n return _onMouseDown(d.data);\n },\n onMouseOver: function onMouseOver() {\n return onHover(d.data);\n },\n onMouseOut: function onMouseOut() {\n return onBlur(d.data);\n },\n fill: 'none',\n style: _extends({\n pointerEvents: 'all'\n }, polygonStyle, d.data && d.data.style),\n key: i\n });\n }));\n}\nVoronoi.requiresSVG = true;\nVoronoi.displayName = 'Voronoi';\nVoronoi.defaultProps = {\n className: '',\n onBlur: NOOP,\n onClick: NOOP,\n onHover: NOOP,\n onMouseDown: NOOP,\n onMouseUp: NOOP\n};\nexport default Voronoi;","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { DEFAULT_OPACITY } from '../../theme';\nimport AbstractSeries from './abstract-series';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--whisker';\nvar DEFAULT_STROKE_WIDTH = 1;\nvar DEFAULT_CROSS_BAR_WIDTH = 6;\n\n/**\n * Render whisker lines for a data point.\n * @param {Object} whiskerMarkProps All the properties of the whisker mark.\n * @private\n */\nvar renderWhiskerMark = function renderWhiskerMark(whiskerMarkProps) {\n return function (d, i) {\n var crossBarWidth = whiskerMarkProps.crossBarWidth,\n opacityFunctor = whiskerMarkProps.opacityFunctor,\n sizeFunctor = whiskerMarkProps.sizeFunctor,\n strokeFunctor = whiskerMarkProps.strokeFunctor,\n strokeWidth = whiskerMarkProps.strokeWidth,\n style = whiskerMarkProps.style,\n valueClickHandler = whiskerMarkProps.valueClickHandler,\n valueMouseOutHandler = whiskerMarkProps.valueMouseOutHandler,\n valueMouseOverHandler = whiskerMarkProps.valueMouseOverHandler,\n valueRightClickHandler = whiskerMarkProps.valueRightClickHandler,\n xFunctor = whiskerMarkProps.xFunctor,\n yFunctor = whiskerMarkProps.yFunctor;\n var r = sizeFunctor ? sizeFunctor(d) : 0;\n var cx = xFunctor(d);\n var cy = yFunctor(d);\n var positiveXVariance = xFunctor({\n x: d.x + d.xVariance / 2\n });\n var negativeXVariance = xFunctor({\n x: d.x - d.xVariance / 2\n });\n var positiveYVariance = yFunctor({\n y: d.y + d.yVariance / 2\n });\n var negativeYVariance = yFunctor({\n y: d.y - d.yVariance / 2\n });\n /**\n * Determine whether on not we should draw whiskers in each direction.\n * We need to see an actual variance value, and also have that value extend past the\n * radius \"buffer\" region in which we won't be drawing (if any).\n */\n var hasXWhiskers = positiveXVariance && cx + r < positiveXVariance;\n var hasYWhiskers = positiveYVariance && cy - r > positiveYVariance;\n if (!hasXWhiskers && !hasYWhiskers) {\n return null;\n }\n var styleAttr = _extends({\n opacity: opacityFunctor ? opacityFunctor(d) : DEFAULT_OPACITY,\n stroke: strokeFunctor && strokeFunctor(d),\n strokeWidth: strokeWidth || DEFAULT_STROKE_WIDTH\n }, style);\n var crossBarExtension = crossBarWidth / 2;\n var rightLineAttrs = {\n x1: cx + r,\n y1: cy,\n x2: positiveXVariance,\n y2: cy,\n style: styleAttr\n };\n var leftLineAttrs = {\n x1: cx - r,\n y1: cy,\n x2: negativeXVariance,\n y2: cy,\n style: styleAttr\n };\n var rightCrossBarAttrs = {\n x1: positiveXVariance,\n y1: cy - crossBarExtension,\n x2: positiveXVariance,\n y2: cy + crossBarExtension,\n style: styleAttr\n };\n var leftCrossBarAttrs = {\n x1: negativeXVariance,\n y1: cy - crossBarExtension,\n x2: negativeXVariance,\n y2: cy + crossBarExtension,\n style: styleAttr\n };\n var upperLineAttrs = {\n x1: cx,\n y1: cy - r,\n x2: cx,\n y2: positiveYVariance,\n style: styleAttr\n };\n var lowerLineAttrs = {\n x1: cx,\n y1: cy + r,\n x2: cx,\n y2: negativeYVariance,\n style: styleAttr\n };\n var upperCrossBarAttrs = {\n x1: cx - crossBarExtension,\n y1: positiveYVariance,\n x2: cx + crossBarExtension,\n y2: positiveYVariance,\n style: styleAttr\n };\n var lowerCrossBarAttrs = {\n x1: cx - crossBarExtension,\n y1: negativeYVariance,\n x2: cx + crossBarExtension,\n y2: negativeYVariance,\n style: styleAttr\n };\n return React.createElement('g', {\n className: 'mark-whiskers',\n key: i,\n onClick: function onClick(e) {\n return valueClickHandler(d, e);\n },\n onContextMenu: function onContextMenu(e) {\n return valueRightClickHandler(d, e);\n },\n onMouseOver: function onMouseOver(e) {\n return valueMouseOverHandler(d, e);\n },\n onMouseOut: function onMouseOut(e) {\n return valueMouseOutHandler(d, e);\n }\n }, hasXWhiskers ? React.createElement('g', {\n className: 'x-whiskers'\n }, React.createElement('line', rightLineAttrs), React.createElement('line', leftLineAttrs), React.createElement('line', rightCrossBarAttrs), React.createElement('line', leftCrossBarAttrs)) : null, hasYWhiskers ? React.createElement('g', {\n className: 'y-whiskers'\n }, React.createElement('line', upperLineAttrs), React.createElement('line', lowerLineAttrs), React.createElement('line', upperCrossBarAttrs), React.createElement('line', lowerCrossBarAttrs)) : null);\n };\n};\nvar WhiskerSeries = function (_AbstractSeries) {\n _inherits(WhiskerSeries, _AbstractSeries);\n function WhiskerSeries() {\n _classCallCheck(this, WhiskerSeries);\n return _possibleConstructorReturn(this, (WhiskerSeries.__proto__ || Object.getPrototypeOf(WhiskerSeries)).apply(this, arguments));\n }\n _createClass(WhiskerSeries, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n crossBarWidth = _props.crossBarWidth,\n data = _props.data,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n strokeWidth = _props.strokeWidth,\n style = _props.style;\n if (!data) {\n return null;\n }\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(WhiskerSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n var whiskerMarkProps = {\n crossBarWidth: crossBarWidth,\n opacityFunctor: this._getAttributeFunctor('opacity'),\n sizeFunctor: this._getAttributeFunctor('size'),\n strokeFunctor: this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color'),\n strokeWidth: strokeWidth,\n style: style,\n xFunctor: this._getAttributeFunctor('x'),\n yFunctor: this._getAttributeFunctor('y'),\n valueClickHandler: this._valueClickHandler,\n valueRightClickHandler: this._valueRightClickHandler,\n valueMouseOverHandler: this._valueMouseOverHandler,\n valueMouseOutHandler: this._valueMouseOutHandler\n };\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n }, data.map(renderWhiskerMark(whiskerMarkProps)));\n }\n }]);\n return WhiskerSeries;\n}(AbstractSeries);\nWhiskerSeries.displayName = 'WhiskerSeries';\nWhiskerSeries.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n crossBarWidth: DEFAULT_CROSS_BAR_WIDTH,\n size: 0,\n strokeWidth: DEFAULT_STROKE_WIDTH\n});\nexport default WhiskerSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport PropTypes from 'prop-types';\n\n/**\n * Get the dimensions of the component for the future use.\n * @param {Object} props Props.\n * @param {Object} defaultMargins Object with default margins.\n * @returns {Object} Dimensions of the component.\n */\nexport function getInnerDimensions(props, defaultMargins) {\n var margin = props.margin,\n width = props.width,\n height = props.height;\n var marginProps = _extends({}, defaultMargins, typeof margin === 'number' ? {\n left: margin,\n right: margin,\n top: margin,\n bottom: margin\n } : margin);\n var _marginProps$left = marginProps.left,\n marginLeft = _marginProps$left === undefined ? 0 : _marginProps$left,\n _marginProps$top = marginProps.top,\n marginTop = _marginProps$top === undefined ? 0 : _marginProps$top,\n _marginProps$right = marginProps.right,\n marginRight = _marginProps$right === undefined ? 0 : _marginProps$right,\n _marginProps$bottom = marginProps.bottom,\n marginBottom = _marginProps$bottom === undefined ? 0 : _marginProps$bottom;\n return {\n marginLeft: marginLeft,\n marginTop: marginTop,\n marginRight: marginRight,\n marginBottom: marginBottom,\n innerHeight: height - marginBottom - marginTop,\n innerWidth: width - marginLeft - marginRight\n };\n}\n\n/**\n * Calculate the margin of the sunburst,\n * so it can be at the center of the container\n * @param {Number} width - the width of the container\n * @param {Number} height - the height of the container\n * @param {Number} radius - the max radius of the sunburst\n * @return {Object} an object includes {bottom, left, right, top}\n */\nexport function getRadialLayoutMargin(width, height, radius) {\n var marginX = width / 2 - radius;\n var marginY = height / 2 - radius;\n return {\n bottom: marginY,\n left: marginX,\n right: marginX,\n top: marginY\n };\n}\nexport var MarginPropType = PropTypes.oneOfType([PropTypes.shape({\n left: PropTypes.number,\n top: PropTypes.number,\n right: PropTypes.number,\n bottom: PropTypes.number\n}), PropTypes.number]);\nexport var DEFAULT_MARGINS = {\n left: 40,\n right: 10,\n top: 10,\n bottom: 40\n};","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React, { Component } from 'react';\nimport { interpolate } from 'd3-interpolate';\nimport { extractAnimatedPropValues } from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nvar MAX_DRAWS = 30;\n\n/**\n * Draw loop draws each of the layers until it should draw more\n * @param {CanvasContext} ctx - the context where the drawing will take place\n * @param {Number} height - height of the canvas\n * @param {Number} width - width of the canvas\n * @param {Array} layers - the layer objects to render\n */\nfunction engageDrawLoop(ctx, height, width, layers) {\n var drawIteration = 0;\n // using setInterval because request animation frame goes too fast\n var drawCycle = setInterval(function () {\n if (!ctx) {\n clearInterval(drawCycle);\n return;\n }\n drawLayers(ctx, height, width, layers, drawIteration);\n if (drawIteration > MAX_DRAWS) {\n clearInterval(drawCycle);\n }\n drawIteration += 1;\n }, 1);\n}\n\n/**\n * Loops across each of the layers to be drawn and draws them\n * @param {CanvasContext} ctx - the context where the drawing will take place\n * @param {Number} height - height of the canvas\n * @param {Number} width - width of the canvas\n * @param {Array} layers - the layer objects to render\n * @param {Number} drawIteration - width of the canvas\n */\nfunction drawLayers(ctx, height, width, layers, drawIteration) {\n ctx.clearRect(0, 0, width, height);\n layers.forEach(function (layer) {\n var interpolator = layer.interpolator,\n newProps = layer.newProps,\n animation = layer.animation;\n // return an empty object if dont need to be animating\n\n var interpolatedProps = animation ? interpolator ? interpolator(drawIteration / MAX_DRAWS) : interpolator : function () {\n return {};\n };\n layer.renderLayer(_extends({}, newProps, interpolatedProps), ctx);\n });\n}\n\n/**\n * Build an array of layer of objects the contain the method for drawing each series\n * as well as an interpolar (specifically a d3-interpolate interpolator)\n * @param {Object} newChildren the new children to be rendered.\n * @param {Object} oldChildren the old children to be rendered.\n * @returns {Array} Object for rendering\n */\nfunction buildLayers(newChildren, oldChildren) {\n return newChildren.map(function (child, index) {\n var oldProps = oldChildren[index] ? oldChildren[index].props : {};\n var newProps = child.props;\n var oldAnimatedProps = extractAnimatedPropValues(_extends({}, oldProps, {\n animatedProps: ANIMATED_SERIES_PROPS\n }));\n var newAnimatedProps = newProps ? extractAnimatedPropValues(_extends({}, newProps, {\n animatedProps: ANIMATED_SERIES_PROPS\n })) : null;\n var interpolator = interpolate(oldAnimatedProps, newAnimatedProps);\n return {\n renderLayer: child.type.renderLayer,\n newProps: child.props,\n animation: child.props.animation,\n interpolator: interpolator\n };\n });\n}\nvar CanvasWrapper = function (_Component) {\n _inherits(CanvasWrapper, _Component);\n function CanvasWrapper() {\n _classCallCheck(this, CanvasWrapper);\n return _possibleConstructorReturn(this, (CanvasWrapper.__proto__ || Object.getPrototypeOf(CanvasWrapper)).apply(this, arguments));\n }\n _createClass(CanvasWrapper, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var ctx = this.canvas.getContext('2d');\n if (!ctx) {\n return;\n }\n var pixelRatio = this.props.pixelRatio;\n if (!ctx) {\n return;\n }\n ctx.scale(pixelRatio, pixelRatio);\n this.drawChildren(null, this.props, ctx);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(oldProps) {\n this.drawChildren(oldProps, this.props, this.canvas.getContext('2d'));\n }\n\n /**\n * Check that we can and should be animating, then kick off animations as apporpriate\n * @param {Object} newProps the new props to be interpolated to\n * @param {Object} oldProps the old props to be interpolated against\n * @param {DomRef} ctx the canvas context to be drawn on.\n * @returns {Array} Object for rendering\n */\n }, {\n key: 'drawChildren',\n value: function drawChildren(oldProps, newProps, ctx) {\n var children = newProps.children,\n innerHeight = newProps.innerHeight,\n innerWidth = newProps.innerWidth,\n marginBottom = newProps.marginBottom,\n marginLeft = newProps.marginLeft,\n marginRight = newProps.marginRight,\n marginTop = newProps.marginTop;\n if (!ctx) {\n return;\n }\n var childrenShouldAnimate = children.find(function (child) {\n return child.props.animation;\n });\n var height = innerHeight + marginTop + marginBottom;\n var width = innerWidth + marginLeft + marginRight;\n var layers = buildLayers(newProps.children, oldProps ? oldProps.children : []);\n // if we don't need to be animating, dont! cut short\n if (!childrenShouldAnimate) {\n drawLayers(ctx, height, width, layers);\n return;\n }\n engageDrawLoop(ctx, height, width, layers);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n var _props = this.props,\n innerHeight = _props.innerHeight,\n innerWidth = _props.innerWidth,\n marginBottom = _props.marginBottom,\n marginLeft = _props.marginLeft,\n marginRight = _props.marginRight,\n marginTop = _props.marginTop,\n pixelRatio = _props.pixelRatio;\n var height = innerHeight + marginTop + marginBottom;\n var width = innerWidth + marginLeft + marginRight;\n return React.createElement('div', {\n style: {\n left: 0,\n top: 0\n },\n className: 'rv-xy-canvas'\n }, React.createElement('canvas', {\n className: 'rv-xy-canvas-element',\n height: height * pixelRatio,\n width: width * pixelRatio,\n style: {\n height: height + 'px',\n width: width + 'px'\n },\n ref: function ref(_ref) {\n return _this2.canvas = _ref;\n }\n }), this.props.children);\n }\n }], [{\n key: 'defaultProps',\n get: function get() {\n return {\n pixelRatio: window && window.devicePixelRatio || 1\n };\n }\n }]);\n return CanvasWrapper;\n}(Component);\nCanvasWrapper.displayName = 'CanvasWrapper';\nexport default CanvasWrapper;","import \"core-js/modules/es.array.reduce.js\";\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport equal from 'deep-equal';\nimport { extractScalePropsFromProps, getMissingScaleProps, getOptionalScaleProps, getXYPlotValues } from '../utils/scales-utils';\nimport { getStackedData, getSeriesChildren, getSeriesPropsFromChildren } from '../utils/series-utils';\nimport { getInnerDimensions, MarginPropType, DEFAULT_MARGINS } from '../utils/chart-utils';\nimport { AnimationPropType } from '../animation';\nimport { CONTINUOUS_COLOR_RANGE, EXTENDED_DISCRETE_COLOR_RANGE, SIZE_RANGE, OPACITY_TYPE } from '../theme';\nimport CanvasWrapper from './series/canvas-wrapper';\nvar ATTRIBUTES = ['x', 'y', 'radius', 'angle', 'color', 'fill', 'stroke', 'opacity', 'size'];\n\n/**\n * Remove parents from tree formatted data. deep-equal doesnt play nice with data\n * that has circular structures, so we make every node single directional by pruning the parents.\n * @param {Array} data - the data object to have circular deps resolved in\n * @returns {Array} the sanitized data\n */\nfunction cleanseData(data) {\n return data.map(function (series) {\n if (!Array.isArray(series)) {\n return series;\n }\n return series.map(function (row) {\n return _extends({}, row, {\n parent: null\n });\n });\n });\n}\n\n/**\n * Wrapper on the deep-equal method for checking equality of next props vs current props\n * @param {Object} scaleMixins - Scale object.\n * @param {Object} nextScaleMixins - Scale object.\n * @param {Boolean} hasTreeStructure - Whether or not to cleanse the data of possible cyclic structures\n * @returns {Boolean} whether or not the two mixins objects are equal\n */\nfunction checkIfMixinsAreEqual(nextScaleMixins, scaleMixins, hasTreeStructure) {\n var newMixins = _extends({}, nextScaleMixins, {\n _allData: hasTreeStructure ? cleanseData(nextScaleMixins._allData) : nextScaleMixins._allData\n });\n var oldMixins = _extends({}, scaleMixins, {\n _allData: hasTreeStructure ? cleanseData(scaleMixins._allData) : scaleMixins._allData\n });\n // it's hard to say if this function is reasonable?\n return equal(newMixins, oldMixins);\n}\nvar XYPlot = function (_React$Component) {\n _inherits(XYPlot, _React$Component);\n _createClass(XYPlot, null, [{\n key: 'defaultProps',\n get: function get() {\n return {\n className: ''\n };\n }\n }, {\n key: 'propTypes',\n get: function get() {\n return {\n animation: AnimationPropType,\n className: PropTypes.string,\n dontCheckIfEmpty: PropTypes.bool,\n height: PropTypes.number.isRequired,\n margin: MarginPropType,\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseUp: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseMove: PropTypes.func,\n onTouchStart: PropTypes.func,\n onTouchMove: PropTypes.func,\n onTouchEnd: PropTypes.func,\n onTouchCancel: PropTypes.func,\n onWheel: PropTypes.func,\n stackBy: PropTypes.oneOf(ATTRIBUTES),\n style: PropTypes.object,\n width: PropTypes.number.isRequired\n };\n }\n }]);\n function XYPlot(props) {\n _classCallCheck(this, XYPlot);\n var _this = _possibleConstructorReturn(this, (XYPlot.__proto__ || Object.getPrototypeOf(XYPlot)).call(this, props));\n _initialiseProps.call(_this);\n var stackBy = props.stackBy;\n var children = getSeriesChildren(props.children);\n var data = getStackedData(children, stackBy);\n _this.state = {\n scaleMixins: _this._getScaleMixins(data, props),\n data: data\n };\n return _this;\n }\n _createClass(XYPlot, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var children = getSeriesChildren(nextProps.children);\n var nextData = getStackedData(children, nextProps.stackBy);\n var scaleMixins = this.state.scaleMixins;\n var nextScaleMixins = this._getScaleMixins(nextData, nextProps);\n if (!checkIfMixinsAreEqual(nextScaleMixins, scaleMixins, nextProps.hasTreeStructure)) {\n this.setState({\n scaleMixins: nextScaleMixins,\n data: nextData\n });\n }\n }\n\n /**\n * Trigger click related callbacks if they are available.\n * @param {React.SyntheticEvent} event Click event.\n * @private\n */\n\n /**\n * Trigger doule-click related callbacks if they are available.\n * @param {React.SyntheticEvent} event Double-click event.\n * @private\n */\n }, {\n key: '_getClonedChildComponents',\n /**\n * Prepare the child components (including series) for rendering.\n * @returns {Array} Array of child components.\n * @private\n */\n value: function _getClonedChildComponents() {\n var _this2 = this;\n var props = this.props;\n var animation = this.props.animation;\n var _state = this.state,\n scaleMixins = _state.scaleMixins,\n data = _state.data;\n var dimensions = getInnerDimensions(this.props, DEFAULT_MARGINS);\n var children = React.Children.toArray(this.props.children);\n var seriesProps = getSeriesPropsFromChildren(children);\n var XYPlotValues = getXYPlotValues(props, children);\n return children.map(function (child, index) {\n var dataProps = null;\n if (seriesProps[index]) {\n // Get the index of the series in the list of props and retrieve\n // the data property from it.\n var seriesIndex = seriesProps[index].seriesIndex;\n dataProps = {\n data: data[seriesIndex]\n };\n }\n return React.cloneElement(child, _extends({}, dimensions, {\n animation: animation\n }, dataProps && child.type.prototype && child.type.prototype.render ? {\n ref: function ref(_ref) {\n return _this2['series' + seriesProps[index].seriesIndex] = _ref;\n }\n } : {}, seriesProps[index], scaleMixins, child.props, XYPlotValues[index], dataProps));\n });\n }\n /**\n * Get the list of scale-related settings that should be applied by default.\n * @param {Object} props Object of props.\n * @returns {Object} Defaults.\n * @private\n */\n }, {\n key: '_getDefaultScaleProps',\n value: function _getDefaultScaleProps(props) {\n var _getInnerDimensions = getInnerDimensions(props, DEFAULT_MARGINS),\n innerWidth = _getInnerDimensions.innerWidth,\n innerHeight = _getInnerDimensions.innerHeight;\n var colorRanges = ['color', 'fill', 'stroke'].reduce(function (acc, attr) {\n var range = props[attr + 'Type'] === 'category' ? EXTENDED_DISCRETE_COLOR_RANGE : CONTINUOUS_COLOR_RANGE;\n return _extends({}, acc, _defineProperty({}, attr + 'Range', range));\n }, {});\n return _extends({\n xRange: [0, innerWidth],\n yRange: [innerHeight, 0]\n }, colorRanges, {\n opacityType: OPACITY_TYPE,\n sizeRange: SIZE_RANGE\n });\n }\n\n /**\n * Get the map of scales from the props, apply defaults to them and then pass\n * them further.\n * @param {Object} data Array of all data.\n * @param {Object} props Props of the component.\n * @returns {Object} Map of scale-related props.\n * @private\n */\n }, {\n key: '_getScaleMixins',\n value: function _getScaleMixins(data, props) {\n var _ref2;\n var filteredData = data.filter(function (d) {\n return d;\n });\n var allData = (_ref2 = []).concat.apply(_ref2, _toConsumableArray(filteredData));\n var defaultScaleProps = this._getDefaultScaleProps(props);\n var optionalScaleProps = getOptionalScaleProps(props);\n var userScaleProps = extractScalePropsFromProps(props, ATTRIBUTES);\n var missingScaleProps = getMissingScaleProps(_extends({}, defaultScaleProps, optionalScaleProps, userScaleProps), allData, ATTRIBUTES);\n var children = getSeriesChildren(props.children);\n var zeroBaseProps = {};\n var adjustBy = new Set();\n var adjustWhat = new Set();\n children.forEach(function (child, index) {\n if (!child || !data[index]) {\n return;\n }\n ATTRIBUTES.forEach(function (attr) {\n var _child$type$getParent = child.type.getParentConfig(attr, child.props),\n isDomainAdjustmentNeeded = _child$type$getParent.isDomainAdjustmentNeeded,\n zeroBaseValue = _child$type$getParent.zeroBaseValue;\n if (isDomainAdjustmentNeeded) {\n adjustBy.add(attr);\n adjustWhat.add(index);\n }\n if (zeroBaseValue) {\n var specifiedDomain = props[attr + 'Domain'];\n zeroBaseProps[attr + 'BaseValue'] = specifiedDomain ? specifiedDomain[0] : 0;\n }\n });\n });\n return _extends({}, defaultScaleProps, zeroBaseProps, userScaleProps, missingScaleProps, {\n _allData: data,\n _adjustBy: Array.from(adjustBy),\n _adjustWhat: Array.from(adjustWhat),\n _stackBy: props.stackBy\n });\n }\n\n /**\n * Checks if the plot is empty or not.\n * Currently checks the data only.\n * @returns {boolean} True for empty.\n * @private\n */\n }, {\n key: '_isPlotEmpty',\n value: function _isPlotEmpty() {\n var data = this.state.data;\n return !data || !data.length || !data.some(function (series) {\n return series && series.some(function (d) {\n return d;\n });\n });\n }\n\n /**\n * Trigger mouse-down related callbacks if they are available.\n * @param {React.SyntheticEvent} event Mouse down event.\n * @private\n */\n\n /**\n * Trigger onMouseEnter handler if it was passed in props.\n * @param {React.SyntheticEvent} event Mouse enter event.\n * @private\n */\n\n /**\n * Trigger onMouseLeave handler if it was passed in props.\n * @param {React.SyntheticEvent} event Mouse leave event.\n * @private\n */\n\n /**\n * Trigger movement-related callbacks if they are available.\n * @param {React.SyntheticEvent} event Mouse move event.\n * @private\n */\n\n /**\n * Trigger mouse-up related callbacks if they are available.\n * @param {React.SyntheticEvent} event Mouse up event.\n * @private\n */\n\n /**\n * Trigger onTouchCancel handler if it was passed in props.\n * @param {React.SyntheticEvent} event Touch Cancel event.\n * @private\n */\n\n /**\n * Trigger onTouchEnd handler if it was passed in props.\n * @param {React.SyntheticEvent} event Touch End event.\n * @private\n */\n\n /**\n * Trigger touch movement-related callbacks if they are available.\n * @param {React.SyntheticEvent} event Touch move event.\n * @private\n */\n\n /**\n * Trigger touch-start related callbacks if they are available.\n * @param {React.SyntheticEvent} event Touch start event.\n * @private\n */\n\n /**\n * Trigger doule-click related callbacks if they are available.\n * @param {React.SyntheticEvent} event Double-click event.\n * @private\n */\n }, {\n key: 'renderCanvasComponents',\n value: function renderCanvasComponents(components, props) {\n var componentsToRender = components.filter(function (c) {\n return c && !c.type.requiresSVG && c.type.isCanvas;\n });\n if (componentsToRender.length === 0) {\n return null;\n }\n var _componentsToRender$ = componentsToRender[0].props,\n marginLeft = _componentsToRender$.marginLeft,\n marginTop = _componentsToRender$.marginTop,\n marginBottom = _componentsToRender$.marginBottom,\n marginRight = _componentsToRender$.marginRight,\n innerHeight = _componentsToRender$.innerHeight,\n innerWidth = _componentsToRender$.innerWidth;\n return React.createElement(CanvasWrapper, {\n innerHeight: innerHeight,\n innerWidth: innerWidth,\n marginLeft: marginLeft,\n marginTop: marginTop,\n marginBottom: marginBottom,\n marginRight: marginRight\n }, componentsToRender);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n className = _props.className,\n dontCheckIfEmpty = _props.dontCheckIfEmpty,\n style = _props.style,\n width = _props.width,\n height = _props.height;\n if (!dontCheckIfEmpty && this._isPlotEmpty()) {\n return React.createElement('div', {\n className: 'rv-xy-plot ' + className,\n style: _extends({\n width: width + 'px',\n height: height + 'px'\n }, this.props.style)\n });\n }\n var components = this._getClonedChildComponents();\n return React.createElement('div', {\n style: {\n width: width + 'px',\n height: height + 'px'\n },\n className: 'rv-xy-plot ' + className\n }, React.createElement('svg', {\n className: 'rv-xy-plot__inner',\n width: width,\n height: height,\n style: style,\n onClick: this._clickHandler,\n onDoubleClick: this._doubleClickHandler,\n onMouseDown: this._mouseDownHandler,\n onMouseUp: this._mouseUpHandler,\n onMouseMove: this._mouseMoveHandler,\n onMouseLeave: this._mouseLeaveHandler,\n onMouseEnter: this._mouseEnterHandler,\n onTouchStart: this._mouseDownHandler,\n onTouchMove: this._touchMoveHandler,\n onTouchEnd: this._touchEndHandler,\n onTouchCancel: this._touchCancelHandler,\n onWheel: this._wheelHandler\n }, components.filter(function (c) {\n return c && c.type.requiresSVG;\n })), this.renderCanvasComponents(components, this.props), components.filter(function (c) {\n return c && !c.type.requiresSVG && !c.type.isCanvas;\n }));\n }\n }]);\n return XYPlot;\n}(React.Component);\nvar _initialiseProps = function _initialiseProps() {\n var _this3 = this;\n this._clickHandler = function (event) {\n var onClick = _this3.props.onClick;\n if (onClick) {\n onClick(event);\n }\n };\n this._doubleClickHandler = function (event) {\n var onDoubleClick = _this3.props.onDoubleClick;\n if (onDoubleClick) {\n onDoubleClick(event);\n }\n };\n this._mouseDownHandler = function (event) {\n var _props2 = _this3.props,\n onMouseDown = _props2.onMouseDown,\n children = _props2.children;\n if (onMouseDown) {\n onMouseDown(event);\n }\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n if (component && component.onParentMouseDown) {\n component.onParentMouseDown(event);\n }\n });\n };\n this._mouseEnterHandler = function (event) {\n var _props3 = _this3.props,\n onMouseEnter = _props3.onMouseEnter,\n children = _props3.children;\n if (onMouseEnter) {\n onMouseEnter(event);\n }\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n if (component && component.onParentMouseEnter) {\n component.onParentMouseEnter(event);\n }\n });\n };\n this._mouseLeaveHandler = function (event) {\n var _props4 = _this3.props,\n onMouseLeave = _props4.onMouseLeave,\n children = _props4.children;\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n if (component && component.onParentMouseLeave) {\n component.onParentMouseLeave(event);\n }\n });\n };\n this._mouseMoveHandler = function (event) {\n var _props5 = _this3.props,\n onMouseMove = _props5.onMouseMove,\n children = _props5.children;\n if (onMouseMove) {\n onMouseMove(event);\n }\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n if (component && component.onParentMouseMove) {\n component.onParentMouseMove(event);\n }\n });\n };\n this._mouseUpHandler = function (event) {\n var _props6 = _this3.props,\n onMouseUp = _props6.onMouseUp,\n children = _props6.children;\n if (onMouseUp) {\n onMouseUp(event);\n }\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n if (component && component.onParentMouseUp) {\n component.onParentMouseUp(event);\n }\n });\n };\n this._touchCancelHandler = function (event) {\n var onTouchCancel = _this3.props.onTouchCancel;\n if (onTouchCancel) {\n onTouchCancel(event);\n }\n };\n this._touchEndHandler = function (event) {\n var onTouchEnd = _this3.props.onTouchEnd;\n if (onTouchEnd) {\n onTouchEnd(event);\n }\n };\n this._touchMoveHandler = function (event) {\n var _props7 = _this3.props,\n onTouchMove = _props7.onTouchMove,\n children = _props7.children;\n if (onTouchMove) {\n onTouchMove(event);\n }\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n if (component && component.onParentTouchMove) {\n component.onParentTouchMove(event);\n }\n });\n };\n this._touchStartHandler = function (event) {\n var _props8 = _this3.props,\n onTouchStart = _props8.onTouchStart,\n children = _props8.children;\n if (onTouchStart) {\n onTouchStart(event);\n }\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n if (component && component.onParentTouchStart) {\n component.onParentTouchStart(event);\n }\n });\n };\n this._wheelHandler = function (event) {\n var onWheel = _this3.props.onWheel;\n if (onWheel) {\n onWheel(event);\n }\n };\n};\nXYPlot.displayName = 'XYPlot';\nexport default XYPlot;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport { ORIENTATION } from '../../utils/axis-utils';\nvar LEFT = ORIENTATION.LEFT,\n RIGHT = ORIENTATION.RIGHT,\n TOP = ORIENTATION.TOP;\nvar defaultProps = {\n style: {}\n};\nfunction AxisLine(_ref) {\n var orientation = _ref.orientation,\n width = _ref.width,\n height = _ref.height,\n style = _ref.style;\n var lineProps = void 0;\n if (orientation === LEFT) {\n lineProps = {\n x1: width,\n x2: width,\n y1: 0,\n y2: height\n };\n } else if (orientation === RIGHT) {\n lineProps = {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: height\n };\n } else if (orientation === TOP) {\n lineProps = {\n x1: 0,\n x2: width,\n y1: height,\n y2: height\n };\n } else {\n lineProps = {\n x1: 0,\n x2: width,\n y1: 0,\n y2: 0\n };\n }\n return React.createElement('line', _extends({}, lineProps, {\n className: 'rv-xy-plot__axis__line',\n style: style\n }));\n}\nAxisLine.defaultProps = defaultProps;\nAxisLine.displayName = 'AxisLine';\nexport default AxisLine;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport { ORIENTATION, getTickValues } from '../../utils/axis-utils';\nimport { getAttributeScale } from '../../utils/scales-utils';\nvar LEFT = ORIENTATION.LEFT,\n RIGHT = ORIENTATION.RIGHT,\n TOP = ORIENTATION.TOP,\n BOTTOM = ORIENTATION.BOTTOM;\nvar defaultProps = {\n style: {}\n};\nfunction _getTickFormatFn(scale, tickTotal, tickFormat) {\n return !tickFormat ? scale.tickFormat ? scale.tickFormat(tickTotal) : function (v) {\n return v;\n } : tickFormat;\n}\nvar AxisTicks = function (_React$Component) {\n _inherits(AxisTicks, _React$Component);\n function AxisTicks() {\n _classCallCheck(this, AxisTicks);\n return _possibleConstructorReturn(this, (AxisTicks.__proto__ || Object.getPrototypeOf(AxisTicks)).apply(this, arguments));\n }\n _createClass(AxisTicks, [{\n key: '_areTicksWrapped',\n /**\n * Check if axis ticks should be mirrored (for the right and top positions.\n * @returns {boolean} True if mirrored.\n * @private\n */\n value: function _areTicksWrapped() {\n var orientation = this.props.orientation;\n return orientation === LEFT || orientation === TOP;\n }\n }, {\n key: '_getTickContainerPropsGetterFn',\n value: function _getTickContainerPropsGetterFn() {\n if (this._isAxisVertical()) {\n return function (pos) {\n return {\n transform: 'translate(0, ' + pos + ')'\n };\n };\n }\n return function (pos) {\n return {\n transform: 'translate(' + pos + ', 0)'\n };\n };\n }\n\n /**\n * Get attributes for the label of the tick.\n * @returns {Object} Object with properties.\n * @private\n */\n }, {\n key: '_getTickLabelProps',\n value: function _getTickLabelProps() {\n var _props = this.props,\n orientation = _props.orientation,\n tickLabelAngle = _props.tickLabelAngle,\n tickSize = _props.tickSize,\n _props$tickSizeOuter = _props.tickSizeOuter,\n tickSizeOuter = _props$tickSizeOuter === undefined ? tickSize : _props$tickSizeOuter,\n _props$tickPadding = _props.tickPadding,\n tickPadding = _props$tickPadding === undefined ? tickSize : _props$tickPadding;\n\n // Assign the text orientation inside the label of the tick mark.\n\n var textAnchor = void 0;\n if (orientation === LEFT || orientation === BOTTOM && tickLabelAngle) {\n textAnchor = 'end';\n } else if (orientation === RIGHT || orientation === TOP && tickLabelAngle) {\n textAnchor = 'start';\n } else {\n textAnchor = 'middle';\n }\n\n // The label's position is translated to the given padding and then the\n // label is rotated to the given angle.\n var isVertical = this._isAxisVertical();\n var wrap = this._areTicksWrapped() ? -1 : 1;\n var labelOffset = wrap * (tickSizeOuter + tickPadding);\n var transform = (isVertical ? 'translate(' + labelOffset + ', 0)' : 'translate(0, ' + labelOffset + ')') + (tickLabelAngle ? ' rotate(' + tickLabelAngle + ')' : '');\n\n // Set the vertical offset of the label according to the position of\n // the axis.\n var dy = orientation === TOP || tickLabelAngle ? '0' : orientation === BOTTOM ? '0.72em' : '0.32em';\n return {\n textAnchor: textAnchor,\n dy: dy,\n transform: transform\n };\n }\n\n /**\n * Get the props of the tick line.\n * @returns {Object} Props.\n * @private\n */\n }, {\n key: '_getTickLineProps',\n value: function _getTickLineProps() {\n var _ref;\n var _props2 = this.props,\n tickSize = _props2.tickSize,\n _props2$tickSizeOuter = _props2.tickSizeOuter,\n tickSizeOuter = _props2$tickSizeOuter === undefined ? tickSize : _props2$tickSizeOuter,\n _props2$tickSizeInner = _props2.tickSizeInner,\n tickSizeInner = _props2$tickSizeInner === undefined ? tickSize : _props2$tickSizeInner;\n var isVertical = this._isAxisVertical();\n var tickXAttr = isVertical ? 'y' : 'x';\n var tickYAttr = isVertical ? 'x' : 'y';\n var wrap = this._areTicksWrapped() ? -1 : 1;\n return _ref = {}, _defineProperty(_ref, tickXAttr + '1', 0), _defineProperty(_ref, tickXAttr + '2', 0), _defineProperty(_ref, tickYAttr + '1', -wrap * tickSizeInner), _defineProperty(_ref, tickYAttr + '2', wrap * tickSizeOuter), _ref;\n }\n\n /**\n * Gets if the axis is vertical.\n * @returns {boolean} True if vertical.\n * @private\n */\n }, {\n key: '_isAxisVertical',\n value: function _isAxisVertical() {\n var orientation = this.props.orientation;\n return orientation === LEFT || orientation === RIGHT;\n }\n }, {\n key: 'render',\n value: function render() {\n var _props3 = this.props,\n attr = _props3.attr,\n orientation = _props3.orientation,\n width = _props3.width,\n height = _props3.height,\n style = _props3.style,\n tickFormat = _props3.tickFormat,\n tickTotal = _props3.tickTotal,\n tickValues = _props3.tickValues;\n var x = orientation === LEFT ? width : 0;\n var y = orientation === TOP ? height : 0;\n var scale = getAttributeScale(this.props, attr);\n var values = getTickValues(scale, tickTotal, tickValues);\n var tickFormatFn = _getTickFormatFn(scale, tickTotal, tickFormat);\n var translateFn = this._getTickContainerPropsGetterFn();\n var pathProps = this._getTickLineProps();\n var textProps = this._getTickLabelProps();\n var ticks = values.map(function (v, i) {\n var pos = scale(v);\n var labelNode = tickFormatFn(v, i, scale, tickTotal);\n var shouldRenderAsOwnNode = React.isValidElement(labelNode) && !['tspan', 'textPath'].includes(labelNode.type);\n var shouldAddProps = labelNode && typeof labelNode.type !== 'string';\n return React.createElement('g', _extends({\n key: i\n }, translateFn(pos, 0), {\n className: 'rv-xy-plot__axis__tick',\n style: style\n }), React.createElement('line', _extends({}, pathProps, {\n className: 'rv-xy-plot__axis__tick__line',\n style: _extends({}, style, style.line)\n })), shouldRenderAsOwnNode ? React.cloneElement(labelNode, shouldAddProps ? _extends({}, textProps, {\n containerWidth: width,\n tickCount: values.length\n }) : undefined) : React.createElement('text', _extends({}, textProps, {\n className: 'rv-xy-plot__axis__tick__text',\n style: _extends({}, style, style.text)\n }), labelNode));\n });\n return React.createElement('g', {\n transform: 'translate(' + x + ', ' + y + ')',\n className: 'rv-xy-plot__axis__ticks'\n }, ticks);\n }\n }]);\n return AxisTicks;\n}(React.Component);\nAxisTicks.defaultProps = defaultProps;\nAxisTicks.displayName = 'AxisTicks';\nAxisTicks.requiresSVG = true;\nexport default AxisTicks;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport { ORIENTATION } from '../../utils/axis-utils';\n\n// Assuming that 16px = 1em\nvar ADJUSTMENT_FOR_TEXT_SIZE = 16;\nvar MARGIN = 6;\nvar LEFT = ORIENTATION.LEFT,\n RIGHT = ORIENTATION.RIGHT,\n TOP = ORIENTATION.TOP,\n BOTTOM = ORIENTATION.BOTTOM;\nvar defaultProps = {\n position: 'end'\n};\n\n/**\n * Compute transformations, keyed by orientation\n * @param {number} width - width of axis\n * @param {number} height - height of axis\n * @returns {Object} Object of transformations, keyed by orientation\n */\nvar transformation = function transformation(width, height) {\n var _ref;\n return _ref = {}, _defineProperty(_ref, LEFT, {\n end: {\n x: ADJUSTMENT_FOR_TEXT_SIZE,\n y: MARGIN,\n rotation: -90,\n textAnchor: 'end'\n },\n middle: {\n x: ADJUSTMENT_FOR_TEXT_SIZE,\n y: height / 2 - MARGIN,\n rotation: -90,\n textAnchor: 'middle'\n },\n start: {\n x: ADJUSTMENT_FOR_TEXT_SIZE,\n y: height - MARGIN,\n rotation: -90,\n textAnchor: 'start'\n }\n }), _defineProperty(_ref, RIGHT, {\n end: {\n x: ADJUSTMENT_FOR_TEXT_SIZE * -0.5,\n y: MARGIN,\n rotation: -90,\n textAnchor: 'end'\n },\n middle: {\n x: ADJUSTMENT_FOR_TEXT_SIZE * -0.5,\n y: height / 2 - MARGIN,\n rotation: -90,\n textAnchor: 'middle'\n },\n start: {\n x: ADJUSTMENT_FOR_TEXT_SIZE * -0.5,\n y: height - MARGIN,\n rotation: -90,\n textAnchor: 'start'\n }\n }), _defineProperty(_ref, TOP, {\n start: {\n x: MARGIN,\n y: ADJUSTMENT_FOR_TEXT_SIZE,\n rotation: 0,\n textAnchor: 'start'\n },\n middle: {\n x: width / 2 - MARGIN,\n y: ADJUSTMENT_FOR_TEXT_SIZE,\n rotation: 0,\n textAnchor: 'middle'\n },\n end: {\n x: width - MARGIN,\n y: ADJUSTMENT_FOR_TEXT_SIZE,\n rotation: 0,\n textAnchor: 'end'\n }\n }), _defineProperty(_ref, BOTTOM, {\n start: {\n x: MARGIN,\n y: -MARGIN,\n rotation: 0,\n textAnchor: 'start'\n },\n middle: {\n x: width / 2 - MARGIN,\n y: -MARGIN,\n rotation: 0,\n textAnchor: 'middle'\n },\n end: {\n x: width - MARGIN,\n y: -MARGIN,\n rotation: 0,\n textAnchor: 'end'\n }\n }), _ref;\n};\nfunction AxisTitle(_ref2) {\n var orientation = _ref2.orientation,\n position = _ref2.position,\n width = _ref2.width,\n height = _ref2.height,\n style = _ref2.style,\n title = _ref2.title;\n var outerGroupTranslateX = orientation === LEFT ? width : 0;\n var outerGroupTranslateY = orientation === TOP ? height : 0;\n var outerGroupTransform = 'translate(' + outerGroupTranslateX + ', ' + outerGroupTranslateY + ')';\n var _transformation$orien = transformation(width, height)[orientation][position],\n x = _transformation$orien.x,\n y = _transformation$orien.y,\n rotation = _transformation$orien.rotation,\n textAnchor = _transformation$orien.textAnchor;\n var innerGroupTransform = 'translate(' + x + ', ' + y + ') rotate(' + rotation + ')';\n return React.createElement('g', {\n transform: outerGroupTransform,\n className: 'rv-xy-plot__axis__title'\n }, React.createElement('g', {\n style: _extends({\n textAnchor: textAnchor\n }, style),\n transform: innerGroupTransform\n }, React.createElement('text', {\n style: style\n }, title)));\n}\nAxisTitle.displayName = 'AxisTitle';\nAxisTitle.defaultProps = defaultProps;\nexport default AxisTitle;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React, { PureComponent } from 'react';\nimport Animation from '../../animation';\nimport { ORIENTATION, getTicksTotalFromSize } from '../../utils/axis-utils';\nimport { getAttributeScale } from '../../utils/scales-utils';\nimport AxisLine from './axis-line';\nimport AxisTicks from './axis-ticks';\nimport AxisTitle from './axis-title';\nvar defaultAnimatedProps = ['xRange', 'yRange', 'xDomain', 'yDomain', 'width', 'height', 'marginLeft', 'marginTop', 'marginRight', 'marginBottom', 'tickSize', 'tickTotal', 'tickSizeInner', 'tickSizeOuter'];\nvar LEFT = ORIENTATION.LEFT,\n RIGHT = ORIENTATION.RIGHT,\n TOP = ORIENTATION.TOP,\n BOTTOM = ORIENTATION.BOTTOM;\nvar defaultProps = {\n className: '',\n on0: false,\n style: {},\n tickSize: 6,\n tickPadding: 8,\n orientation: BOTTOM\n};\nvar predefinedClassName = 'rv-xy-plot__axis';\nvar VERTICAL_CLASS_NAME = 'rv-xy-plot__axis--vertical';\nvar HORIZONTAL_CLASS_NAME = 'rv-xy-plot__axis--horizontal';\nvar Axis = function (_PureComponent) {\n _inherits(Axis, _PureComponent);\n function Axis() {\n _classCallCheck(this, Axis);\n return _possibleConstructorReturn(this, (Axis.__proto__ || Object.getPrototypeOf(Axis)).apply(this, arguments));\n }\n _createClass(Axis, [{\n key: '_getDefaultAxisProps',\n /**\n * Define the default values depending on the data passed from the outside.\n * @returns {*} Object of default properties.\n * @private\n */\n value: function _getDefaultAxisProps() {\n var _props = this.props,\n innerWidth = _props.innerWidth,\n innerHeight = _props.innerHeight,\n marginTop = _props.marginTop,\n marginBottom = _props.marginBottom,\n marginLeft = _props.marginLeft,\n marginRight = _props.marginRight,\n orientation = _props.orientation;\n if (orientation === BOTTOM) {\n return {\n tickTotal: getTicksTotalFromSize(innerWidth),\n top: innerHeight + marginTop,\n left: marginLeft,\n width: innerWidth,\n height: marginBottom\n };\n } else if (orientation === TOP) {\n return {\n tickTotal: getTicksTotalFromSize(innerWidth),\n top: 0,\n left: marginLeft,\n width: innerWidth,\n height: marginTop\n };\n } else if (orientation === LEFT) {\n return {\n tickTotal: getTicksTotalFromSize(innerHeight),\n top: marginTop,\n left: 0,\n width: marginLeft,\n height: innerHeight\n };\n }\n return {\n tickTotal: getTicksTotalFromSize(innerHeight),\n top: marginTop,\n left: marginLeft + innerWidth,\n width: marginRight,\n height: innerHeight\n };\n }\n }, {\n key: 'render',\n value: function render() {\n var animation = this.props.animation;\n if (animation) {\n var animatedProps = animation.nonAnimatedProps ? defaultAnimatedProps.filter(function (prop) {\n return animation.nonAnimatedProps.indexOf(prop) < 0;\n }) : defaultAnimatedProps;\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: animatedProps\n }), React.createElement(Axis, _extends({}, this.props, {\n animation: null\n })));\n }\n var props = _extends({}, this._getDefaultAxisProps(), this.props);\n var attrAxis = props.attrAxis,\n className = props.className,\n height = props.height,\n hideLine = props.hideLine,\n hideTicks = props.hideTicks,\n left = props.left,\n marginTop = props.marginTop,\n on0 = props.on0,\n orientation = props.orientation,\n position = props.position,\n style = props.style,\n title = props.title,\n top = props.top,\n width = props.width;\n var isVertical = [LEFT, RIGHT].indexOf(orientation) > -1;\n var axisClassName = isVertical ? VERTICAL_CLASS_NAME : HORIZONTAL_CLASS_NAME;\n var leftPos = left;\n var topPos = top;\n if (on0) {\n var scale = getAttributeScale(props, attrAxis);\n if (isVertical) {\n leftPos = scale(0);\n } else {\n topPos = marginTop + scale(0);\n }\n }\n return React.createElement('g', {\n transform: 'translate(' + leftPos + ',' + topPos + ')',\n className: predefinedClassName + ' ' + axisClassName + ' ' + className,\n style: style\n }, !hideLine && React.createElement(AxisLine, {\n height: height,\n width: width,\n orientation: orientation,\n style: _extends({}, style, style.line)\n }), !hideTicks && React.createElement(AxisTicks, _extends({}, props, {\n style: _extends({}, style, style.ticks)\n })), title ? React.createElement(AxisTitle, {\n position: position,\n title: title,\n height: height,\n width: width,\n style: _extends({}, style, style.title),\n orientation: orientation\n }) : null);\n }\n }]);\n return Axis;\n}(PureComponent);\nAxis.displayName = 'Axis';\nAxis.defaultProps = defaultProps;\nAxis.requiresSVG = true;\nexport default Axis;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport { ORIENTATION } from '../../utils/axis-utils';\nimport Axis from './axis';\nvar BOTTOM = ORIENTATION.BOTTOM;\nvar defaultProps = {\n orientation: BOTTOM,\n attr: 'x',\n attrAxis: 'y'\n};\nfunction XAxis(props) {\n return React.createElement(Axis, props);\n}\nXAxis.displayName = 'XAxis';\nXAxis.defaultProps = defaultProps;\nXAxis.requiresSVG = true;\nexport default XAxis;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport { ORIENTATION } from '../../utils/axis-utils';\nimport Axis from './axis';\nvar LEFT = ORIENTATION.LEFT;\nvar defaultProps = {\n orientation: LEFT,\n attr: 'y',\n attrAxis: 'x'\n};\nfunction YAxis(props) {\n return React.createElement(Axis, props);\n}\nYAxis.displayName = 'YAxis';\nYAxis.defaultProps = defaultProps;\nYAxis.requiresSVG = true;\nexport default YAxis;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport { CONTINUOUS_COLOR_RANGE } from '../theme';\nvar defaultProps = {\n className: '',\n startColor: CONTINUOUS_COLOR_RANGE[0],\n endColor: CONTINUOUS_COLOR_RANGE[1]\n};\nfunction ContinuousColorLegend(_ref) {\n var startColor = _ref.startColor,\n midColor = _ref.midColor,\n endColor = _ref.endColor,\n startTitle = _ref.startTitle,\n midTitle = _ref.midTitle,\n endTitle = _ref.endTitle,\n height = _ref.height,\n width = _ref.width,\n className = _ref.className;\n var colors = [startColor];\n if (midColor) {\n colors.push(midColor);\n }\n colors.push(endColor);\n return React.createElement('div', {\n className: 'rv-continuous-color-legend ' + className,\n style: {\n width: width,\n height: height\n }\n }, React.createElement('div', {\n className: 'rv-gradient',\n style: {\n background: 'linear-gradient(to right, ' + colors.join(',') + ')'\n }\n }), React.createElement('div', {\n className: 'rv-legend-titles'\n }, React.createElement('span', {\n className: 'rv-legend-titles__left'\n }, startTitle), React.createElement('span', {\n className: 'rv-legend-titles__right'\n }, endTitle), midTitle ? React.createElement('span', {\n className: 'rv-legend-titles__center'\n }, midTitle) : null));\n}\nContinuousColorLegend.displayName = 'ContinuousColorLegend';\nContinuousColorLegend.defaultProps = defaultProps;\nexport default ContinuousColorLegend;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nvar defaultProps = {\n circlesTotal: 10,\n className: '',\n endSize: 20,\n startSize: 2\n};\nfunction ContinuousSizeLegend(_ref) {\n var startTitle = _ref.startTitle,\n endTitle = _ref.endTitle,\n startSize = _ref.startSize,\n endSize = _ref.endSize,\n circlesTotal = _ref.circlesTotal,\n height = _ref.height,\n width = _ref.width,\n className = _ref.className;\n var circles = [];\n var step = (endSize - startSize) / (circlesTotal - 1);\n for (var i = 0; i < circlesTotal; i++) {\n var size = step * i + startSize;\n circles.push(React.createElement('div', {\n key: i,\n className: 'rv-bubble',\n style: {\n width: size,\n height: size,\n borderRadius: size / 2\n }\n }));\n // Add the separator in order to justify the content (otherwise the tags\n // will be stacked together without any margins around).\n circles.push(' ');\n }\n return React.createElement('div', {\n className: 'rv-continuous-size-legend ' + className,\n style: {\n width: width,\n height: height\n }\n }, React.createElement('div', {\n className: 'rv-bubbles',\n style: {\n height: endSize\n }\n }, circles, React.createElement('div', {\n className: 'rv-spacer'\n })), React.createElement('div', {\n className: 'rv-legend-titles'\n }, React.createElement('span', {\n className: 'rv-legend-titles__left'\n }, startTitle), React.createElement('span', {\n className: 'rv-legend-titles__right'\n }, endTitle)));\n}\nContinuousSizeLegend.displayName = 'ContinuousSizeLegend';\nContinuousSizeLegend.defaultProps = defaultProps;\nexport default ContinuousSizeLegend;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nvar STROKE_STYLES = {\n dashed: '6, 2',\n solid: null\n};\nfunction DiscreteColorLegendItem(_ref) {\n var color = _ref.color,\n strokeDasharray = _ref.strokeDasharray,\n strokeStyle = _ref.strokeStyle,\n strokeWidth = _ref.strokeWidth,\n disabled = _ref.disabled,\n onClick = _ref.onClick,\n orientation = _ref.orientation,\n onMouseEnter = _ref.onMouseEnter,\n onMouseLeave = _ref.onMouseLeave,\n title = _ref.title;\n var className = 'rv-discrete-color-legend-item ' + orientation;\n if (disabled) {\n className += ' disabled';\n }\n if (onClick) {\n className += ' clickable';\n }\n var strokeDasharrayStyle = STROKE_STYLES[strokeStyle] || strokeDasharray;\n return React.createElement('div', {\n className: className,\n onClick: onClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n }, React.createElement('svg', {\n className: 'rv-discrete-color-legend-item__color',\n height: 2,\n width: 14\n }, React.createElement('path', {\n className: 'rv-discrete-color-legend-item__color__path',\n d: 'M 0, 1 L 14, 1',\n style: _extends({}, strokeWidth ? {\n strokeWidth: strokeWidth\n } : {}, strokeDasharrayStyle ? {\n strokeDasharray: strokeDasharrayStyle\n } : {}, {\n stroke: disabled ? null : color\n })\n })), React.createElement('span', {\n className: 'rv-discrete-color-legend-item__title'\n }, title));\n}\nDiscreteColorLegendItem.defaultProps = {\n disabled: false,\n strokeStyle: 'solid'\n};\nDiscreteColorLegendItem.displayName = 'DiscreteColorLegendItem';\nexport default DiscreteColorLegendItem;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport DiscreteColorLegendItem from './discrete-color-legend-item';\nimport { DISCRETE_COLOR_RANGE } from '../theme';\nfunction DiscreteColorLegend(_ref) {\n var className = _ref.className,\n colors = _ref.colors,\n height = _ref.height,\n items = _ref.items,\n onItemClick = _ref.onItemClick,\n onItemMouseEnter = _ref.onItemMouseEnter,\n onItemMouseLeave = _ref.onItemMouseLeave,\n orientation = _ref.orientation,\n style = _ref.style,\n width = _ref.width;\n return React.createElement('div', {\n className: 'rv-discrete-color-legend ' + orientation + ' ' + className,\n style: _extends({\n width: width,\n height: height\n }, style)\n }, items.map(function (item, i) {\n return React.createElement(DiscreteColorLegendItem, {\n title: item.title ? item.title : item,\n color: item.color ? item.color : colors[i % colors.length],\n strokeDasharray: item.strokeDasharray,\n strokeStyle: item.strokeStyle,\n strokeWidth: item.strokeWidth,\n disabled: Boolean(item.disabled),\n orientation: orientation,\n key: i,\n onClick: onItemClick ? function (e) {\n return onItemClick(item, i, e);\n } : null,\n onMouseEnter: onItemMouseEnter ? function (e) {\n return onItemMouseEnter(item, i, e);\n } : null,\n onMouseLeave: onItemMouseEnter ? function (e) {\n return onItemMouseLeave(item, i, e);\n } : null\n });\n }));\n}\nDiscreteColorLegend.displayName = 'DiscreteColorLegendItem';\nDiscreteColorLegend.defaultProps = {\n className: '',\n colors: DISCRETE_COLOR_RANGE,\n orientation: 'vertical'\n};\nexport default DiscreteColorLegend;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport DiscreteColorLegend from './discrete-color-legend';\nvar defaultProps = {\n className: '',\n searchText: '',\n searchFn: function searchFn(items, s) {\n return items.filter(function (item) {\n return String(item.title || item).toLowerCase().indexOf(s) !== -1;\n });\n }\n};\nfunction SearchableDiscreteColorLegend(props) {\n var className = props.className,\n colors = props.colors,\n height = props.height,\n items = props.items,\n onItemClick = props.onItemClick,\n onSearchChange = props.onSearchChange,\n orientation = props.orientation,\n searchFn = props.searchFn,\n searchPlaceholder = props.searchPlaceholder,\n searchText = props.searchText,\n width = props.width;\n var onChange = onSearchChange ? function (_ref) {\n var value = _ref.target.value;\n return onSearchChange(value);\n } : null;\n var filteredItems = searchFn(items, searchText);\n return React.createElement('div', {\n className: 'rv-search-wrapper ' + className,\n style: {\n width: width,\n height: height\n }\n }, React.createElement('form', {\n className: 'rv-search-wrapper__form'\n }, React.createElement('input', {\n type: 'search',\n placeholder: searchPlaceholder,\n className: 'rv-search-wrapper__form__input',\n value: searchText,\n onChange: onChange\n })), React.createElement('div', {\n className: 'rv-search-wrapper__contents'\n }, React.createElement(DiscreteColorLegend, {\n colors: colors,\n items: filteredItems,\n onItemClick: onItemClick,\n orientation: orientation\n })));\n}\nSearchableDiscreteColorLegend.defaultProps = defaultProps;\nSearchableDiscreteColorLegend.displayName = 'SearchableDiscreteColorLegend';\nexport default SearchableDiscreteColorLegend;","import \"core-js/modules/es.array.reduce.js\";\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React, { Component } from 'react';\nimport { scaleLinear } from 'd3-scale';\nimport { format } from 'd3-format';\nimport { AnimationPropType } from '../animation';\nimport XYPlot from '../plot/xy-plot';\nimport { DISCRETE_COLOR_RANGE } from '../theme';\nimport { MarginPropType, getInnerDimensions, DEFAULT_MARGINS } from '../utils/chart-utils';\nimport LineSeries from '../plot/series/line-series';\nimport LineMarkSeries from '../plot/series/line-mark-series';\nimport LabelSeries from '../plot/series/label-series';\nimport DecorativeAxis from '../plot/axis/decorative-axis';\nimport Highlight from '../plot/highlight';\nvar predefinedClassName = 'rv-parallel-coordinates-chart';\nvar DEFAULT_FORMAT = format('.2r');\n/**\n * Generate axes for each of the domains\n * @param {Object} props\n - props.animation {Boolean}\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.style {object} style object for the whole chart\n - props.tickFormat {Function} formatting function for axes\n * @return {Array} the plotted axis components\n */\nfunction getAxes(props) {\n var animation = props.animation,\n domains = props.domains,\n style = props.style,\n tickFormat = props.tickFormat;\n return domains.map(function (domain, index) {\n var sortedDomain = domain.domain;\n var domainTickFormat = function domainTickFormat(t) {\n return domain.tickFormat ? domain.tickFormat(t) : tickFormat(t);\n };\n return React.createElement(DecorativeAxis, {\n animation: animation,\n key: index + '-axis',\n axisStart: {\n x: domain.name,\n y: 0\n },\n axisEnd: {\n x: domain.name,\n y: 1\n },\n axisDomain: sortedDomain,\n numberOfTicks: 5,\n tickValue: domainTickFormat,\n style: style.axes\n });\n });\n}\n\n/**\n * Generate labels for the ends of the axes\n * @param {Object} props\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.style {object} style object for just the labels\n * @return {Array} the prepped data for the labelSeries\n */\nfunction getLabels(props) {\n var domains = props.domains,\n style = props.style;\n return domains.map(function (domain, index) {\n return {\n x: domain.name,\n y: 1.1,\n label: domain.name,\n style: style\n };\n });\n}\n\n/**\n * Generate the actual lines to be plotted\n * @param {Object} props\n - props.animation {Boolean}\n - props.data {Array} array of object specifying what values are to be plotted\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.style {object} style object for the whole chart\n - props.showMarks {Bool} whether or not to use the line mark series\n * @return {Array} the plotted axis components\n */\nfunction getLines(props) {\n var animation = props.animation,\n brushFilters = props.brushFilters,\n colorRange = props.colorRange,\n domains = props.domains,\n data = props.data,\n style = props.style,\n showMarks = props.showMarks;\n var scales = domains.reduce(function (acc, _ref) {\n var domain = _ref.domain,\n name = _ref.name;\n acc[name] = scaleLinear().domain(domain).range([0, 1]);\n return acc;\n }, {});\n // const\n\n return data.map(function (row, rowIndex) {\n var withinFilteredRange = true;\n var mappedData = domains.map(function (domain, index) {\n var getValue = domain.getValue,\n name = domain.name;\n\n // watch out! Gotcha afoot\n // yVal after being scale is in [0, 1] range\n\n var yVal = scales[name](getValue ? getValue(row) : row[name]);\n var filter = brushFilters[name];\n // filter value after being scale back from pixel space is also in [0, 1]\n if (filter && (yVal < filter.min || yVal > filter.max)) {\n withinFilteredRange = false;\n }\n return {\n x: name,\n y: yVal\n };\n });\n var selectedName = predefinedClassName + '-line';\n var unselectedName = selectedName + ' ' + predefinedClassName + '-line-unselected';\n var lineProps = {\n animation: animation,\n className: withinFilteredRange ? selectedName : unselectedName,\n key: rowIndex + '-polygon',\n data: mappedData,\n color: row.color || colorRange[rowIndex % colorRange.length],\n style: _extends({}, style.lines, row.style || {})\n };\n if (!withinFilteredRange) {\n lineProps.style = _extends({}, lineProps.style, style.deselectedLineStyle);\n }\n return showMarks ? React.createElement(LineMarkSeries, lineProps) : React.createElement(LineSeries, lineProps);\n });\n}\nvar ParallelCoordinates = function (_Component) {\n _inherits(ParallelCoordinates, _Component);\n function ParallelCoordinates() {\n var _ref2;\n var _temp, _this, _ret;\n _classCallCheck(this, ParallelCoordinates);\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = ParallelCoordinates.__proto__ || Object.getPrototypeOf(ParallelCoordinates)).call.apply(_ref2, [this].concat(args))), _this), _this.state = {\n brushFilters: {}\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n _createClass(ParallelCoordinates, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n var brushFilters = this.state.brushFilters;\n var _props = this.props,\n animation = _props.animation,\n brushing = _props.brushing,\n className = _props.className,\n children = _props.children,\n colorRange = _props.colorRange,\n data = _props.data,\n domains = _props.domains,\n height = _props.height,\n hideInnerMostValues = _props.hideInnerMostValues,\n margin = _props.margin,\n onMouseLeave = _props.onMouseLeave,\n onMouseEnter = _props.onMouseEnter,\n showMarks = _props.showMarks,\n style = _props.style,\n tickFormat = _props.tickFormat,\n width = _props.width;\n var axes = getAxes({\n domains: domains,\n animation: animation,\n hideInnerMostValues: hideInnerMostValues,\n style: style,\n tickFormat: tickFormat\n });\n var lines = getLines({\n animation: animation,\n brushFilters: brushFilters,\n colorRange: colorRange,\n domains: domains,\n data: data,\n showMarks: showMarks,\n style: style\n });\n var labelSeries = React.createElement(LabelSeries, {\n animation: true,\n key: className,\n className: predefinedClassName + '-label',\n data: getLabels({\n domains: domains,\n style: style.labels\n })\n });\n var _getInnerDimensions = getInnerDimensions(this.props, DEFAULT_MARGINS),\n marginLeft = _getInnerDimensions.marginLeft,\n marginRight = _getInnerDimensions.marginRight;\n return React.createElement(XYPlot, {\n height: height,\n width: width,\n margin: margin,\n dontCheckIfEmpty: true,\n className: className + ' ' + predefinedClassName,\n onMouseLeave: onMouseLeave,\n onMouseEnter: onMouseEnter,\n xType: 'ordinal',\n yDomain: [0, 1]\n }, children, axes.concat(lines).concat(labelSeries), brushing && domains.map(function (d) {\n var trigger = function trigger(row) {\n _this2.setState({\n brushFilters: _extends({}, brushFilters, _defineProperty({}, d.name, row ? {\n min: row.bottom,\n max: row.top\n } : null))\n });\n };\n return React.createElement(Highlight, {\n key: d.name,\n drag: true,\n highlightX: d.name,\n onBrushEnd: trigger,\n onDragEnd: trigger,\n highlightWidth: (width - marginLeft - marginRight) / domains.length,\n enableX: false\n });\n }));\n }\n }]);\n return ParallelCoordinates;\n}(Component);\nParallelCoordinates.displayName = 'ParallelCoordinates';\nParallelCoordinates.defaultProps = {\n className: '',\n colorType: 'category',\n colorRange: DISCRETE_COLOR_RANGE,\n style: {\n axes: {\n line: {},\n ticks: {},\n text: {}\n },\n labels: {\n fontSize: 10,\n textAnchor: 'middle'\n },\n lines: {\n strokeWidth: 1,\n strokeOpacity: 1\n },\n deselectedLineStyle: {\n strokeOpacity: 0.1\n }\n },\n tickFormat: DEFAULT_FORMAT\n};\nexport default ParallelCoordinates;","import \"core-js/modules/es.array.reduce.js\";\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport { scaleLinear } from 'd3-scale';\nimport { format } from 'd3-format';\nimport { AnimationPropType } from '../animation';\nimport XYPlot from '../plot/xy-plot';\nimport { DISCRETE_COLOR_RANGE } from '../theme';\nimport { MarginPropType } from '../utils/chart-utils';\nimport MarkSeries from '../plot/series/mark-series';\nimport PolygonSeries from '../plot/series/polygon-series';\nimport LabelSeries from '../plot/series/label-series';\nimport DecorativeAxis from '../plot/axis/decorative-axis';\nvar predefinedClassName = 'rv-radar-chart';\nvar DEFAULT_FORMAT = format('.2r');\n/**\n * Generate axes for each of the domains\n * @param {Object} props\n - props.animation {Boolean}\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.style {object} style object for the whole chart\n - props.tickFormat {Function} formatting function for axes\n - props.startingAngle {number} the initial angle offset\n * @return {Array} the plotted axis components\n */\nfunction getAxes(props) {\n var animation = props.animation,\n domains = props.domains,\n startingAngle = props.startingAngle,\n style = props.style,\n tickFormat = props.tickFormat,\n hideInnerMostValues = props.hideInnerMostValues;\n return domains.map(function (domain, index) {\n var angle = index / domains.length * Math.PI * 2 + startingAngle;\n var sortedDomain = domain.domain;\n var domainTickFormat = function domainTickFormat(t) {\n if (hideInnerMostValues && t === sortedDomain[0]) {\n return '';\n }\n return domain.tickFormat ? domain.tickFormat(t) : tickFormat(t);\n };\n return React.createElement(DecorativeAxis, {\n animation: animation,\n key: index + '-axis',\n axisStart: {\n x: 0,\n y: 0\n },\n axisEnd: {\n x: getCoordinate(Math.cos(angle)),\n y: getCoordinate(Math.sin(angle))\n },\n axisDomain: sortedDomain,\n numberOfTicks: 5,\n tickValue: domainTickFormat,\n style: style.axes\n });\n });\n}\n\n/**\n * Generate x or y coordinate for axisEnd\n * @param {Number} axisEndPoint\n - epsilon is an arbitrarily chosen small number to approximate axisEndPoints\n - to true values resulting from trigonometry functions (sin, cos) on angles\n * @return {Number} the x or y coordinate accounting for exact trig values\n */\nfunction getCoordinate(axisEndPoint) {\n var epsilon = 10e-13;\n if (Math.abs(axisEndPoint) <= epsilon) {\n axisEndPoint = 0;\n } else if (axisEndPoint > 0) {\n if (Math.abs(axisEndPoint - 0.5) <= epsilon) {\n axisEndPoint = 0.5;\n }\n } else if (axisEndPoint < 0) {\n if (Math.abs(axisEndPoint + 0.5) <= epsilon) {\n axisEndPoint = -0.5;\n }\n }\n return axisEndPoint;\n}\n\n/**\n * Generate labels for the ends of the axes\n * @param {Object} props\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.startingAngle {number} the initial angle offset\n - props.style {object} style object for just the labels\n * @return {Array} the prepped data for the labelSeries\n */\nfunction getLabels(props) {\n var domains = props.domains,\n startingAngle = props.startingAngle,\n style = props.style;\n return domains.map(function (_ref, index) {\n var name = _ref.name;\n var angle = index / domains.length * Math.PI * 2 + startingAngle;\n var radius = 1.2;\n return {\n x: radius * Math.cos(angle),\n y: radius * Math.sin(angle),\n label: name,\n style: style\n };\n });\n}\n\n/**\n * Generate the actual polygons to be plotted\n * @param {Object} props\n - props.animation {Boolean}\n - props.data {Array} array of object specifying what values are to be plotted\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.startingAngle {number} the initial angle offset\n - props.style {object} style object for the whole chart\n * @return {Array} the plotted axis components\n */\nfunction getPolygons(props) {\n var animation = props.animation,\n colorRange = props.colorRange,\n domains = props.domains,\n data = props.data,\n style = props.style,\n startingAngle = props.startingAngle,\n onSeriesMouseOver = props.onSeriesMouseOver,\n onSeriesMouseOut = props.onSeriesMouseOut;\n var scales = domains.reduce(function (acc, _ref2) {\n var domain = _ref2.domain,\n name = _ref2.name;\n acc[name] = scaleLinear().domain(domain).range([0, 1]);\n return acc;\n }, {});\n return data.map(function (row, rowIndex) {\n var mappedData = domains.map(function (_ref3, index) {\n var name = _ref3.name,\n getValue = _ref3.getValue;\n var dataPoint = getValue ? getValue(row) : row[name];\n // error handling if point doesn't exist\n var angle = index / domains.length * Math.PI * 2 + startingAngle;\n // dont let the radius become negative\n var radius = Math.max(scales[name](dataPoint), 0);\n return {\n x: radius * Math.cos(angle),\n y: radius * Math.sin(angle),\n name: row.name\n };\n });\n return React.createElement(PolygonSeries, {\n animation: animation,\n className: predefinedClassName + '-polygon',\n key: rowIndex + '-polygon',\n data: mappedData,\n style: _extends({\n stroke: row.color || row.stroke || colorRange[rowIndex % colorRange.length],\n fill: row.color || row.fill || colorRange[rowIndex % colorRange.length]\n }, style.polygons),\n onSeriesMouseOver: onSeriesMouseOver,\n onSeriesMouseOut: onSeriesMouseOut\n });\n });\n}\n\n/**\n * Generate circles at the polygon points for Hover functionality\n * @param {Object} props\n - props.animation {Boolean}\n - props.data {Array} array of object specifying what values are to be plotted\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.startingAngle {number} the initial angle offset\n - props.style {object} style object for the whole chart\n - props.onValueMouseOver {function} function to call on mouse over a polygon point\n - props.onValueMouseOver {function} function to call when mouse leaves a polygon point\n * @return {Array} the plotted axis components\n */\nfunction getPolygonPoints(props) {\n var animation = props.animation,\n domains = props.domains,\n data = props.data,\n startingAngle = props.startingAngle,\n style = props.style,\n onValueMouseOver = props.onValueMouseOver,\n onValueMouseOut = props.onValueMouseOut;\n if (!onValueMouseOver) {\n return;\n }\n var scales = domains.reduce(function (acc, _ref4) {\n var domain = _ref4.domain,\n name = _ref4.name;\n acc[name] = scaleLinear().domain(domain).range([0, 1]);\n return acc;\n }, {});\n return data.map(function (row, rowIndex) {\n var mappedData = domains.map(function (_ref5, index) {\n var name = _ref5.name,\n getValue = _ref5.getValue;\n var dataPoint = getValue ? getValue(row) : row[name];\n // error handling if point doesn't exist\n var angle = index / domains.length * Math.PI * 2 + startingAngle;\n // dont let the radius become negative\n var radius = Math.max(scales[name](dataPoint), 0);\n return {\n x: radius * Math.cos(angle),\n y: radius * Math.sin(angle),\n domain: name,\n value: dataPoint,\n dataName: row.name\n };\n });\n return React.createElement(MarkSeries, {\n animation: animation,\n className: predefinedClassName + '-polygonPoint',\n key: rowIndex + '-polygonPoint',\n data: mappedData,\n size: 10,\n style: _extends({}, style.polygons, {\n fill: 'transparent',\n stroke: 'transparent'\n }),\n onValueMouseOver: onValueMouseOver,\n onValueMouseOut: onValueMouseOut\n });\n });\n}\nfunction RadarChart(props) {\n var animation = props.animation,\n className = props.className,\n children = props.children,\n colorRange = props.colorRange,\n data = props.data,\n domains = props.domains,\n height = props.height,\n hideInnerMostValues = props.hideInnerMostValues,\n margin = props.margin,\n onMouseLeave = props.onMouseLeave,\n onMouseEnter = props.onMouseEnter,\n startingAngle = props.startingAngle,\n style = props.style,\n tickFormat = props.tickFormat,\n width = props.width,\n renderAxesOverPolygons = props.renderAxesOverPolygons,\n onValueMouseOver = props.onValueMouseOver,\n onValueMouseOut = props.onValueMouseOut,\n onSeriesMouseOver = props.onSeriesMouseOver,\n onSeriesMouseOut = props.onSeriesMouseOut;\n var axes = getAxes({\n domains: domains,\n animation: animation,\n hideInnerMostValues: hideInnerMostValues,\n startingAngle: startingAngle,\n style: style,\n tickFormat: tickFormat\n });\n var polygons = getPolygons({\n animation: animation,\n colorRange: colorRange,\n domains: domains,\n data: data,\n startingAngle: startingAngle,\n style: style,\n onSeriesMouseOver: onSeriesMouseOver,\n onSeriesMouseOut: onSeriesMouseOut\n });\n var polygonPoints = getPolygonPoints({\n animation: animation,\n colorRange: colorRange,\n domains: domains,\n data: data,\n startingAngle: startingAngle,\n style: style,\n onValueMouseOver: onValueMouseOver,\n onValueMouseOut: onValueMouseOut\n });\n var labelSeries = React.createElement(LabelSeries, {\n animation: animation,\n key: className,\n className: predefinedClassName + '-label',\n data: getLabels({\n domains: domains,\n style: style.labels,\n startingAngle: startingAngle\n })\n });\n return React.createElement(XYPlot, {\n height: height,\n width: width,\n margin: margin,\n dontCheckIfEmpty: true,\n className: className + ' ' + predefinedClassName,\n onMouseLeave: onMouseLeave,\n onMouseEnter: onMouseEnter,\n xDomain: [-1, 1],\n yDomain: [-1, 1]\n }, children, !renderAxesOverPolygons && axes.concat(polygons).concat(labelSeries).concat(polygonPoints), renderAxesOverPolygons && polygons.concat(labelSeries).concat(axes).concat(polygonPoints));\n}\nRadarChart.displayName = 'RadarChart';\nRadarChart.defaultProps = {\n className: '',\n colorType: 'category',\n colorRange: DISCRETE_COLOR_RANGE,\n hideInnerMostValues: true,\n startingAngle: Math.PI / 2,\n style: {\n axes: {\n line: {},\n ticks: {},\n text: {}\n },\n labels: {\n fontSize: 10,\n textAnchor: 'middle'\n },\n polygons: {\n strokeWidth: 0.5,\n strokeOpacity: 1,\n fillOpacity: 0.1\n }\n },\n tickFormat: DEFAULT_FORMAT,\n renderAxesOverPolygons: false\n};\nexport default RadarChart;","import \"core-js/modules/es.array.sort.js\";\nimport \"core-js/modules/es.array.reduce.js\";\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport { pie as pieBuilder } from 'd3-shape';\nimport { AnimationPropType } from '../animation';\nimport ArcSeries from '../plot/series/arc-series';\nimport LabelSeries from '../plot/series/label-series';\nimport XYPlot from '../plot/xy-plot';\nimport { DISCRETE_COLOR_RANGE } from '../theme';\nimport { MarginPropType, getRadialLayoutMargin } from '../utils/chart-utils';\nimport { getRadialDomain } from '../utils/series-utils';\nvar predefinedClassName = 'rv-radial-chart';\nvar DEFAULT_RADIUS_MARGIN = 15;\n\n/**\n * Create the list of wedges to render.\n * @param {Object} props\n props.data {Object} - tree structured data (each node has a name anc an array of children)\n * @returns {Array} Array of nodes.\n */\nfunction getWedgesToRender(_ref) {\n var data = _ref.data,\n getAngle = _ref.getAngle;\n var pie = pieBuilder().sort(null).value(getAngle);\n var pieData = pie(data).reverse();\n return pieData.map(function (row, index) {\n return _extends({}, row.data, {\n angle0: row.startAngle,\n angle: row.endAngle,\n radius0: row.data.innerRadius || 0,\n radius: row.data.radius || 1,\n color: row.data.color || index\n });\n });\n}\nfunction generateLabels(mappedData, accessors) {\n var labelsRadiusMultiplier = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1.1;\n var getLabel = accessors.getLabel,\n getSubLabel = accessors.getSubLabel;\n return mappedData.reduce(function (res, row) {\n var angle = row.angle,\n angle0 = row.angle0,\n radius = row.radius;\n var centeredAngle = (angle + angle0) / 2;\n\n // unfortunate, but true fact: d3 starts its radians at 12 oclock rather than 3\n // and move clockwise rather than counter clockwise. why why why!\n var updatedAngle = -1 * centeredAngle + Math.PI / 2;\n var newLabels = [];\n if (getLabel(row)) {\n newLabels.push({\n angle: updatedAngle,\n radius: radius * labelsRadiusMultiplier,\n label: getLabel(row)\n });\n }\n if (getSubLabel(row)) {\n newLabels.push({\n angle: updatedAngle,\n radius: radius * labelsRadiusMultiplier,\n label: getSubLabel(row),\n style: {\n fontSize: 10\n },\n yOffset: 12\n });\n }\n return res.concat(newLabels);\n }, []);\n // could add force direction here to make sure the labels dont overlap\n}\n\n/**\n * Get the max radius so the chart can extend to the margin.\n * @param {Number} width - container width\n * @param {Number} height - container height\n * @return {Number} radius\n */\nfunction getMaxRadius(width, height) {\n return Math.min(width, height) / 2 - DEFAULT_RADIUS_MARGIN;\n}\nfunction RadialChart(props) {\n var animation = props.animation,\n className = props.className,\n children = props.children,\n colorType = props.colorType,\n data = props.data,\n getAngle = props.getAngle,\n getLabel = props.getLabel,\n getSubLabel = props.getSubLabel,\n height = props.height,\n hideRootNode = props.hideRootNode,\n innerRadius = props.innerRadius,\n labelsAboveChildren = props.labelsAboveChildren,\n labelsRadiusMultiplier = props.labelsRadiusMultiplier,\n labelsStyle = props.labelsStyle,\n margin = props.margin,\n onMouseLeave = props.onMouseLeave,\n onMouseEnter = props.onMouseEnter,\n radius = props.radius,\n showLabels = props.showLabels,\n style = props.style,\n width = props.width;\n var mappedData = getWedgesToRender({\n data: data,\n height: height,\n hideRootNode: hideRootNode,\n width: width,\n getAngle: getAngle\n });\n var radialDomain = getRadialDomain(mappedData);\n var arcProps = _extends({\n colorType: colorType\n }, props, {\n animation: animation,\n radiusDomain: [0, radialDomain],\n data: mappedData,\n radiusNoFallBack: true,\n style: style,\n arcClassName: 'rv-radial-chart__series--pie__slice'\n });\n if (radius) {\n arcProps.radiusDomain = [0, 1];\n arcProps.radiusRange = [innerRadius || 0, radius];\n arcProps.radiusType = 'linear';\n }\n var maxRadius = radius ? radius : getMaxRadius(width, height);\n var defaultMargin = getRadialLayoutMargin(width, height, maxRadius);\n var labels = generateLabels(mappedData, {\n getLabel: getLabel,\n getSubLabel: getSubLabel\n }, labelsRadiusMultiplier);\n return React.createElement(XYPlot, {\n height: height,\n width: width,\n margin: _extends({}, margin, defaultMargin),\n className: className + ' ' + predefinedClassName,\n onMouseLeave: onMouseLeave,\n onMouseEnter: onMouseEnter,\n xDomain: [-radialDomain, radialDomain],\n yDomain: [-radialDomain, radialDomain]\n }, React.createElement(ArcSeries, _extends({}, arcProps, {\n getAngle: function getAngle(d) {\n return d.angle;\n }\n })), showLabels && !labelsAboveChildren && React.createElement(LabelSeries, {\n data: labels,\n style: labelsStyle\n }), children, showLabels && labelsAboveChildren && React.createElement(LabelSeries, {\n data: labels,\n style: labelsStyle\n }));\n}\nRadialChart.displayName = 'RadialChart';\nRadialChart.defaultProps = {\n className: '',\n colorType: 'category',\n colorRange: DISCRETE_COLOR_RANGE,\n padAngle: 0,\n getAngle: function getAngle(d) {\n return d.angle;\n },\n getAngle0: function getAngle0(d) {\n return d.angle0;\n },\n getRadius: function getRadius(d) {\n return d.radius;\n },\n getRadius0: function getRadius0(d) {\n return d.radius0;\n },\n getLabel: function getLabel(d) {\n return d.label;\n },\n getSubLabel: function getSubLabel(d) {\n return d.subLabel;\n }\n};\nexport default RadialChart;","import { min } from \"d3-array\";\nfunction targetDepth(d) {\n return d.target.depth;\n}\nexport function left(node) {\n return node.depth;\n}\nexport function right(node, n) {\n return n - 1 - node.height;\n}\nexport function justify(node, n) {\n return node.sourceLinks.length ? node.depth : n - 1;\n}\nexport function center(node) {\n return node.targetLinks.length ? node.depth : node.sourceLinks.length ? min(node.sourceLinks, targetDepth) - 1 : 0;\n}","export default function constant(x) {\n return function () {\n return x;\n };\n}","import \"core-js/modules/es.array.sort.js\";\nimport { ascending, min, sum } from \"d3-array\";\nimport { map, nest } from \"d3-collection\";\nimport { justify } from \"./align\";\nimport constant from \"./constant\";\nfunction ascendingSourceBreadth(a, b) {\n return ascendingBreadth(a.source, b.source) || a.index - b.index;\n}\nfunction ascendingTargetBreadth(a, b) {\n return ascendingBreadth(a.target, b.target) || a.index - b.index;\n}\nfunction ascendingBreadth(a, b) {\n return a.y0 - b.y0;\n}\nfunction value(d) {\n return d.value;\n}\nfunction nodeCenter(node) {\n return (node.y0 + node.y1) / 2;\n}\nfunction weightedSource(link) {\n return nodeCenter(link.source) * link.value;\n}\nfunction weightedTarget(link) {\n return nodeCenter(link.target) * link.value;\n}\nfunction defaultId(d) {\n return d.index;\n}\nfunction defaultNodes(graph) {\n return graph.nodes;\n}\nfunction defaultLinks(graph) {\n return graph.links;\n}\nfunction find(nodeById, id) {\n var node = nodeById.get(id);\n if (!node) throw new Error(\"missing: \" + id);\n return node;\n}\nexport default function () {\n var x0 = 0,\n y0 = 0,\n x1 = 1,\n y1 = 1,\n // extent\n dx = 24,\n // nodeWidth\n py = 8,\n // nodePadding\n id = defaultId,\n align = justify,\n nodes = defaultNodes,\n links = defaultLinks,\n iterations = 32;\n function sankey() {\n var graph = {\n nodes: nodes.apply(null, arguments),\n links: links.apply(null, arguments)\n };\n computeNodeLinks(graph);\n computeNodeValues(graph);\n computeNodeDepths(graph);\n computeNodeBreadths(graph, iterations);\n computeLinkBreadths(graph);\n return graph;\n }\n sankey.update = function (graph) {\n computeLinkBreadths(graph);\n return graph;\n };\n sankey.nodeId = function (_) {\n return arguments.length ? (id = typeof _ === \"function\" ? _ : constant(_), sankey) : id;\n };\n sankey.nodeAlign = function (_) {\n return arguments.length ? (align = typeof _ === \"function\" ? _ : constant(_), sankey) : align;\n };\n sankey.nodeWidth = function (_) {\n return arguments.length ? (dx = +_, sankey) : dx;\n };\n sankey.nodePadding = function (_) {\n return arguments.length ? (py = +_, sankey) : py;\n };\n sankey.nodes = function (_) {\n return arguments.length ? (nodes = typeof _ === \"function\" ? _ : constant(_), sankey) : nodes;\n };\n sankey.links = function (_) {\n return arguments.length ? (links = typeof _ === \"function\" ? _ : constant(_), sankey) : links;\n };\n sankey.size = function (_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankey) : [x1 - x0, y1 - y0];\n };\n sankey.extent = function (_) {\n return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankey) : [[x0, y0], [x1, y1]];\n };\n sankey.iterations = function (_) {\n return arguments.length ? (iterations = +_, sankey) : iterations;\n };\n\n // Populate the sourceLinks and targetLinks for each node.\n // Also, if the source and target are not objects, assume they are indices.\n function computeNodeLinks(graph) {\n graph.nodes.forEach(function (node, i) {\n node.index = i;\n node.sourceLinks = [];\n node.targetLinks = [];\n });\n var nodeById = map(graph.nodes, id);\n graph.links.forEach(function (link, i) {\n link.index = i;\n var source = link.source,\n target = link.target;\n if (typeof source !== \"object\") source = link.source = find(nodeById, source);\n if (typeof target !== \"object\") target = link.target = find(nodeById, target);\n source.sourceLinks.push(link);\n target.targetLinks.push(link);\n });\n }\n\n // Compute the value (size) of each node by summing the associated links.\n function computeNodeValues(graph) {\n graph.nodes.forEach(function (node) {\n node.value = Math.max(sum(node.sourceLinks, value), sum(node.targetLinks, value));\n });\n }\n\n // Iteratively assign the depth (x-position) for each node.\n // Nodes are assigned the maximum depth of incoming neighbors plus one;\n // nodes with no incoming links are assigned depth zero, while\n // nodes with no outgoing links are assigned the maximum depth.\n function computeNodeDepths(graph) {\n var nodes, next, x;\n for (nodes = graph.nodes, next = [], x = 0; nodes.length; ++x, nodes = next, next = []) {\n nodes.forEach(function (node) {\n node.depth = x;\n node.sourceLinks.forEach(function (link) {\n if (next.indexOf(link.target) < 0) {\n next.push(link.target);\n }\n });\n });\n }\n for (nodes = graph.nodes, next = [], x = 0; nodes.length; ++x, nodes = next, next = []) {\n nodes.forEach(function (node) {\n node.height = x;\n node.targetLinks.forEach(function (link) {\n if (next.indexOf(link.source) < 0) {\n next.push(link.source);\n }\n });\n });\n }\n var kx = (x1 - x0 - dx) / (x - 1);\n graph.nodes.forEach(function (node) {\n node.x1 = (node.x0 = x0 + Math.max(0, Math.min(x - 1, Math.floor(align.call(null, node, x)))) * kx) + dx;\n });\n }\n function computeNodeBreadths(graph) {\n var columns = nest().key(function (d) {\n return d.x0;\n }).sortKeys(ascending).entries(graph.nodes).map(function (d) {\n return d.values;\n });\n\n //\n initializeNodeBreadth();\n resolveCollisions();\n for (var alpha = 1, n = iterations; n > 0; --n) {\n relaxRightToLeft(alpha *= 0.99);\n resolveCollisions();\n relaxLeftToRight(alpha);\n resolveCollisions();\n }\n function initializeNodeBreadth() {\n var ky = min(columns, function (nodes) {\n return (y1 - y0 - (nodes.length - 1) * py) / sum(nodes, value);\n });\n columns.forEach(function (nodes) {\n nodes.forEach(function (node, i) {\n node.y1 = (node.y0 = i) + node.value * ky;\n });\n });\n graph.links.forEach(function (link) {\n link.width = link.value * ky;\n });\n }\n function relaxLeftToRight(alpha) {\n columns.forEach(function (nodes) {\n nodes.forEach(function (node) {\n if (node.targetLinks.length) {\n var dy = (sum(node.targetLinks, weightedSource) / sum(node.targetLinks, value) - nodeCenter(node)) * alpha;\n node.y0 += dy, node.y1 += dy;\n }\n });\n });\n }\n function relaxRightToLeft(alpha) {\n columns.slice().reverse().forEach(function (nodes) {\n nodes.forEach(function (node) {\n if (node.sourceLinks.length) {\n var dy = (sum(node.sourceLinks, weightedTarget) / sum(node.sourceLinks, value) - nodeCenter(node)) * alpha;\n node.y0 += dy, node.y1 += dy;\n }\n });\n });\n }\n function resolveCollisions() {\n columns.forEach(function (nodes) {\n var node,\n dy,\n y = y0,\n n = nodes.length,\n i;\n\n // Push any overlapping nodes down.\n nodes.sort(ascendingBreadth);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dy = y - node.y0;\n if (dy > 0) node.y0 += dy, node.y1 += dy;\n y = node.y1 + py;\n }\n\n // If the bottommost node goes outside the bounds, push it back up.\n dy = y - py - y1;\n if (dy > 0) {\n y = node.y0 -= dy, node.y1 -= dy;\n\n // Push any overlapping nodes back up.\n for (i = n - 2; i >= 0; --i) {\n node = nodes[i];\n dy = node.y1 + py - y;\n if (dy > 0) node.y0 -= dy, node.y1 -= dy;\n y = node.y0;\n }\n }\n });\n }\n }\n function computeLinkBreadths(graph) {\n graph.nodes.forEach(function (node) {\n node.sourceLinks.sort(ascendingTargetBreadth);\n node.targetLinks.sort(ascendingSourceBreadth);\n });\n graph.nodes.forEach(function (node) {\n var y0 = node.y0,\n y1 = y0;\n node.sourceLinks.forEach(function (link) {\n link.y0 = y0 + link.width / 2, y0 += link.width;\n });\n node.targetLinks.forEach(function (link) {\n link.y1 = y1 + link.width / 2, y1 += link.width;\n });\n });\n }\n return sankey;\n}","import { linkHorizontal } from \"d3-shape\";\nfunction horizontalSource(d) {\n return [d.source.x1, d.y0];\n}\nfunction horizontalTarget(d) {\n return [d.target.x0, d.y1];\n}\nexport default function () {\n return linkHorizontal().source(horizontalSource).target(horizontalTarget);\n}","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport { DISCRETE_COLOR_RANGE } from '../theme';\nimport Animation from '../animation';\nimport { ANIMATED_SERIES_PROPS } from '../utils/series-utils';\nvar DEFAULT_LINK_COLOR = DISCRETE_COLOR_RANGE[1];\nvar DEFAULT_LINK_OPACITY = 0.7;\nfunction SankeyLink(props) {\n var animation = props.animation,\n data = props.data,\n node = props.node,\n opacity = props.opacity,\n color = props.color,\n strokeWidth = props.strokeWidth,\n style = props.style,\n onLinkClick = props.onLinkClick,\n onLinkMouseOver = props.onLinkMouseOver,\n onLinkMouseOut = props.onLinkMouseOut;\n if (animation) {\n return React.createElement(Animation, _extends({}, props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(SankeyLink, _extends({}, props, {\n animation: null\n })));\n }\n return React.createElement('path', _extends({\n d: data\n }, style, {\n className: 'rv-sankey__link',\n opacity: Number.isFinite(opacity) ? opacity : DEFAULT_LINK_OPACITY,\n stroke: color || DEFAULT_LINK_COLOR,\n onClick: function onClick(e) {\n return onLinkClick(node, e);\n },\n onMouseOver: function onMouseOver(e) {\n return onLinkMouseOver(node, e);\n },\n onMouseOut: function onMouseOut(e) {\n return onLinkMouseOut(node, e);\n },\n strokeWidth: strokeWidth,\n fill: 'none'\n }));\n}\nSankeyLink.displayName = 'SankeyLink';\nSankeyLink.requiresSVG = true;\nexport default SankeyLink;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\nimport React from 'react';\nimport { sankey, sankeyLinkHorizontal, sankeyLeft, sankeyRight, sankeyCenter, sankeyJustify } from 'd3-sankey';\nimport XYPlot from '../plot/xy-plot';\nimport { MarginPropType, getInnerDimensions } from '../utils/chart-utils';\nimport VerticalRectSeries from '../plot/series/vertical-rect-series';\nimport LabelSeries from '../plot/series/label-series';\nimport Voronoi from '../plot/voronoi';\nimport { DISCRETE_COLOR_RANGE } from '../theme';\nimport SankeyLink from './sankey-link';\nvar NOOP = function NOOP(f) {\n return f;\n};\nvar ALIGNMENTS = {\n justify: sankeyJustify,\n center: sankeyCenter,\n left: sankeyLeft,\n right: sankeyRight\n};\nvar DEFAULT_MARGINS = {\n top: 20,\n left: 20,\n right: 20,\n bottom: 20\n};\nfunction Sankey(props) {\n var align = props.align,\n animation = props.animation,\n children = props.children,\n className = props.className,\n hasVoronoi = props.hasVoronoi,\n height = props.height,\n hideLabels = props.hideLabels,\n labelRotation = props.labelRotation,\n layout = props.layout,\n links = props.links,\n linkOpacity = props.linkOpacity,\n margin = props.margin,\n nodePadding = props.nodePadding,\n nodes = props.nodes,\n nodeWidth = props.nodeWidth,\n onValueClick = props.onValueClick,\n onValueMouseOver = props.onValueMouseOver,\n onValueMouseOut = props.onValueMouseOut,\n onLinkClick = props.onLinkClick,\n onLinkMouseOver = props.onLinkMouseOver,\n onLinkMouseOut = props.onLinkMouseOut,\n style = props.style,\n width = props.width;\n var nodesCopy = [].concat(_toConsumableArray(new Array(nodes.length))).map(function (e, i) {\n return _extends({}, nodes[i]);\n });\n var linksCopy = [].concat(_toConsumableArray(new Array(links.length))).map(function (e, i) {\n return _extends({}, links[i]);\n });\n var _getInnerDimensions = getInnerDimensions({\n margin: margin,\n height: height,\n width: width\n }, DEFAULT_MARGINS),\n marginLeft = _getInnerDimensions.marginLeft,\n marginTop = _getInnerDimensions.marginTop,\n marginRight = _getInnerDimensions.marginRight,\n marginBottom = _getInnerDimensions.marginBottom;\n var sankeyInstance = sankey().extent([[marginLeft, marginTop], [width - marginRight, height - marginBottom - marginTop]]).nodeWidth(nodeWidth).nodePadding(nodePadding).nodes(nodesCopy).links(linksCopy).nodeAlign(ALIGNMENTS[align]).iterations(layout);\n sankeyInstance(nodesCopy);\n var nWidth = sankeyInstance.nodeWidth();\n var path = sankeyLinkHorizontal();\n return React.createElement(XYPlot, _extends({}, props, {\n yType: 'literal',\n className: 'rv-sankey ' + className\n }), linksCopy.map(function (link, i) {\n return React.createElement(SankeyLink, {\n style: style.links,\n data: path(link),\n opacity: link.opacity || linkOpacity,\n color: link.color,\n onLinkClick: onLinkClick,\n onLinkMouseOver: onLinkMouseOver,\n onLinkMouseOut: onLinkMouseOut,\n strokeWidth: Math.max(link.width, 1),\n node: link,\n nWidth: nWidth,\n key: 'link-' + i\n });\n }), React.createElement(VerticalRectSeries, {\n animation: animation,\n className: className + ' rv-sankey__node',\n data: nodesCopy.map(function (node) {\n return _extends({}, node, {\n y: node.y1 - marginTop,\n y0: node.y0 - marginTop,\n x: node.x1,\n x0: node.x0,\n color: node.color || DISCRETE_COLOR_RANGE[0],\n sourceLinks: null,\n targetLinks: null\n });\n }),\n style: style.rects,\n onValueClick: onValueClick,\n onValueMouseOver: onValueMouseOver,\n onValueMouseOut: onValueMouseOut,\n colorType: 'literal'\n }), !hideLabels && React.createElement(LabelSeries, {\n animation: animation,\n className: className,\n rotation: labelRotation,\n labelAnchorY: 'text-before-edge',\n data: nodesCopy.map(function (node, i) {\n return _extends({\n x: node.x0 + (node.x0 < width / 2 ? nWidth + 10 : -10),\n y: (node.y0 + node.y1) / 2 - marginTop,\n label: node.name,\n style: _extends({\n textAnchor: node.x0 < width / 2 ? 'start' : 'end',\n dy: '-.5em'\n }, style.labels)\n }, nodes[i]);\n })\n }), hasVoronoi && React.createElement(Voronoi, {\n className: 'rv-sankey__voronoi',\n extent: [[-marginLeft, -marginTop], [width + marginRight, height + marginBottom]],\n nodes: nodesCopy,\n onClick: onValueClick,\n onHover: onValueMouseOver,\n onBlur: onValueMouseOut,\n x: function x(d) {\n return d.x0 + (d.x1 - d.x0) / 2;\n },\n y: function y(d) {\n return d.y0 + (d.y1 - d.y0) / 2;\n }\n }), children);\n}\nSankey.defaultProps = {\n align: 'justify',\n className: '',\n hasVoronoi: false,\n hideLabels: false,\n labelRotation: 0,\n layout: 50,\n margin: DEFAULT_MARGINS,\n nodePadding: 10,\n nodeWidth: 10,\n onValueMouseOver: NOOP,\n onValueClick: NOOP,\n onValueMouseOut: NOOP,\n onLinkClick: NOOP,\n onLinkMouseOver: NOOP,\n onLinkMouseOut: NOOP,\n style: {\n links: {},\n rects: {},\n labels: {}\n }\n};\nexport default Sankey;","export default function (node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}","export default function (parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}","import roundNode from \"./treemap/round.js\";\nimport treemapDice from \"./treemap/dice.js\";\nexport default function () {\n var dx = 1,\n dy = 1,\n padding = 0,\n round = false;\n function partition(root) {\n var n = root.height + 1;\n root.x0 = root.y0 = padding;\n root.x1 = dx;\n root.y1 = dy / n;\n root.eachBefore(positionNode(dy, n));\n if (round) root.eachBefore(roundNode);\n return root;\n }\n function positionNode(dy, n) {\n return function (node) {\n if (node.children) {\n treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);\n }\n var x0 = node.x0,\n y0 = node.y0,\n x1 = node.x1 - padding,\n y1 = node.y1 - padding;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n };\n }\n partition.round = function (x) {\n return arguments.length ? (round = !!x, partition) : round;\n };\n partition.size = function (x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];\n };\n partition.padding = function (x) {\n return arguments.length ? (padding = +x, partition) : padding;\n };\n return partition;\n}","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\nexport default function () {\n return this.eachAfter(count);\n}","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nexport default function hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n if (children == null) children = defaultChildren;\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n return root.eachBefore(computeHeight);\n}\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\nfunction defaultChildren(d) {\n return d.children;\n}\nfunction copyData(node) {\n node.data = node.data.data;\n}\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height; while ((node = node.parent) && node.height < ++height);\n}\nexport function Node(data) {\n this.data = data;\n this.depth = this.height = 0;\n this.parent = null;\n}\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};","export default function (callback) {\n var node = this,\n current,\n next = [node],\n children,\n i,\n n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n}","export default function (callback) {\n var node = this,\n nodes = [node],\n next = [],\n children,\n i,\n n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n}","export default function (callback) {\n var node = this,\n nodes = [node],\n children,\n i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\n}","export default function (value) {\n return this.eachAfter(function (node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}","import \"core-js/modules/es.array.sort.js\";\nexport default function (compare) {\n return this.eachBefore(function (node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}","export default function (end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}","export default function () {\n var node = this,\n nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}","export default function () {\n var nodes = [];\n this.each(function (node) {\n nodes.push(node);\n });\n return nodes;\n}","export default function () {\n var leaves = [];\n this.eachBefore(function (node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}","export default function () {\n var root = this,\n links = [];\n root.each(function (node) {\n if (node !== root) {\n // Don’t include the root’s parent, if any.\n links.push({\n source: node.parent,\n target: node\n });\n }\n });\n return links;\n}","import \"core-js/modules/es.array.reduce.js\";\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport { hierarchy, partition } from 'd3-hierarchy';\nimport { scaleLinear, scaleSqrt } from 'd3-scale';\nimport { AnimationPropType } from '../animation';\nimport LabelSeries from '../plot/series/label-series';\nimport ArcSeries from '../plot/series/arc-series';\nimport XYPlot from '../plot/xy-plot';\nimport { getRadialDomain } from '../utils/series-utils';\nimport { getRadialLayoutMargin } from '../utils/chart-utils';\nvar predefinedClassName = 'rv-sunburst';\nvar LISTENERS_TO_OVERWRITE = ['onValueMouseOver', 'onValueMouseOut', 'onValueClick', 'onValueRightClick', 'onSeriesMouseOver', 'onSeriesMouseOut', 'onSeriesClick', 'onSeriesRightClick'];\n\n/**\n * Create the list of nodes to render.\n * @param {Object} props\n props.data {Object} - tree structured data (each node has a name anc an array of children)\n props.height {number} - the height of the graphic to be rendered\n props.hideRootNode {boolean} - whether or not to hide the root node\n props.width {number} - the width of the graphic to be rendered\n props.getSize {function} - accessor for the size\n * @returns {Array} Array of nodes.\n */\nfunction getNodesToRender(_ref) {\n var data = _ref.data,\n height = _ref.height,\n hideRootNode = _ref.hideRootNode,\n width = _ref.width,\n getSize = _ref.getSize;\n var partitionFunction = partition();\n var structuredInput = hierarchy(data).sum(getSize);\n var radius = Math.min(width, height) / 2 - 10;\n var x = scaleLinear().range([0, 2 * Math.PI]);\n var y = scaleSqrt().range([0, radius]);\n return partitionFunction(structuredInput).descendants().reduce(function (res, cell, index) {\n if (hideRootNode && index === 0) {\n return res;\n }\n return res.concat([_extends({\n angle0: Math.max(0, Math.min(2 * Math.PI, x(cell.x0))),\n angle: Math.max(0, Math.min(2 * Math.PI, x(cell.x1))),\n radius0: Math.max(0, y(cell.y0)),\n radius: Math.max(0, y(cell.y1)),\n depth: cell.depth,\n parent: cell.parent\n }, cell.data)]);\n }, []);\n}\n\n/**\n * Convert arc nodes into label rows.\n * Important to use mappedData rather than regular data, bc it is already unrolled\n * @param {Array} mappedData - Array of nodes.\n * @param {Object} accessors - object of accessors\n * @returns {Array} array of node for rendering as labels\n */\nfunction buildLabels(mappedData, accessors) {\n var getAngle = accessors.getAngle,\n getAngle0 = accessors.getAngle0,\n getLabel = accessors.getLabel,\n getRadius0 = accessors.getRadius0;\n return mappedData.filter(getLabel).map(function (row) {\n var truedAngle = -1 * getAngle(row) + Math.PI / 2;\n var truedAngle0 = -1 * getAngle0(row) + Math.PI / 2;\n var angle = (truedAngle0 + truedAngle) / 2;\n var rotateLabels = !row.dontRotateLabel;\n var rotAngle = -angle / (2 * Math.PI) * 360;\n return _extends({}, row, {\n children: null,\n angle: null,\n radius: null,\n x: getRadius0(row) * Math.cos(angle),\n y: getRadius0(row) * Math.sin(angle),\n style: _extends({\n textAnchor: rotAngle > 90 ? 'end' : 'start'\n }, row.labelStyle),\n rotation: rotateLabels ? rotAngle > 90 ? rotAngle + 180 : rotAngle === 90 ? 90 : rotAngle : null\n });\n });\n}\nvar NOOP = function NOOP() {};\nfunction Sunburst(props) {\n var getAngle = props.getAngle,\n getAngle0 = props.getAngle0,\n animation = props.animation,\n className = props.className,\n children = props.children,\n data = props.data,\n height = props.height,\n hideRootNode = props.hideRootNode,\n getLabel = props.getLabel,\n width = props.width,\n getSize = props.getSize,\n colorType = props.colorType;\n var mappedData = getNodesToRender({\n data: data,\n height: height,\n hideRootNode: hideRootNode,\n width: width,\n getSize: getSize\n });\n var radialDomain = getRadialDomain(mappedData);\n var margin = getRadialLayoutMargin(width, height, radialDomain);\n var labelData = buildLabels(mappedData, {\n getAngle: getAngle,\n getAngle0: getAngle0,\n getLabel: getLabel,\n getRadius0: function getRadius0(d) {\n return d.radius0;\n }\n });\n var hofBuilder = function hofBuilder(f) {\n return function (e, i) {\n return f ? f(mappedData[e.index], i) : NOOP;\n };\n };\n return React.createElement(XYPlot, {\n height: height,\n hasTreeStructure: true,\n width: width,\n className: predefinedClassName + ' ' + className,\n margin: margin,\n xDomain: [-radialDomain, radialDomain],\n yDomain: [-radialDomain, radialDomain]\n }, React.createElement(ArcSeries, _extends({\n colorType: colorType\n }, props, {\n animation: animation,\n radiusDomain: [0, radialDomain],\n // need to present a stripped down version for interpolation\n data: animation ? mappedData.map(function (row, index) {\n return _extends({}, row, {\n parent: null,\n children: null,\n index: index\n });\n }) : mappedData,\n _data: animation ? mappedData : null,\n arcClassName: predefinedClassName + '__series--radial__arc'\n }, LISTENERS_TO_OVERWRITE.reduce(function (acc, propName) {\n var prop = props[propName];\n acc[propName] = animation ? hofBuilder(prop) : prop;\n return acc;\n }, {}))), labelData.length > 0 && React.createElement(LabelSeries, {\n data: labelData,\n getLabel: getLabel\n }), children);\n}\nSunburst.displayName = 'Sunburst';\nSunburst.defaultProps = {\n getAngle: function getAngle(d) {\n return d.angle;\n },\n getAngle0: function getAngle0(d) {\n return d.angle0;\n },\n className: '',\n colorType: 'literal',\n getColor: function getColor(d) {\n return d.color;\n },\n hideRootNode: false,\n getLabel: function getLabel(d) {\n return d.label;\n },\n getSize: function getSize(d) {\n return d.size;\n },\n padAngle: 0\n};\nexport default Sunburst;","export default function (parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nexport var phi = (1 + Math.sqrt(5)) / 2;\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx,\n dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) {\n sumValue -= nodeValue;\n break;\n }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {\n value: sumValue,\n dice: dx < dy,\n children: nodes.slice(i0, i1)\n });\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n return rows;\n}\nexport default (function custom(ratio) {\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n squarify.ratio = function (x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n return squarify;\n})(phi);","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nimport { phi, squarifyRatio } from \"./squarify.js\";\nexport default (function custom(ratio) {\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && rows.ratio === ratio) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n while (++j < m) {\n row = rows[j], nodes = row.children;\n for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);else treemapSlice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n resquarify.ratio = function (x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n return resquarify;\n})(phi);","export var slice = Array.prototype.slice;\nexport function shuffle(array) {\n var m = array.length,\n t,\n i;\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m];\n array[m] = array[i];\n array[i] = t;\n }\n return array;\n}","import { shuffle, slice } from \"../array.js\";\nexport default function (circles) {\n var i = 0,\n n = (circles = shuffle(slice.call(circles))).length,\n B = [],\n p,\n e;\n while (i < n) {\n p = circles[i];\n if (e && enclosesWeak(e, p)) ++i;else e = encloseBasis(B = extendBasis(B, p)), i = 0;\n }\n return e;\n}\nfunction extendBasis(B, p) {\n var i, j;\n if (enclosesWeakAll(p, B)) return [p];\n\n // If we get here then B must have at least one element.\n for (i = 0; i < B.length; ++i) {\n if (enclosesNot(p, B[i]) && enclosesWeakAll(encloseBasis2(B[i], p), B)) {\n return [B[i], p];\n }\n }\n\n // If we get here then B must have at least two elements.\n for (i = 0; i < B.length - 1; ++i) {\n for (j = i + 1; j < B.length; ++j) {\n if (enclosesNot(encloseBasis2(B[i], B[j]), p) && enclosesNot(encloseBasis2(B[i], p), B[j]) && enclosesNot(encloseBasis2(B[j], p), B[i]) && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {\n return [B[i], B[j], p];\n }\n }\n }\n\n // If we get here then something is very wrong.\n throw new Error();\n}\nfunction enclosesNot(a, b) {\n var dr = a.r - b.r,\n dx = b.x - a.x,\n dy = b.y - a.y;\n return dr < 0 || dr * dr < dx * dx + dy * dy;\n}\nfunction enclosesWeak(a, b) {\n var dr = a.r - b.r + 1e-6,\n dx = b.x - a.x,\n dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\nfunction enclosesWeakAll(a, B) {\n for (var i = 0; i < B.length; ++i) {\n if (!enclosesWeak(a, B[i])) {\n return false;\n }\n }\n return true;\n}\nfunction encloseBasis(B) {\n switch (B.length) {\n case 1:\n return encloseBasis1(B[0]);\n case 2:\n return encloseBasis2(B[0], B[1]);\n case 3:\n return encloseBasis3(B[0], B[1], B[2]);\n }\n}\nfunction encloseBasis1(a) {\n return {\n x: a.x,\n y: a.y,\n r: a.r\n };\n}\nfunction encloseBasis2(a, b) {\n var x1 = a.x,\n y1 = a.y,\n r1 = a.r,\n x2 = b.x,\n y2 = b.y,\n r2 = b.r,\n x21 = x2 - x1,\n y21 = y2 - y1,\n r21 = r2 - r1,\n l = Math.sqrt(x21 * x21 + y21 * y21);\n return {\n x: (x1 + x2 + x21 / l * r21) / 2,\n y: (y1 + y2 + y21 / l * r21) / 2,\n r: (l + r1 + r2) / 2\n };\n}\nfunction encloseBasis3(a, b, c) {\n var x1 = a.x,\n y1 = a.y,\n r1 = a.r,\n x2 = b.x,\n y2 = b.y,\n r2 = b.r,\n x3 = c.x,\n y3 = c.y,\n r3 = c.r,\n a2 = x1 - x2,\n a3 = x1 - x3,\n b2 = y1 - y2,\n b3 = y1 - y3,\n c2 = r2 - r1,\n c3 = r3 - r1,\n d1 = x1 * x1 + y1 * y1 - r1 * r1,\n d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,\n d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,\n ab = a3 * b2 - a2 * b3,\n xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,\n xb = (b3 * c2 - b2 * c3) / ab,\n ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,\n yb = (a2 * c3 - a3 * c2) / ab,\n A = xb * xb + yb * yb - 1,\n B = 2 * (r1 + xa * xb + ya * yb),\n C = xa * xa + ya * ya - r1 * r1,\n r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);\n return {\n x: x1 + xa + xb * r,\n y: y1 + ya + yb * r,\n r: r\n };\n}","import enclose from \"./enclose.js\";\nfunction place(b, a, c) {\n var dx = b.x - a.x,\n x,\n a2,\n dy = b.y - a.y,\n y,\n b2,\n d2 = dx * dx + dy * dy;\n if (d2) {\n a2 = a.r + c.r, a2 *= a2;\n b2 = b.r + c.r, b2 *= b2;\n if (a2 > b2) {\n x = (d2 + b2 - a2) / (2 * d2);\n y = Math.sqrt(Math.max(0, b2 / d2 - x * x));\n c.x = b.x - x * dx - y * dy;\n c.y = b.y - x * dy + y * dx;\n } else {\n x = (d2 + a2 - b2) / (2 * d2);\n y = Math.sqrt(Math.max(0, a2 / d2 - x * x));\n c.x = a.x + x * dx - y * dy;\n c.y = a.y + x * dy + y * dx;\n }\n } else {\n c.x = a.x + c.r;\n c.y = a.y;\n }\n}\nfunction intersects(a, b) {\n var dr = a.r + b.r - 1e-6,\n dx = b.x - a.x,\n dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\nfunction score(node) {\n var a = node._,\n b = node.next._,\n ab = a.r + b.r,\n dx = (a.x * b.r + b.x * a.r) / ab,\n dy = (a.y * b.r + b.y * a.r) / ab;\n return dx * dx + dy * dy;\n}\nfunction Node(circle) {\n this._ = circle;\n this.next = null;\n this.previous = null;\n}\nexport function packEnclose(circles) {\n if (!(n = circles.length)) return 0;\n var a, b, c, n, aa, ca, i, j, k, sj, sk;\n\n // Place the first circle.\n a = circles[0], a.x = 0, a.y = 0;\n if (!(n > 1)) return a.r;\n\n // Place the second circle.\n b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n if (!(n > 2)) return a.r + b.r;\n\n // Place the third circle.\n place(b, a, c = circles[2]);\n\n // Initialize the front-chain using the first three circles a, b and c.\n a = new Node(a), b = new Node(b), c = new Node(c);\n a.next = c.previous = b;\n b.next = a.previous = c;\n c.next = b.previous = a;\n\n // Attempt to place each remaining circle…\n pack: for (i = 3; i < n; ++i) {\n place(a._, b._, c = circles[i]), c = new Node(c);\n\n // Find the closest intersecting circle on the front-chain, if any.\n // “Closeness” is determined by linear distance along the front-chain.\n // “Ahead” or “behind” is likewise determined by linear distance.\n j = b.next, k = a.previous, sj = b._.r, sk = a._.r;\n do {\n if (sj <= sk) {\n if (intersects(j._, c._)) {\n b = j, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sj += j._.r, j = j.next;\n } else {\n if (intersects(k._, c._)) {\n a = k, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sk += k._.r, k = k.previous;\n }\n } while (j !== k.next);\n\n // Success! Insert the new circle c between a and b.\n c.previous = a, c.next = b, a.next = b.previous = b = c;\n\n // Compute the new closest circle pair to the centroid.\n aa = score(a);\n while ((c = c.next) !== b) {\n if ((ca = score(c)) < aa) {\n a = c, aa = ca;\n }\n }\n b = a.next;\n }\n\n // Compute the enclosing circle of the front chain.\n a = [b._], c = b;\n while ((c = c.next) !== b) a.push(c._);\n c = enclose(a);\n\n // Translate the circles to put the enclosing circle around the origin.\n for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;\n return c.r;\n}\nexport default function (circles) {\n packEnclose(circles);\n return circles;\n}","export function optional(f) {\n return f == null ? null : required(f);\n}\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error();\n return f;\n}","export function constantZero() {\n return 0;\n}\nexport default function (x) {\n return function () {\n return x;\n };\n}","import { packEnclose } from \"./siblings.js\";\nimport { optional } from \"../accessors.js\";\nimport constant, { constantZero } from \"../constant.js\";\nfunction defaultRadius(d) {\n return Math.sqrt(d.value);\n}\nexport default function () {\n var radius = null,\n dx = 1,\n dy = 1,\n padding = constantZero;\n function pack(root) {\n root.x = dx / 2, root.y = dy / 2;\n if (radius) {\n root.eachBefore(radiusLeaf(radius)).eachAfter(packChildren(padding, 0.5)).eachBefore(translateChild(1));\n } else {\n root.eachBefore(radiusLeaf(defaultRadius)).eachAfter(packChildren(constantZero, 1)).eachAfter(packChildren(padding, root.r / Math.min(dx, dy))).eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));\n }\n return root;\n }\n pack.radius = function (x) {\n return arguments.length ? (radius = optional(x), pack) : radius;\n };\n pack.size = function (x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];\n };\n pack.padding = function (x) {\n return arguments.length ? (padding = typeof x === \"function\" ? x : constant(+x), pack) : padding;\n };\n return pack;\n}\nfunction radiusLeaf(radius) {\n return function (node) {\n if (!node.children) {\n node.r = Math.max(0, +radius(node) || 0);\n }\n };\n}\nfunction packChildren(padding, k) {\n return function (node) {\n if (children = node.children) {\n var children,\n i,\n n = children.length,\n r = padding(node) * k || 0,\n e;\n if (r) for (i = 0; i < n; ++i) children[i].r += r;\n e = packEnclose(children);\n if (r) for (i = 0; i < n; ++i) children[i].r -= r;\n node.r = e + r;\n }\n };\n}\nfunction translateChild(k) {\n return function (node) {\n var parent = node.parent;\n node.r *= k;\n if (parent) {\n node.x = parent.x + k * node.x;\n node.y = parent.y + k * node.y;\n }\n };\n}","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport { required } from \"../accessors.js\";\nimport constant, { constantZero } from \"../constant.js\";\nexport default function () {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n function treemap(root) {\n root.x0 = root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n treemap.round = function (x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n treemap.size = function (x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n treemap.tile = function (x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n treemap.padding = function (x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n treemap.paddingInner = function (x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n treemap.paddingOuter = function (x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n treemap.paddingTop = function (x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n treemap.paddingRight = function (x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n treemap.paddingBottom = function (x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n treemap.paddingLeft = function (x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n return treemap;\n}","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport Animation, { AnimationPropType } from '../animation';\nimport { getFontColorFromBackground } from '../utils/scales-utils';\nvar ANIMATED_PROPS = ['colorRange', 'colorDomain', 'color', 'opacityRange', 'opacityDomain', 'opacity', 'x0', 'x1', 'y0', 'y1', 'r'];\nfunction TreemapLeaf(props) {\n var animation = props.animation,\n getLabel = props.getLabel,\n mode = props.mode,\n node = props.node,\n onLeafClick = props.onLeafClick,\n onLeafMouseOver = props.onLeafMouseOver,\n onLeafMouseOut = props.onLeafMouseOut,\n r = props.r,\n scales = props.scales,\n x0 = props.x0,\n x1 = props.x1,\n y0 = props.y0,\n y1 = props.y1,\n style = props.style;\n if (animation) {\n return React.createElement(Animation, _extends({}, props, {\n animatedProps: ANIMATED_PROPS\n }), React.createElement(TreemapLeaf, _extends({}, props, {\n animation: null\n })));\n }\n var useCirclePacking = mode === 'circlePack';\n var background = scales.color(node);\n var opacity = scales.opacity(node);\n var color = getFontColorFromBackground(background);\n var data = node.data;\n var title = getLabel(data);\n var leafStyle = _extends({\n top: useCirclePacking ? y0 - r : y0,\n left: useCirclePacking ? x0 - r : x0,\n width: useCirclePacking ? r * 2 : x1 - x0,\n height: useCirclePacking ? r * 2 : y1 - y0,\n background: background,\n opacity: opacity,\n color: color\n }, style, node.data.style);\n return React.createElement('div', {\n className: 'rv-treemap__leaf ' + (useCirclePacking ? 'rv-treemap__leaf--circle' : ''),\n onMouseEnter: function onMouseEnter(event) {\n return onLeafMouseOver(node, event);\n },\n onMouseLeave: function onMouseLeave(event) {\n return onLeafMouseOut(node, event);\n },\n onClick: function onClick(event) {\n return onLeafClick(node, event);\n },\n style: leafStyle\n }, React.createElement('div', {\n className: 'rv-treemap__leaf__content'\n }, title));\n}\nexport default TreemapLeaf;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\nimport React from 'react';\nimport TreemapLeaf from './treemap-leaf';\nfunction TreemapDOM(props) {\n var animation = props.animation,\n className = props.className,\n height = props.height,\n hideRootNode = props.hideRootNode,\n getLabel = props.getLabel,\n mode = props.mode,\n nodes = props.nodes,\n width = props.width,\n scales = props.scales,\n style = props.style;\n var useCirclePacking = mode === 'circlePack';\n return React.createElement('div', {\n className: 'rv-treemap ' + (useCirclePacking ? 'rv-treemap-circle-packed' : '') + ' ' + className,\n style: {\n height: height,\n width: width\n }\n }, nodes.map(function (node, index) {\n // throw out the rootest node\n if (hideRootNode && !index) {\n return null;\n }\n var nodeProps = _extends({\n animation: animation,\n node: node,\n getLabel: getLabel\n }, props, {\n x0: useCirclePacking ? node.x : node.x0,\n x1: useCirclePacking ? node.x : node.x1,\n y0: useCirclePacking ? node.y : node.y0,\n y1: useCirclePacking ? node.y : node.y1,\n r: useCirclePacking ? node.r : 1,\n scales: scales,\n style: style\n });\n return React.createElement(TreemapLeaf, _extends({}, nodeProps, {\n key: 'leaf-' + index\n }));\n }));\n}\nTreemapDOM.displayName = 'TreemapDOM';\nexport default TreemapDOM;","import \"core-js/modules/es.array.reduce.js\";\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport XYPlot from '../plot/xy-plot';\nimport PolygonSeries from '../plot/series/polygon-series';\nimport MarkSeries from '../plot/series/mark-series';\nimport LabelSeries from '../plot/series/label-series';\nvar MARGIN_ADJUST = 1.2;\nvar TreemapSVG = function (_React$Component) {\n _inherits(TreemapSVG, _React$Component);\n function TreemapSVG() {\n _classCallCheck(this, TreemapSVG);\n return _possibleConstructorReturn(this, (TreemapSVG.__proto__ || Object.getPrototypeOf(TreemapSVG)).apply(this, arguments));\n }\n _createClass(TreemapSVG, [{\n key: 'getCircularNodes',\n value: function getCircularNodes() {\n var _props = this.props,\n animation = _props.animation,\n hideRootNode = _props.hideRootNode,\n nodes = _props.nodes,\n onLeafMouseOver = _props.onLeafMouseOver,\n onLeafMouseOut = _props.onLeafMouseOut,\n onLeafClick = _props.onLeafClick,\n scales = _props.scales,\n style = _props.style;\n var _nodes$reduce = nodes.reduce(function (acc, node, index) {\n if (!index && hideRootNode) {\n return acc;\n }\n var x = node.x,\n y = node.y,\n r = node.r;\n return {\n maxY: Math.max(y + r, acc.maxY),\n minY: Math.min(y - r, acc.minY),\n maxX: Math.max(x + MARGIN_ADJUST * r, acc.maxX),\n minX: Math.min(x - MARGIN_ADJUST * r, acc.minX),\n rows: acc.rows.concat([{\n x: x,\n y: y,\n size: r,\n color: scales.color(node)\n }])\n };\n }, {\n rows: [],\n maxY: -Infinity,\n minY: Infinity,\n maxX: -Infinity,\n minX: Infinity\n }),\n rows = _nodes$reduce.rows,\n minY = _nodes$reduce.minY,\n maxY = _nodes$reduce.maxY,\n minX = _nodes$reduce.minX,\n maxX = _nodes$reduce.maxX;\n return {\n updatedNodes: React.createElement(MarkSeries, {\n animation: animation,\n className: 'rv-treemap__leaf rv-treemap__leaf--circle',\n onSeriesMouseEnter: onLeafMouseOver,\n onSeriesMouseLeave: onLeafMouseOut,\n onSeriesClick: onLeafClick,\n data: rows,\n colorType: 'literal',\n getColor: function getColor(d) {\n return d.color;\n },\n sizeType: 'literal',\n getSize: function getSize(d) {\n return d.size;\n },\n style: style\n }),\n minY: minY,\n maxY: maxY,\n minX: minX,\n maxX: maxX\n };\n }\n }, {\n key: 'getNonCircularNodes',\n value: function getNonCircularNodes() {\n var _props2 = this.props,\n animation = _props2.animation,\n hideRootNode = _props2.hideRootNode,\n nodes = _props2.nodes,\n onLeafMouseOver = _props2.onLeafMouseOver,\n onLeafMouseOut = _props2.onLeafMouseOut,\n onLeafClick = _props2.onLeafClick,\n scales = _props2.scales,\n style = _props2.style;\n var color = scales.color;\n return nodes.reduce(function (acc, node, index) {\n if (!index && hideRootNode) {\n return acc;\n }\n var x0 = node.x0,\n x1 = node.x1,\n y1 = node.y1,\n y0 = node.y0;\n var x = x0;\n var y = y0;\n var nodeHeight = y1 - y0;\n var nodeWidth = x1 - x0;\n acc.maxY = Math.max(y + nodeHeight, acc.maxY);\n acc.minY = Math.min(y, acc.minY);\n acc.maxX = Math.max(x + nodeWidth, acc.maxX);\n acc.minX = Math.min(x, acc.minX);\n var data = [{\n x: x,\n y: y\n }, {\n x: x,\n y: y + nodeHeight\n }, {\n x: x + nodeWidth,\n y: y + nodeHeight\n }, {\n x: x + nodeWidth,\n y: y\n }];\n acc.updatedNodes = acc.updatedNodes.concat([React.createElement(PolygonSeries, {\n animation: animation,\n className: 'rv-treemap__leaf',\n key: index,\n color: color(node),\n type: 'literal',\n onSeriesMouseEnter: onLeafMouseOver,\n onSeriesMouseLeave: onLeafMouseOut,\n onSeriesClick: onLeafClick,\n data: data,\n style: _extends({}, style, node.style)\n })]);\n return acc;\n }, {\n updatedNodes: [],\n maxY: -Infinity,\n minY: Infinity,\n maxX: -Infinity,\n minX: Infinity\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props3 = this.props,\n className = _props3.className,\n height = _props3.height,\n mode = _props3.mode,\n nodes = _props3.nodes,\n width = _props3.width;\n var useCirclePacking = mode === 'circlePack';\n var _ref = useCirclePacking ? this.getCircularNodes() : this.getNonCircularNodes(),\n minY = _ref.minY,\n maxY = _ref.maxY,\n minX = _ref.minX,\n maxX = _ref.maxX,\n updatedNodes = _ref.updatedNodes;\n var labels = nodes.reduce(function (acc, node) {\n if (!node.data.title) {\n return acc;\n }\n return acc.concat(_extends({}, node.data, {\n x: node.x0 || node.x,\n y: node.y0 || node.y,\n label: '' + node.data.title\n }));\n }, []);\n return React.createElement(XYPlot, _extends({\n className: 'rv-treemap ' + (useCirclePacking ? 'rv-treemap-circle-packed' : '') + ' ' + className,\n width: width,\n height: height,\n yDomain: [maxY, minY],\n xDomain: [minX, maxX],\n colorType: 'literal',\n hasTreeStructure: true\n }, this.props), updatedNodes, React.createElement(LabelSeries, {\n data: labels\n }));\n }\n }]);\n return TreemapSVG;\n}(React.Component);\nTreemapSVG.displayName = 'TreemapSVG';\nexport default TreemapSVG;","import \"core-js/modules/es.array.sort.js\";\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport { hierarchy, pack, partition, treemapSquarify, treemapResquarify, treemapSlice, treemapDice, treemapSliceDice, treemapBinary, treemap } from 'd3-hierarchy';\nimport { CONTINUOUS_COLOR_RANGE, DEFAULT_COLOR, DEFAULT_OPACITY, OPACITY_TYPE } from '../theme';\nimport { AnimationPropType } from '../animation';\nimport { getAttributeFunctor, getMissingScaleProps } from '../utils/scales-utils';\nimport { MarginPropType, getInnerDimensions } from '../utils/chart-utils';\nimport TreemapDOM from './treemap-dom';\nimport TreemapSVG from './treemap-svg';\nvar TREEMAP_TILE_MODES = {\n squarify: treemapSquarify,\n resquarify: treemapResquarify,\n slice: treemapSlice,\n dice: treemapDice,\n slicedice: treemapSliceDice,\n binary: treemapBinary\n};\nvar NOOP = function NOOP(d) {\n return d;\n};\nvar ATTRIBUTES = ['opacity', 'color'];\nvar DEFAULT_MARGINS = {\n left: 40,\n right: 10,\n top: 10,\n bottom: 40\n};\n\n/**\n * Get the map of scale functions from the given props.\n * @param {Object} props Props for the component.\n * @returns {Object} Map of scale functions.\n * @private\n */\nfunction _getScaleFns(props) {\n var data = props.data;\n var allData = data.children || [];\n\n // Adding _allData property to the object to reuse the existing\n // getAttributeFunctor function.\n var compatibleProps = _extends({}, props, getMissingScaleProps(props, allData, ATTRIBUTES), {\n _allData: allData\n });\n return {\n opacity: getAttributeFunctor(compatibleProps, 'opacity'),\n color: getAttributeFunctor(compatibleProps, 'color')\n };\n}\nvar Treemap = function (_React$Component) {\n _inherits(Treemap, _React$Component);\n function Treemap(props) {\n _classCallCheck(this, Treemap);\n var _this = _possibleConstructorReturn(this, (Treemap.__proto__ || Object.getPrototypeOf(Treemap)).call(this, props));\n _this.state = _extends({\n scales: _getScaleFns(props)\n }, getInnerDimensions(props, props.margin));\n return _this;\n }\n _createClass(Treemap, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(props) {\n this.setState(_extends({\n scales: _getScaleFns(props)\n }, getInnerDimensions(props, props.margin)));\n }\n\n /**\n * Create the list of nodes to render.\n * @returns {Array} Array of nodes.\n * @private\n */\n }, {\n key: '_getNodesToRender',\n value: function _getNodesToRender() {\n var _state = this.state,\n innerWidth = _state.innerWidth,\n innerHeight = _state.innerHeight;\n var _props = this.props,\n data = _props.data,\n mode = _props.mode,\n padding = _props.padding,\n sortFunction = _props.sortFunction,\n getSize = _props.getSize;\n if (!data) {\n return [];\n }\n if (mode === 'partition' || mode === 'partition-pivot') {\n var partitionFunction = partition().size(mode === 'partition-pivot' ? [innerHeight, innerWidth] : [innerWidth, innerHeight]).padding(padding);\n var _structuredInput = hierarchy(data).sum(getSize).sort(function (a, b) {\n return sortFunction(a, b, getSize);\n });\n var mappedNodes = partitionFunction(_structuredInput).descendants();\n if (mode === 'partition-pivot') {\n return mappedNodes.map(function (node) {\n return _extends({}, node, {\n x0: node.y0,\n x1: node.y1,\n y0: node.x0,\n y1: node.x1\n });\n });\n }\n return mappedNodes;\n }\n if (mode === 'circlePack') {\n var packingFunction = pack().size([innerWidth, innerHeight]).padding(padding);\n var _structuredInput2 = hierarchy(data).sum(getSize).sort(function (a, b) {\n return sortFunction(a, b, getSize);\n });\n return packingFunction(_structuredInput2).descendants();\n }\n var tileFn = TREEMAP_TILE_MODES[mode];\n var treemapingFunction = treemap(tileFn).tile(tileFn).size([innerWidth, innerHeight]).padding(padding);\n var structuredInput = hierarchy(data).sum(getSize).sort(function (a, b) {\n return sortFunction(a, b, getSize);\n });\n return treemapingFunction(structuredInput).descendants();\n }\n }, {\n key: 'render',\n value: function render() {\n var renderMode = this.props.renderMode;\n var scales = this.state.scales;\n var nodes = this._getNodesToRender();\n var TreemapElement = renderMode === 'SVG' ? TreemapSVG : TreemapDOM;\n return React.createElement(TreemapElement, _extends({}, this.props, {\n nodes: nodes,\n scales: scales\n }));\n }\n }]);\n return Treemap;\n}(React.Component);\nTreemap.displayName = 'Treemap';\nTreemap.defaultProps = {\n className: '',\n colorRange: CONTINUOUS_COLOR_RANGE,\n _colorValue: DEFAULT_COLOR,\n data: {\n children: []\n },\n hideRootNode: false,\n margin: DEFAULT_MARGINS,\n mode: 'squarify',\n onLeafClick: NOOP,\n onLeafMouseOver: NOOP,\n onLeafMouseOut: NOOP,\n opacityType: OPACITY_TYPE,\n _opacityValue: DEFAULT_OPACITY,\n padding: 1,\n sortFunction: function sortFunction(a, b, accessor) {\n if (!accessor) {\n return 0;\n }\n return accessor(a) - accessor(b);\n },\n getSize: function getSize(d) {\n return d.size;\n },\n getColor: function getColor(d) {\n return d.color;\n },\n getLabel: function getLabel(d) {\n return d.title;\n }\n};\nexport default Treemap;","import dice from \"./dice.js\";\nimport slice from \"./slice.js\";\nexport default function (parent, x0, y0, x1, y1) {\n (parent.depth & 1 ? slice : dice)(parent, x0, y0, x1, y1);\n}","export default function (parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n i,\n n = nodes.length,\n sum,\n sums = new Array(n + 1);\n for (sums[0] = sum = i = 0; i < n; ++i) {\n sums[i + 1] = sum += nodes[i].value;\n }\n partition(0, n, parent.value, x0, y0, x1, y1);\n function partition(i, j, value, x0, y0, x1, y1) {\n if (i >= j - 1) {\n var node = nodes[i];\n node.x0 = x0, node.y0 = y0;\n node.x1 = x1, node.y1 = y1;\n return;\n }\n var valueOffset = sums[i],\n valueTarget = value / 2 + valueOffset,\n k = i + 1,\n hi = j - 1;\n while (k < hi) {\n var mid = k + hi >>> 1;\n if (sums[mid] < valueTarget) k = mid + 1;else hi = mid;\n }\n if (valueTarget - sums[k - 1] < sums[k] - valueTarget && i + 1 < k) --k;\n var valueLeft = sums[k] - valueOffset,\n valueRight = value - valueLeft;\n if (x1 - x0 > y1 - y0) {\n var xk = (x0 * valueRight + x1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, xk, y1);\n partition(k, j, valueRight, xk, y0, x1, y1);\n } else {\n var yk = (y0 * valueRight + y1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, x1, yk);\n partition(k, j, valueRight, x0, yk, x1, y1);\n }\n }\n}","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n return target;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport window from 'global/window';\nimport XYPlot from './plot/xy-plot';\nimport { getDOMNode } from './utils/react-utils';\nvar CONTAINER_REF = 'container';\n\n// As a performance enhancement, we want to only listen once\nvar resizeSubscribers = [];\nvar DEBOUNCE_DURATION = 100;\nvar timeoutId = null;\n\n/**\n * Calls each subscriber, debounced to the\n */\nfunction debounceEmitResize() {\n window.clearTimeout(timeoutId);\n timeoutId = window.setTimeout(emitResize, DEBOUNCE_DURATION);\n}\n\n/**\n * Calls each subscriber once syncronously.\n */\nfunction emitResize() {\n resizeSubscribers.forEach(function (cb) {\n return cb();\n });\n}\n\n/**\n * Add the given callback to the list of subscribers to be caled when the\n * window resizes. Returns a function that, when called, removes the given\n * callback from the list of subscribers. This function is also resposible for\n * adding and removing the resize listener on `window`.\n *\n * @param {Function} cb - Subscriber callback function\n * @returns {Function} Unsubscribe function\n */\nfunction subscribeToDebouncedResize(cb) {\n resizeSubscribers.push(cb);\n\n // if we go from zero to one Flexible components instances, add the listener\n if (resizeSubscribers.length === 1) {\n window.addEventListener('resize', debounceEmitResize);\n }\n return function unsubscribe() {\n removeSubscriber(cb);\n\n // if we have no Flexible components, remove the listener\n if (resizeSubscribers.length === 0) {\n window.clearTimeout(timeoutId);\n window.removeEventListener('resize', debounceEmitResize);\n }\n };\n}\n\n/**\n * Helper for removing the given callback from the list of subscribers.\n *\n * @param {Function} cb - Subscriber callback function\n */\nfunction removeSubscriber(cb) {\n var index = resizeSubscribers.indexOf(cb);\n if (index > -1) {\n resizeSubscribers.splice(index, 1);\n }\n}\n\n/**\n * Helper for getting a display name for the child component\n * @param {*} Component React class for the child component.\n * @returns {String} The child components name\n */\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n\n/**\n * Add the ability to stretch the visualization on window resize.\n * @param {*} Component React class for the child component.\n * @returns {*} Flexible component.\n */\n\nfunction makeFlexible(Component, isWidthFlexible, isHeightFlexible) {\n var ResultClass = function (_React$Component) {\n _inherits(ResultClass, _React$Component);\n _createClass(ResultClass, null, [{\n key: 'propTypes',\n get: function get() {\n var _Component$propTypes = Component.propTypes,\n height = _Component$propTypes.height,\n width = _Component$propTypes.width,\n otherPropTypes = _objectWithoutProperties(_Component$propTypes, ['height', 'width']); // eslint-disable-line no-unused-vars\n\n return otherPropTypes;\n }\n }]);\n function ResultClass(props) {\n _classCallCheck(this, ResultClass);\n var _this = _possibleConstructorReturn(this, (ResultClass.__proto__ || Object.getPrototypeOf(ResultClass)).call(this, props));\n _this._onResize = function () {\n var containerElement = getDOMNode(_this[CONTAINER_REF]);\n var offsetHeight = containerElement.offsetHeight,\n offsetWidth = containerElement.offsetWidth;\n var newHeight = _this.state.height === offsetHeight ? {} : {\n height: offsetHeight\n };\n var newWidth = _this.state.width === offsetWidth ? {} : {\n width: offsetWidth\n };\n _this.setState(_extends({}, newHeight, newWidth));\n };\n _this.state = {\n height: 0,\n width: 0\n };\n return _this;\n }\n\n /**\n * Get the width of the container and assign the width.\n * @private\n */\n\n _createClass(ResultClass, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this._onResize();\n this.cancelSubscription = subscribeToDebouncedResize(this._onResize);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps() {\n this._onResize();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.cancelSubscription();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n var _state = this.state,\n height = _state.height,\n width = _state.width;\n var props = _extends({}, this.props, {\n animation: height === 0 && width === 0 ? null : this.props.animation\n });\n var updatedDimensions = _extends({}, isHeightFlexible ? {\n height: height\n } : {}, isWidthFlexible ? {\n width: width\n } : {});\n return React.createElement('div', {\n ref: function ref(_ref) {\n return _this2[CONTAINER_REF] = _ref;\n },\n style: {\n width: '100%',\n height: '100%'\n }\n }, React.createElement(Component, _extends({}, updatedDimensions, props)));\n }\n }]);\n return ResultClass;\n }(React.Component);\n ResultClass.displayName = 'Flexible' + getDisplayName(Component);\n return ResultClass;\n}\nexport function makeHeightFlexible(component) {\n return makeFlexible(component, false, true);\n}\nexport function makeVisFlexible(component) {\n return makeFlexible(component, true, true);\n}\nexport function makeWidthFlexible(component) {\n return makeFlexible(component, true, false);\n}\nexport var FlexibleWidthXYPlot = makeWidthFlexible(XYPlot);\nexport var FlexibleHeightXYPlot = makeHeightFlexible(XYPlot);\nexport var FlexibleXYPlot = makeVisFlexible(XYPlot);","import React, {Component} from 'react';\nimport {FlexibleXYPlot,\n FlexibleWidthXYPlot,\n FlexibleHeightXYPlot, LineSeries, VerticalGridLines,HorizontalGridLines,XAxis, YAxis,VerticalBarSeries,HorizontalBarSeries, Hint, DiscreteColorLegend, Crosshair, RadialChart, LabelSeries} from 'react-vis';\nimport _ from \"lodash\"\nimport ReactMarkdown from \"react-markdown\"\n\n\nclass Graph extends Component {\n constructor(props) {\n super(props);\n this.state = {\n crosshairValues: [],\n crosshairItems: [],\n value: false,\n barvalue:false\n };\n }\n GetCrosshairItems(){\n let Items =[]\n let i = 0\n for (let items of this.props.data){\n Items.push({title: items.title, item: items.Data[i].y})\n i++\n }\n\n }\n\n componentDidMount(){\n \n }\n\n _onMouseLeave = () => {\n this.setState({crosshairValues: []});\n };\n _onNearestX = (value, {index}) => {\nlet Crossdata = this.props.data.Data.map(d => d.Data[index])\nlet CrostitleData = []\nthis.props.data.Data.map((document, index) => (\n CrostitleData.push({title: document.title, value: Crossdata[index].y})\n))\n\n this.setState({crosshairItems: CrostitleData});\n this.setState({crosshairValues: this.props.data.Data.map(d => d.Data[index])});\n\n};\n\n\n\nrender() {\n\nswitch(this.props.data.Type){\ncase \"Bar_line\":\ncase \"Bar\":\ncase \"Line\":\n\n// let GraphData\n\n\nfor (let data of this.props.data.Data){\n // if(typeof data.Json_data !== undefined){\n // data.Data = Object.keys(data.Json_data)\n // }\n if(data.Json_data !== null){\n // console.log(\"json\", data.Json_data)\n if (data.Json_data !== undefined){\n //console.log(\"jsonData\",data.Json_data[0].Data)\n data.Data = data.Json_data[0].Data\n }\n }\n\n}\n\n// return(

test

)\nreturn (\n
\n
{this.props.data.title}
\n \n \n \n \n {this.props.data.Data[0].Data.length> 15 ? ( {\n if ((i + 1) % Math.round(this.props.data.Data[0].Data.length/10) === 0) {\n\n return t.split(',')[0];\n } else {\n return;\n }\n }}/>)\n :()\n }\n\n \n\n {this.props.data.Data.map((document, index) => (\n\n document.Type === \"bar\" ? (\n \n\n\n ):(\n \n\n \n )\n\n\n ))}\n ({value: this.state.crosshairValues[0].x})}\n itemsFormat={(d) => this.state.crosshairItems}\n\n />\n\n\n \n d.title)} colors={this.props.data.Data.map(d => d.Color)} orientation=\"horizontal\"/>\n
\n
\n)\n\n\n\n break;\n case \"Horizontal_bar\":\n\n//console.log(this.props.data.Data)\n let swappedArray =[]\n let swappedLabel =[]\n\n let barHeight = 300/((this.props.data.Data.length*this.props.data.Data[0].Data.length)+this.props.data.Data.length)\n\n\n let offset = 0\n let i = 0\nfor(let item of this.props.data.Data) {\n let swappedData = []\n if(i === 0){\n offset = -barHeight/this.props.data.Data.length\n }else{\n offset = barHeight/this.props.data.Data.length\n }\n\n for (let swap of item.Data){\n swappedData.push({y:swap.x, x:swap.y,label:swap.y})\n // swappedLabel.push({y:swap.x, x:swap.y,label:Math.round( swap.y * 10) / 10,yOffset:offset,xOffset:3})\n swappedLabel.push({y:swap.x, x:swap.y,label:Math.round( swap.y * 10) / 10,yOffset:0,xOffset:3})\n\n\n\n }\n i++\n swappedArray.push(swappedData)\n\n}\n\n\nlet range = _.range(0, _.maxBy(swappedLabel, 'x').x).length\nconst {barvalue} = this.state;\n\n\n\n\n//console.log(swappedArray)\n// swappedArray = [[{y: 5, x: 10}, {y: 10, x: 5}, {y: 20, x: 15}],[{y: 5, x: 12}, {y: 10, x: 2}, {y: 20, x: 11}]]\n return (\n
\n
{this.props.data.title}
\n \n\n \n \n {range > 1000 ? ( {\n if ((i + 1) % 5 === 0) {\n return t;\n } else {\n return;\n }\n }}/>)\n :()\n }\n \n\n {this.props.data.Data.map((document, index) => (\n\n\n \n\n \n ))}\n\n\n\n \n d.title)} colors={this.props.data.Data.map(d => d.Color)} orientation=\"horizontal\"/>\n
\n
\n )\n\n\n\n break;\n case \"Pie\":\n case \"Radial\":\nconst {value} = this.state;\nlet Data = []\n\nthis.props.data.Data.filter(a=>{\n if(a.pie_data){\n a.pie_data.forEach(b=>{\n Data.push({angle:b.angle,color:b.color,name:b.Label,sub:b.sublabel})\n })\n }\n \n\n})\n let inner = 0\n let outer = 140\nif(this.props.data.Type === \"Radial\"){\n inner = 100\n outer = 140\n}\n\n//console.log(outer)\n\n //console.log(Data)\n return (\n
\n
{this.props.data.title}
\n d.name}\n data={Data}\n labelsRadiusMultiplier={1.4}\n labelsStyle={{fontSize: 16, fill: '#222'}}\n showLabels={false}\n style={{stroke: '#fff', strokeWidth: 2}}\n onValueMouseOver={v => this.setState({value: v})}\n onSeriesMouseOut={v => this.setState({value: false})}\n width={300}\n height={300}\n padAngle={0.04}\n >\n\n {value !== false &&
\n

{value.name}

\n

{value.sub}

\n
}\n\n\n\n d.name)} colors={Data.map(d => d.color)} orientation=\"horizontal\"/>\n
\n\n
\n )\n\n\n\n break;\n\n default:\n\nreturn(<>)\n}\n\n\n\n }\n\n}\nexport default Graph;\n","import React from 'react';\n\nimport ReactMarkdown from \"react-markdown\"\nimport StrapiImage from \"../components/StrapiImage.js\"\nimport SectionGrid from \"./sectiongrid.js\"\nimport BackgroundImage from 'gatsby-background-image'\nimport AccordianSection from './accordiansection.js'\nimport ColumnSection from './columnsection.js'\nimport {returnImage} from '../actions/utils.js'\nimport AudioPlayer from 'react-h5-audio-player';\nimport 'react-h5-audio-player/lib/styles.css';\nimport Graph from \"../components/graph.js\"\nimport Video from \"./WistiaEmbed.js\"\nimport \"../css/article_image.css\"\n\n\n\n\nconst ArticleContent = props => {\n if(props.data.Content !== null){\n\n\n if(props.data.Type === \"pullout\"){\n return(
)\n }else if(props.data.Type === \"emphasis\"){\n return(
)\n }else if(props.data.Type === \"quote\"){\n return(\n
\n
\n \n
\n
\n
\n \n
\n
\n )\n }\n else{\n return()\n }\n\n\n\n }else if(props.data.Image !== null){\n return(\n
\n
\n \n
{props.data.caption}
\n
\n
\n )\n }else if(props.data.graph !== null){\n\n return()\n\n }else if(props.data.wistia_id !== null){\n return(