{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es6.number.is-finite.js","webpack:///./node_modules/react-motion/lib/react-motion.js","webpack:///./node_modules/object-keys/isArguments.js","webpack:///./node_modules/object-keys/index.js","webpack:///./node_modules/object-is/implementation.js","webpack:///./node_modules/core-js/modules/es6.object.is.js","webpack:///./node_modules/is-regex/index.js","webpack:///./node_modules/is-arguments/index.js","webpack:///./node_modules/regexp.prototype.flags/index.js","webpack:///./node_modules/es-abstract/GetIntrinsic.js","webpack:///./node_modules/define-properties/index.js","webpack:///./node_modules/@iconify/react/dist/icon.js","webpack:///./node_modules/@iconify/icons-mdi/play-circle.js","webpack:///./node_modules/core-js/modules/es6.math.sign.js","webpack:///./node_modules/function-bind/index.js","webpack:///./src/components/grid.js","webpack:///./node_modules/is-date-object/index.js","webpack:///./node_modules/core-js/modules/es6.typed.int16-array.js","webpack:///./node_modules/has-symbols/shams.js","webpack:///./node_modules/@iconify/icons-mdi/rewind.js","webpack:///./node_modules/regexp.prototype.flags/shim.js","webpack:///./node_modules/core-js/modules/es6.typed.data-view.js","webpack:///./node_modules/react-motion/lib/presets.js","webpack:///./node_modules/react-motion/lib/reorderKeys.js","webpack:///./node_modules/@iconify/icons-mdi/volume-high.js","webpack:///./node_modules/es-abstract/helpers/callBind.js","webpack:///./node_modules/core-js/modules/es6.typed.float64-array.js","webpack:///./node_modules/has-symbols/index.js","webpack:///./node_modules/regexp.prototype.flags/polyfill.js","webpack:///./node_modules/react-motion/node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/regexp.prototype.flags/implementation.js","webpack:///./node_modules/object-is/polyfill.js","webpack:///./node_modules/@iconify/icons-mdi/volume-mute.js","webpack:///./node_modules/core-js/modules/es6.typed.float32-array.js","webpack:///./node_modules/react-motion/lib/mapToZero.js","webpack:///./node_modules/core-js/modules/es6.string.sub.js","webpack:///./node_modules/function-bind/implementation.js","webpack:///./node_modules/core-js/modules/es6.typed.uint8-clamped-array.js","webpack:///./node_modules/object-is/index.js","webpack:///./node_modules/core-js/modules/es6.math.log10.js","webpack:///./node_modules/deep-equal/index.js","webpack:///./node_modules/react-motion/lib/stepper.js","webpack:///./node_modules/@iconify/icons-mdi/repeat-off.js","webpack:///./node_modules/react-motion/lib/shouldStopAnimation.js","webpack:///./node_modules/core-js/modules/_math-sign.js","webpack:///./node_modules/core-js/modules/es6.typed.uint32-array.js","webpack:///./node_modules/@iconify/icons-mdi/fast-forward.js","webpack:///./node_modules/react-motion/lib/TransitionMotion.js","webpack:///./node_modules/core-js/modules/es6.math.log2.js","webpack:///./node_modules/react-motion/lib/mergeDiff.js","webpack:///./node_modules/react-vis/es/utils/react-utils.js","webpack:///./node_modules/@iconify/icons-mdi/skip-next.js","webpack:///./node_modules/core-js/modules/es6.typed.uint16-array.js","webpack:///./node_modules/@iconify/icons-mdi/skip-previous.js","webpack:///./node_modules/core-js/modules/es6.typed.int8-array.js","webpack:///./node_modules/@iconify/icons-mdi/repeat.js","webpack:///./node_modules/object-keys/implementation.js","webpack:///./node_modules/core-js/modules/es6.string.link.js","webpack:///./node_modules/react-motion/lib/spring.js","webpack:///./node_modules/core-js/modules/es6.typed.int32-array.js","webpack:///./node_modules/react-motion/lib/stripStyle.js","webpack:///./node_modules/react-motion/lib/StaggeredMotion.js","webpack:///./node_modules/global/window.js","webpack:///./node_modules/core-js/modules/es6.weak-set.js","webpack:///./node_modules/object-is/shim.js","webpack:///./node_modules/react-motion/lib/Motion.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/formatPrefixAuto.js","webpack:///./node_modules/d3-format/src/defaultLocale.js","webpack:///./node_modules/d3-format/src/exponent.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:///./node_modules/react-h5-audio-player/es/utils.js","webpack:///./node_modules/react-h5-audio-player/es/ProgressBar.js","webpack:///./node_modules/react-h5-audio-player/es/constants.js","webpack:///./node_modules/react-h5-audio-player/es/CurrentTime.js","webpack:///./node_modules/react-h5-audio-player/es/Duration.js","webpack:///./node_modules/react-h5-audio-player/es/VolumeBar.js","webpack:///./node_modules/react-h5-audio-player/es/index.js","webpack:///./src/components/articleContent.js","webpack:///./node_modules/@iconify/icons-mdi/pause-circle.js"],"names":["$export","_isFinite","isFinite","S","it","_interopRequire","obj","__esModule","exports","_Motion","Motion","_StaggeredMotion","StaggeredMotion","_TransitionMotion","TransitionMotion","_spring","spring","_presets","presets","_stripStyle","stripStyle","_reorderKeys","reorderKeys","toStr","Object","prototype","toString","module","value","str","call","isArgs","length","callee","slice","Array","origKeys","keys","keysShim","o","originalKeys","shim","args","arguments","object","numberIsNaN","a","b","is","regexExec","isRegexMarker","badStringifier","hasToStringTag","Symbol","toStringTag","Function","bind","RegExp","exec","throwRegexMarker","valueOf","toPrimitive","e","isStandardArguments","isLegacyArguments","supportsStandardArguments","define","callBind","implementation","getPolyfill","flagsBound","$TypeError","TypeError","$gOPD","getOwnPropertyDescriptor","throwTypeError","ThrowTypeError","calleeThrows","get","gOPDthrows","hasSymbols","getProto","getPrototypeOf","x","__proto__","asyncGenIterator","undefined","TypedArray","Uint8Array","INTRINSICS","ArrayBuffer","iterator","entries","forEach","values","asyncIterator","Atomics","Boolean","DataView","Date","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","Error","eval","EvalError","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","isNaN","JSON","parse","Map","Math","Number","parseFloat","parseInt","Promise","then","all","reject","resolve","Proxy","RangeError","ReferenceError","Reflect","Set","SharedArrayBuffer","String","SyntaxError","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakMap","WeakSet","$replace","replace","rePropName","reEscapeChar","stringToPath","string","result","match","number","quote","subString","getBaseIntrinsic","name","allowMissing","parts","i","desc","concat","origDefineProperty","defineProperty","supportsDescriptors","_","enumerable","arePropertyDescriptorsSupported","predicate","fn","configurable","writable","defineProperties","map","predicates","props","getOwnPropertySymbols","InlineIcon","Icon","_react","_typeof","constructor","_defineProperties","target","descriptor","key","idCounter","unitsSplit","unitsTest","iconAttributes","defaultAttributes","left","top","width","height","rotate","hFlip","vFlip","SVG","icon","instance","Constructor","_classCallCheck","this","_item","protoProps","staticProps","create","node","indexOf","size","ratio","precision","ceil","split","num","results","code","shift","isNumber","test","push","join","body","prefix","regex","ids","strReplace","search","subject","pos","now","random","id","newID","item","align","horizontal","vertical","transform","style","attributes","inline","box","inlineTop","inlineHeight","flip","toLowerCase","units","round","tempValue","transformations","unshift","customWidth","customHeight","calculateDimension","verticalAlign","preserveAspectRatio","getAlignment","viewBox","replaceIDs","color","addExtra","splitAttributes","data","getAttributes","svg","attr","component","iconProps","customAttributes","iconData","normalize","_key","xmlns","focusable","dangerouslySetInnerHTML","__html","createElement","_default","sign","Grid","state","more","loadMore","event","setState","preventDefault","render","Articles","Today","articles","withoutlimits","article","type","title","image","OG_image","slug","author","authors","date","createdAt","TileBackgroundColor","TileBordercolor","TileTextColor","projects","Project_name","Project_image","Header_image","Author","sub_message","Sub_message","MainColour","textColor","podcasts","services","service_name","service_image","service_intro","secondColor","events","Event_name","event_image","location","contacts","videos","cover_image","wisita_id","Player_colour","LatestArticles","ArticlesArchieve","Homepage","chunk","orderBy","Pathname","pathname","remove","n","Slug","includes","filter","shuffle","className","document","index","onClick","to","Component","withLocation","connect","pods","micrositeID","getArticle","getPodcasts","getDay","tryDateObject","init","byteOffset","sym","symObj","getOwnPropertyNames","syms","propertyIsEnumerable","gOPD","TypeErr","polyfill","proto","G","W","F","ABV","noWobble","stiffness","damping","gentle","wobbly","stiff","GetIntrinsic","$apply","$call","$reflectApply","apply","origSymbol","global","hasSymbolSham","flags","dotAll","getNanoSeconds","hrtime","loadTime","performance","process","hr","getTime","$Object","ignoreCase","multiline","unicode","sticky","ret","hasOwnProperty","createHTML","ERROR_MESSAGE","that","bound","binder","boundLength","max","boundArgs","Empty","log10","log","LOG10E","objectKeys","isArguments","isRegex","isDate","deepEqual","actual","expected","options","opts","strict","isUndefinedOrNull","aIsRegex","bIsRegex","source","aIsBuffer","isBuffer","bIsBuffer","ka","kb","sort","objEquiv","copy","secondPerFrame","v","destX","k","newV","newX","abs","reusedTuple","currentStyle","currentVelocity","styleValue","val","_extends","assign","_createClass","_interopRequireDefault","_mapToZero2","_stripStyle2","_stepper4","_mergeDiff2","_performanceNow2","_raf2","_shouldStopAnimation2","_react2","_propTypes2","rehydrateStyles","mergedPropsStyles","unreadPropStyles","plainStyles","cUnreadPropStyles","mergedPropsStyle","j","mergeAndSync","willEnter","willLeave","didLeave","oldMergedPropsStyles","destStyles","oldCurrentStyles","oldCurrentVelocities","oldLastIdealStyles","oldLastIdealVelocities","newMergedPropsStyles","oldIndex","oldMergedPropsStyle","leavingStyle","newCurrentStyles","newCurrentVelocities","newLastIdealStyles","newLastIdealVelocities","newMergedPropsStyleCell","foundOldIndex","plainStyle","velocity","_React$Component","_this","unmounting","animationID","prevTime","accumulatedTime","clearUnreadPropStyle","_mergeAndSync","currentStyles","currentVelocities","lastIdealStyles","lastIdealVelocities","unreadPropStyle","dirty","startAnimationIfNecessary","timestamp","propStyles","styles","shouldStopAnimationAll","currentTime","timeDelta","currentFrameCompletion","floor","framesToCatchUp","_mergeAndSync2","newMergedPropsStyle","newCurrentStyle","newCurrentVelocity","newLastIdealStyle","newLastIdealVelocity","newLastIdealStyleValue","newLastIdealVelocityValue","_stepper","_stepper2","nextIdealX","nextIdealV","defaultState","subClass","superClass","setPrototypeOf","_inherits","defaultStyles","arrayOf","shape","isRequired","any","objectOf","oneOfType","func","children","styleThatEntered","_props","defaultStyleCell","s","_mergeAndSync3","componentDidMount","componentWillReceiveProps","componentWillUnmount","cancel","hydratedStyles","renderedChildren","Children","only","log2","LN2","prev","next","onRemove","prevKeyIndex","nextKeyIndex","fill","nextOrderA","nextOrderB","prevOrderA","prevOrderB","pivot","_React$version$split2","arr","isArray","_arr","_n","_d","_e","_s","_i","done","err","sliceIterator","_slicedToArray","version","major","minor","versionHigherThanThirteen","getDOMNode","ref","USED_MESSAGES","HIDDEN_PROCESSES","warning","message","onlyShowMessageOnce","console","warn","has","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","window","isObject","isFunction","isString","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","url","config","defaultConfig","_presets2","_state","someDirty","destStyle","win","self","weak","validate","add","def","wasAnimating","lastIdealStyle","lastIdealVelocity","propsStyle","onRest","defaultStyle","d","RedBlackTree","RedBlackNode","U","C","L","R","P","N","RedBlackRotateLeft","tree","p","q","parent","RedBlackRotateRight","RedBlackFirst","insert","after","grandpa","uncle","sibling","red","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","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","epsilon","iArc","nArcs","addBeach","dxl","dxr","directrix","leftBreakPoint","rightBreakPoint","createCell","newArc","hb","rfocx","rfocy","pby2","Infinity","lfocx","lfocy","plby2","hl","aby2","lexicographic","Diagram","sites","extent","m","array","sortCellHalfedges","clipEdges","iCell","iHalfedge","nHalfedges","start","startX","startY","end","endX","endY","nCells","cover","splice","d2","dc","v00","v01","v11","v10","clipCells","edges","polygons","polygon","triangles","s0","c","e1","s1","links","find","radius","i0","i1","_found","vx","vy","v2","voronoi","constant","factory","extend","definition","Color","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","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","rgbn","Rgb","rgba","hsla","NaN","g","rgbConvert","opacity","rgb_formatHex","rgb_formatRgb","min","h","Hsl","hslConvert","hsl","hsl2rgb","m1","m2","basis","v3","t2","t3","channels","displayable","hex","formatHsl","brighter","pow","darker","linear","t","gamma","nogamma","exponential","rgbGamma","rgbSpline","spline","colors","isNumberArray","isView","genericArray","nb","na","setTime","reA","reB","am","bm","bs","bi","lastIndex","one","numberArray","ANIMATION_PROPTYPES","nonAnimatedProps","bool","extractAnimatedPropValues","animatedProps","otherProps","_objectWithoutProperties","reduce","animatedPropName","_PureComponent","Animation","_possibleConstructorReturn","_motionEndHandler","onEnd","_renderChildren","_ref","interpolator","_interpolator","child","interpolatedProps","_data","row","correspondingCell","cloneElement","_animation","_updateInterpolator","onStart","oldProps","newProps","animationStyle","getAnimationStyle","animation","displayName","AnimationPropType","f","compare","ascending","lo","hi","mid","ascendingBisect","bisector","bisectRight","bisect","valueof","stop","step","range","e10","e5","e2","reverse","ticks","count","tickIncrement","power","LN10","error","tickStep","step0","step1","sum","each","set","property","clear","empty","_sortValues","_rollup","nest","_sortKeys","depth","createResult","setResult","keyValue","valuesByKey","createObject","setObject","createMap","setMap","_entries","sortKey","sortKeys","order","sortValues","rollup","implicit","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","FormatSpecifier","symbol","zero","comma","prefixExponent","toExponential","coefficient","formatDecimal","exponent","toFixed","toPrecision","_p","formatRounded","toUpperCase","_x","prefixes","group","locale","grouping","thousands","substring","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","percent","minus","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","formatTrim","charCodeAt","padding","formatPrefix","precisionPrefix","precisionRound","precisionFixed","linearish","tickFormat","nice","interval","pow10","powp","base","E","exp","logp","reflect","raise","newInterval","floori","offseti","field","offset","every","setMonth","setHours","setFullYear","getFullYear","setDate","getMonth","weekday","getDate","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","utcDate","UTC","newDate","utcFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","names","formatLookup","parseWeekdayNumberSunday","w","parseWeekdayNumberMonday","u","parseWeekNumberSunday","parseWeekNumberISO","V","parseWeekNumberMonday","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","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatFullYear","formatZone","z","formatUTCDayOfMonth","formatUTCHour24","getUTCHours","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","getUTCMonth","formatUTCMinutes","getUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","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","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","_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","distance","baseValue","isValue","_getScaleDistanceAndAdjustedDomain","_normalizeValues","setOfValues","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","oneOf","extractScalePropsFromProps","isPlainSet","isUnderscoreSet","usesGet","getMissingScaleProps","_domain","domainPadding","_padDomain","defaultValue","response","getFontColorFromBackground","background","getXYPlotValues","XYPlotScales","scaleInput","OPTIONAL_SCALE_PROPS_REGS","getOptionalScaleProps","acc","prop","reg","propTypes","onValueMouseOver","onValueMouseOut","onValueClick","onValueRightClick","onSeriesMouseOver","onSeriesMouseOut","onSeriesClick","onSeriesRightClick","onNearestX","onNearestXY","stack","AbstractSeries","_temp","_len","_seriesClickHandler","_seriesMouseOutHandler","_seriesMouseOverHandler","_seriesRightClickHandler","_valueClickHandler","_this$props","_valueMouseOutHandler","_this$props2","_valueMouseOverHandler","_this$props3","_valueRightClickHandler","_this$props4","_handleNearestXY","_handleNearestX","onParentMouseMove","_props2","_props2$marginTop","marginTop","_props2$marginLeft","marginLeft","evt","nativeEvent","currentTarget","rect","getBoundingClientRect","clientX","clientY","touches","pageX","pageY","clientLeft","clientTop","_props3","minDistance","POSITIVE_INFINITY","valueIndex","coordinate","_getXYCoordinateInContainer","xScaleFn","_getAttributeFunctor","currentCoordinate","newDistance","innerX","_props4","yScaleFn","foundPoint","voronoiInstance","innerY","defaultProps","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","nextProps","defaultScaleProps","_getDefaultScaleProps","userScaleProps","missingScaleProps","innerWidth","innerHeight","radiusRange","_radiusValue","angleType","_this2","disableSeries","hideSeries","cloneData","stroke","radiusDomain","radius0","predefinedClassName","onMouseOver","onMouseOut","onContextMenu","pointerEvents","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","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","values1","wi","transformPolygon","transformRing","transformPoint","resize","cellSize","geo","projectionStream","contextStream","path","measure","projection","_getDomain","getDomain","colorScale","defaultTitleFormat","getFirstNonEmptyValue","defaultItemsFormat","Crosshair","items","itemsFormat","titleFormat","titleItem","innerLeft","_props$orientation","orientation","innerClassName","_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","generatePoints","tickAngle","getAxisAngle","tickProps","textProps","textAnchor","DecorativeAxis","DEFAULT_FORMAT","strokeWidth","GradientDefs","direction","GridLines","isVertical","tickXAttr","tickYAttr","_pathProps","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","bin","hexagon","centers","mesh","fragment","hexagonPath","hexes","countDomain","getColorDomain","getLocs","xLoc","offsetX","yLoc","offsetY","Highlight","dragging","brushArea","brushing","startLocX","startLocY","dragArea","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","_mapOrientationToAlign","_getXCSS","_getYCSS","getAlignStyle","_getAlign","position","_getAlignStyle","positionClassName","_getAlignClassNames","_getCSSLeft","_getCSSRight","_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","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","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","devicePixelRatio","cleanseData","XYPlot","stackBy","scaleMixins","_getScaleMixins","dontCheckIfEmpty","onDoubleClick","onWheel","nextData","nextScaleMixins","hasTreeStructure","newMixins","oldMixins","checkIfMixinsAreEqual","dimensions","seriesProps","XYPlotValues","dataProps","_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","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","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","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","Type","Json_data","itle","Yaxis","strokeLinejoin","whiteSpace","caption","swappedArray","swappedLabel","barHeight","swappedData","swap","maxBy","fontFamily","fontWeight","Label","sub","sublabel","inner","outer","textAlign","getMainLayoutClassName","getPosX","MouseEvent","addHeadingZero","getDisplayTimeBySeconds","seconds","totalSeconds","timeFormat","minStr","secStr","minStrForHour","mmSs","hhMmSs","throttle","limit","inThrottle","arg","RHAP_UI","ProgressBar","isDraggingProgress","currentTimePos","hasDownloadProgressAnimation","downloadProgressArr","waitingForSeekCallback","audio","progressBar","src","srcDuration","progressBarRect","maxRelativePos","relativePos","getDuration","stopPropagation","_this$getCurrentProgr","getCurrentProgress","timeOnMouseMove","handleWindowMouseOrTouchMove","handleWindowMouseOrTouchUp","windowSelection","getSelection","_this$getCurrentProgr2","newTime","onSeek","duration","progressUpdateInterval","buffered","bufferedStart","bufferedEnd","downloadProgressAnimationTimer","_proto","componentDidUpdate","hasAddedAudioEventListener","handleAudioTimeUpdate","handleAudioDownloadProgressUpdate","showDownloadProgress","showFilledProgress","_this$state","role","tabIndex","handleMouseDownOrTouchStartProgressBar","handleContextMenu","transitionDuration","CurrentTime","defaultCurrentTime","isLeftTime","handleAudioCurrentTimeChange","Duration","defaultDuration","handleAudioDurationChange","VolumeControls","volume","currentVolumePos","lastVolume","hasVolumeAnimation","isDraggingVolume","volumeBar","currentVolume","volumeBarRect","_this$getCurrentVolum","getCurrentVolume","_this$getCurrentVolum2","onMuteChange","volumeAnimationTimer","handleAudioVolumeChange","handleVolumnControlMouseOrTouchDown","H5AudioPlayer","paused","playAudioPromise","pause","play","onPlayError","ended","forceUpdate","onPlay","onPause","onAbort","loop","progressJumpSteps","progressJumpStep","jumpStep","backward","setJumpTime","forward","newVolume","keyCode","container","togglePlay","handleClickRewind","handleClickForward","setJumpVolume","volumeJumpStep","handleClickLoopButton","handleClickVolumeButton","modules","comp","renderUIModule","customIcons","showSkipControls","onClickPrevious","onClickNext","showJumpControls","customAdditionalControls","customVolumeControls","muted","volumeProp","loopProp","mse","CURRENT_TIME","CURRENT_LEFT_TIME","PROGRESS_BAR","DURATION","ADDITIONAL_CONTROLS","renderUIModules","MAIN_CONTROLS","actionIcon","isPlaying","rewind","VOLUME_CONTROLS","LOOP","loopIcon","loopOff","VOLUME","volumeIcon","_ref$volume","volumeMute","VolumeBar","handleMuteChange","onError","onCanPlay","onCanPlayThrough","handlePlay","handleAbort","onEnded","handlePause","onListen","listenInterval","onVolumeChange","onEcrypted","prevProps","autoPlayAfterSrcChange","removeAttribute","load","_this$props5","preload","autoPlay","crossOrigin","mediaGroup","header","footer","customProgressBarSection","customControlsSection","onKeyDown","handleKeyDown","controls","Location","Content","backgroundColor","MainColor","escapeHtml","Image","StrapiImage","imageInfo","wistia_id","hashedId","playerColor","mp3","publicURL","gtag","href","teaser"],"mappings":"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","file":"e46cbf24c4164473065311c49d16305c3722b956-50372a89885231e89522.js","sourcesContent":["// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n","'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequire(obj) {\n return obj && obj.__esModule ? obj['default'] : obj;\n}\n\nvar _Motion = require('./Motion');\n\nexports.Motion = _interopRequire(_Motion);\n\nvar _StaggeredMotion = require('./StaggeredMotion');\n\nexports.StaggeredMotion = _interopRequire(_StaggeredMotion);\n\nvar _TransitionMotion = require('./TransitionMotion');\n\nexports.TransitionMotion = _interopRequire(_TransitionMotion);\n\nvar _spring = require('./spring');\n\nexports.spring = _interopRequire(_spring);\n\nvar _presets = require('./presets');\n\nexports.presets = _interopRequire(_presets);\n\nvar _stripStyle = require('./stripStyle');\n\nexports.stripStyle = _interopRequire(_stripStyle); // deprecated, dummy warning function\n\nvar _reorderKeys = require('./reorderKeys');\n\nexports.reorderKeys = _interopRequire(_reorderKeys);","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n var str = toStr.call(value);\n var isArgs = str === '[object Arguments]';\n\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\n return isArgs;\n};","'use strict';\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nvar slice = Array.prototype.slice;\n\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) {\n return origKeys(o);\n} : require('./implementation');\nvar originalKeys = Object.keys;\n\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\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\n return originalKeys(object);\n };\n }\n } else {\n Object.keys = keysShim;\n }\n\n return Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;","'use strict';\n\nvar numberIsNaN = function numberIsNaN(value) {\n return value !== value;\n};\n\nmodule.exports = function is(a, b) {\n if (a === 0 && b === 0) {\n return 1 / a === 1 / b;\n }\n\n if (a === b) {\n return true;\n }\n\n if (numberIsNaN(a) && numberIsNaN(b)) {\n return true;\n }\n\n return false;\n};","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nrequire(\"core-js/modules/es6.function.bind\");\n\nrequire(\"core-js/modules/es7.symbol.async-iterator\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nvar hasSymbols = require('has-symbols')();\n\nvar hasToStringTag = hasSymbols && typeof Symbol.toStringTag === 'symbol';\nvar regexExec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n regexExec = Function.call.bind(RegExp.prototype.exec);\n isRegexMarker = {};\n\n var throwRegexMarker = function throwRegexMarker() {\n throw isRegexMarker;\n };\n\n badStringifier = {\n toString: throwRegexMarker,\n valueOf: throwRegexMarker\n };\n\n if (typeof Symbol.toPrimitive === 'symbol') {\n badStringifier[Symbol.toPrimitive] = throwRegexMarker;\n }\n}\n\nvar toStr = Object.prototype.toString;\nvar regexClass = '[object RegExp]';\nmodule.exports = hasToStringTag // eslint-disable-next-line consistent-return\n? function isRegex(value) {\n if (!value || typeof value !== 'object') {\n return false;\n }\n\n try {\n regexExec(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\n return toStr.call(value) === regexClass;\n};","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es7.symbol.async-iterator\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\nvar toStr = Object.prototype.toString;\n\nvar isStandardArguments = function isArguments(value) {\n if (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n return false;\n }\n\n return toStr.call(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n if (isStandardArguments(value)) {\n return true;\n }\n\n return value !== null && typeof value === 'object' && typeof value.length === 'number' && value.length >= 0 && toStr.call(value) !== '[object Array]' && toStr.call(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = function () {\n return isStandardArguments(arguments);\n}();\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;","'use strict';\n\nvar define = require('define-properties');\n\nvar callBind = require('es-abstract/helpers/callBind');\n\nvar implementation = require('./implementation');\n\nvar getPolyfill = require('./polyfill');\n\nvar shim = require('./shim');\n\nvar flagsBound = callBind(implementation);\ndefine(flagsBound, {\n getPolyfill: getPolyfill,\n implementation: implementation,\n shim: shim\n});\nmodule.exports = flagsBound;","'use strict';\n/* globals\n\tAtomics,\n\tSharedArrayBuffer,\n*/\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.weak-set\");\n\nrequire(\"core-js/modules/es6.weak-map\");\n\nrequire(\"core-js/modules/es6.typed.uint32-array\");\n\nrequire(\"core-js/modules/es6.typed.uint16-array\");\n\nrequire(\"core-js/modules/es6.typed.uint8-clamped-array\");\n\nrequire(\"core-js/modules/es6.set\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nrequire(\"core-js/modules/es6.promise\");\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.number.constructor\");\n\nrequire(\"core-js/modules/es6.string.iterator\");\n\nrequire(\"core-js/modules/es6.map\");\n\nrequire(\"core-js/modules/es6.typed.int32-array\");\n\nrequire(\"core-js/modules/es6.typed.int16-array\");\n\nrequire(\"core-js/modules/es6.typed.int8-array\");\n\nrequire(\"core-js/modules/es6.typed.float64-array\");\n\nrequire(\"core-js/modules/es6.typed.float32-array\");\n\nrequire(\"core-js/modules/es6.typed.data-view\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es7.symbol.async-iterator\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.typed.uint8-array\");\n\nvar undefined;\nvar $TypeError = TypeError;\nvar $gOPD = Object.getOwnPropertyDescriptor;\n\nif ($gOPD) {\n try {\n $gOPD({}, '');\n } catch (e) {\n $gOPD = null; // this is IE 8, which has a broken gOPD\n }\n}\n\nvar throwTypeError = function throwTypeError() {\n throw new $TypeError();\n};\n\nvar ThrowTypeError = $gOPD ? function () {\n try {\n // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n arguments.callee; // IE 8 does not throw here\n\n return throwTypeError;\n } catch (calleeThrows) {\n try {\n // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n return $gOPD(arguments, 'callee').get;\n } catch (gOPDthrows) {\n return throwTypeError;\n }\n }\n}() : throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) {\n return x.__proto__;\n}; // eslint-disable-line no-proto\n\n\nvar generator; // = function * () {};\n\nvar generatorFunction = generator ? getProto(generator) : undefined;\nvar asyncFn; // async function() {};\n\nvar asyncFunction = asyncFn ? asyncFn.constructor : undefined;\nvar asyncGen; // async function * () {};\n\nvar asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined;\nvar asyncGenIterator = asyncGen ? asyncGen() : undefined;\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\nvar INTRINSICS = {\n '%Array%': Array,\n '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n '%ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype,\n '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n '%ArrayPrototype%': Array.prototype,\n '%ArrayProto_entries%': Array.prototype.entries,\n '%ArrayProto_forEach%': Array.prototype.forEach,\n '%ArrayProto_keys%': Array.prototype.keys,\n '%ArrayProto_values%': Array.prototype.values,\n '%AsyncFromSyncIteratorPrototype%': undefined,\n '%AsyncFunction%': asyncFunction,\n '%AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined,\n '%AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined,\n '%AsyncGeneratorFunction%': asyncGenFunction,\n '%AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined,\n '%AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined,\n '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n '%Boolean%': Boolean,\n '%BooleanPrototype%': Boolean.prototype,\n '%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n '%DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype,\n '%Date%': Date,\n '%DatePrototype%': Date.prototype,\n '%decodeURI%': decodeURI,\n '%decodeURIComponent%': decodeURIComponent,\n '%encodeURI%': encodeURI,\n '%encodeURIComponent%': encodeURIComponent,\n '%Error%': Error,\n '%ErrorPrototype%': Error.prototype,\n '%eval%': eval,\n // eslint-disable-line no-eval\n '%EvalError%': EvalError,\n '%EvalErrorPrototype%': EvalError.prototype,\n '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n '%Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype,\n '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n '%Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype,\n '%Function%': Function,\n '%FunctionPrototype%': Function.prototype,\n '%Generator%': generator ? getProto(generator()) : undefined,\n '%GeneratorFunction%': generatorFunction,\n '%GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined,\n '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n '%Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype,\n '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n '%Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype,\n '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n '%Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype,\n '%isFinite%': isFinite,\n '%isNaN%': isNaN,\n '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n '%JSON%': typeof JSON === 'object' ? JSON : undefined,\n '%JSONParse%': typeof JSON === 'object' ? JSON.parse : undefined,\n '%Map%': typeof Map === 'undefined' ? undefined : Map,\n '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n '%MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype,\n '%Math%': Math,\n '%Number%': Number,\n '%NumberPrototype%': Number.prototype,\n '%Object%': Object,\n '%ObjectPrototype%': Object.prototype,\n '%ObjProto_toString%': Object.prototype.toString,\n '%ObjProto_valueOf%': Object.prototype.valueOf,\n '%parseFloat%': parseFloat,\n '%parseInt%': parseInt,\n '%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n '%PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype,\n '%PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then,\n '%Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all,\n '%Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject,\n '%Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve,\n '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n '%RangeError%': RangeError,\n '%RangeErrorPrototype%': RangeError.prototype,\n '%ReferenceError%': ReferenceError,\n '%ReferenceErrorPrototype%': ReferenceError.prototype,\n '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n '%RegExp%': RegExp,\n '%RegExpPrototype%': RegExp.prototype,\n '%Set%': typeof Set === 'undefined' ? undefined : Set,\n '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n '%SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype,\n '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n '%SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype,\n '%String%': String,\n '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n '%StringPrototype%': String.prototype,\n '%Symbol%': hasSymbols ? Symbol : undefined,\n '%SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined,\n '%SyntaxError%': SyntaxError,\n '%SyntaxErrorPrototype%': SyntaxError.prototype,\n '%ThrowTypeError%': ThrowTypeError,\n '%TypedArray%': TypedArray,\n '%TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined,\n '%TypeError%': $TypeError,\n '%TypeErrorPrototype%': $TypeError.prototype,\n '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n '%Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype,\n '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n '%Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype,\n '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n '%Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype,\n '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n '%Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype,\n '%URIError%': URIError,\n '%URIErrorPrototype%': URIError.prototype,\n '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n '%WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype,\n '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n '%WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype\n};\n\nvar bind = require('function-bind');\n\nvar $replace = bind.call(Function.call, String.prototype.replace);\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\n\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g;\n/** Used to match backslashes in property paths. */\n\nvar stringToPath = function stringToPath(string) {\n var result = [];\n $replace(string, rePropName, function (match, number, quote, subString) {\n result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n });\n return result;\n};\n/* end adaptation */\n\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n if (!(name in INTRINSICS)) {\n throw new SyntaxError('intrinsic ' + name + ' does not exist!');\n } // istanbul ignore if // hopefully this is impossible to test :-)\n\n\n if (typeof INTRINSICS[name] === 'undefined' && !allowMissing) {\n throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n }\n\n return INTRINSICS[name];\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n if (typeof name !== 'string' || name.length === 0) {\n throw new TypeError('intrinsic name must be a non-empty string');\n }\n\n if (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n throw new TypeError('\"allowMissing\" argument must be a boolean');\n }\n\n var parts = stringToPath(name);\n var value = getBaseIntrinsic('%' + (parts.length > 0 ? parts[0] : '') + '%', allowMissing);\n\n for (var i = 1; i < parts.length; i += 1) {\n if (value != null) {\n if ($gOPD && i + 1 >= parts.length) {\n var desc = $gOPD(value, parts[i]);\n\n if (!allowMissing && !(parts[i] in value)) {\n throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n }\n\n value = desc ? desc.get || desc.value : value[parts[i]];\n } else {\n value = value[parts[i]];\n }\n }\n }\n\n return value;\n};","'use strict';\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es7.symbol.async-iterator\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nvar keys = require('object-keys');\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function isFunction(fn) {\n return typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function arePropertyDescriptorsSupported() {\n var obj = {};\n\n try {\n origDefineProperty(obj, 'x', {\n enumerable: false,\n value: obj\n }); // eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\n for (var _ in obj) {\n // jscs:ignore disallowUnusedVariables\n return false;\n }\n\n return obj.x === obj;\n } catch (e) {\n /* this is IE 8. */\n return false;\n }\n};\n\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function defineProperty(object, name, value, predicate) {\n if (name in object && (!isFunction(predicate) || !predicate())) {\n return;\n }\n\n if (supportsDescriptors) {\n origDefineProperty(object, name, {\n configurable: true,\n enumerable: false,\n value: value,\n writable: true\n });\n } else {\n object[name] = value;\n }\n};\n\nvar defineProperties = function defineProperties(object, map) {\n var predicates = arguments.length > 2 ? arguments[2] : {};\n var props = keys(map);\n\n if (hasSymbols) {\n props = concat.call(props, Object.getOwnPropertySymbols(map));\n }\n\n for (var i = 0; i < props.length; i += 1) {\n defineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n }\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\nmodule.exports = defineProperties;","\"use strict\";\n\nrequire(\"core-js/modules/es6.date.now\");\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\nrequire(\"core-js/modules/es6.object.create\");\n\nrequire(\"core-js/modules/es7.symbol.async-iterator\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.InlineIcon = exports.Icon = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n/**\n * Unique id counter\n *\n * @type {number}\n */\n\n\nvar idCounter = 0;\n/**\n * Regex used to split dimensions\n *\n * @type {RegExp}\n * @private\n */\n\nvar unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nvar unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;\n/**\n * Attributes used for icon\n *\n * @type {string[]}\n */\n\nvar iconAttributes = ['width', 'height', 'inline', 'hFlip', 'vFlip', 'flip', 'rotate', 'align', 'color', 'box'];\n/**\n * Default attribute values\n *\n * @type {object}\n */\n\nvar defaultAttributes = {\n left: 0,\n top: 0,\n width: 16,\n height: 16,\n rotate: 0,\n hFlip: false,\n vFlip: false\n};\n/**\n * Add missing properties to icon\n *\n * Important: in PHP version of this library this function is part of Collection class: Collection::addMissingAttributes()\n *\n * JavaScript version uses separate file so this function could be used in React and other components without loading\n * entire Collection class.\n *\n * @param {object} data\n * @return {object}\n */\n\nfunction normalize(data) {\n // Object.create, compatible with IE11\n var item = Object.create(null);\n var key;\n\n for (key in defaultAttributes) {\n item[key] = defaultAttributes[key];\n }\n\n for (key in data) {\n item[key] = data[key];\n } // Attributes derived from other attributes\n\n\n if (item.inlineTop === void 0) {\n item.inlineTop = item.top;\n }\n\n if (item.inlineHeight === void 0) {\n item.inlineHeight = item.height;\n }\n\n if (item.verticalAlign === void 0) {\n // -0.143 if icon is designed for 14px height,\n // otherwise assume icon is designed for 16px height\n item.verticalAlign = item.height % 7 === 0 && item.height % 8 !== 0 ? -0.143 : -0.125;\n }\n\n return item;\n}\n/**\n * Get preserveAspectRatio attribute value\n *\n * @param {object} align\n * @return {string}\n * @private\n */\n\n\nfunction getAlignment(align) {\n var result;\n\n switch (align.horizontal) {\n case 'left':\n result = 'xMin';\n break;\n\n case 'right':\n result = 'xMax';\n break;\n\n default:\n result = 'xMid';\n }\n\n switch (align.vertical) {\n case 'top':\n result += 'YMin';\n break;\n\n case 'bottom':\n result += 'YMax';\n break;\n\n default:\n result += 'YMid';\n }\n\n result += align.slice ? ' slice' : ' meet';\n return result;\n}\n/**\n * SVG class\n *\n * @see @iconify/json-tools/src/svg.js\n */\n\n\nvar SVG = /*#__PURE__*/function () {\n /**\n * Constructor\n *\n * @param icon Icon data\n * Use Collection.getIconData() to retrieve icon data\n */\n function SVG(icon) {\n _classCallCheck(this, SVG);\n\n this._item = icon;\n }\n /**\n * Get SVG attributes\n *\n * @param {object} props Custom properties (same as query string in Iconify API)\n * @returns {string}\n */\n\n\n _createClass(SVG, [{\n key: \"getAttributes\",\n value: function getAttributes(props) {\n var item = this._item;\n\n if (_typeof(props) !== 'object') {\n props = Object.create(null);\n } // Set data\n\n\n var align = {\n horizontal: 'center',\n vertical: 'middle',\n slice: false\n };\n var transform = {\n rotate: item.rotate,\n hFlip: item.hFlip,\n vFlip: item.vFlip\n };\n var style = Object.create(null);\n var attributes = Object.create(null); // Get width/height\n\n var inline = props.inline === true || props.inline === 'true' || props.inline === '1';\n var box = {\n left: item.left,\n top: inline ? item.inlineTop : item.top,\n width: item.width,\n height: inline ? item.inlineHeight : item.height\n }; // Transformations\n\n ['hFlip', 'vFlip'].forEach(function (key) {\n if (props[key] !== void 0 && (props[key] === true || props[key] === 'true' || props[key] === '1')) {\n transform[key] = !transform[key];\n }\n });\n\n if (props.flip !== void 0) {\n props.flip.toLowerCase().split(/[\\s,]+/).forEach(function (value) {\n switch (value) {\n case 'horizontal':\n transform.hFlip = !transform.hFlip;\n break;\n\n case 'vertical':\n transform.vFlip = !transform.vFlip;\n }\n });\n }\n\n if (props.rotate !== void 0) {\n var value = props.rotate;\n\n if (typeof value === 'number') {\n transform.rotate += value;\n } else if (typeof value === 'string') {\n var units = value.replace(/^-?[0-9.]*/, '');\n\n if (units === '') {\n value = parseInt(value);\n\n if (!isNaN(value)) {\n transform.rotate += value;\n }\n } else if (units !== value) {\n var split = false;\n\n switch (units) {\n case '%':\n // 25% -> 1, 50% -> 2, ...\n split = 25;\n break;\n\n case 'deg':\n // 90deg -> 1, 180deg -> 2, ...\n split = 90;\n }\n\n if (split) {\n value = parseInt(value.slice(0, value.length - units.length));\n\n if (!isNaN(value)) {\n transform.rotate += Math.round(value / split);\n }\n }\n }\n }\n } // Apply transformations to box\n\n\n var transformations = [],\n tempValue;\n\n if (transform.hFlip) {\n if (transform.vFlip) {\n transform.rotate += 2;\n } else {\n // Horizontal flip\n transformations.push('translate(' + (box.width + box.left) + ' ' + (0 - box.top) + ')');\n transformations.push('scale(-1 1)');\n box.top = box.left = 0;\n }\n } else if (transform.vFlip) {\n // Vertical flip\n transformations.push('translate(' + (0 - box.left) + ' ' + (box.height + box.top) + ')');\n transformations.push('scale(1 -1)');\n box.top = box.left = 0;\n }\n\n switch (transform.rotate % 4) {\n case 1:\n // 90deg\n tempValue = box.height / 2 + box.top;\n transformations.unshift('rotate(90 ' + tempValue + ' ' + tempValue + ')'); // swap width/height and x/y\n\n if (box.left !== 0 || box.top !== 0) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n\n break;\n\n case 2:\n // 180deg\n transformations.unshift('rotate(180 ' + (box.width / 2 + box.left) + ' ' + (box.height / 2 + box.top) + ')');\n break;\n\n case 3:\n // 270deg\n tempValue = box.width / 2 + box.left;\n transformations.unshift('rotate(-90 ' + tempValue + ' ' + tempValue + ')'); // swap width/height and x/y\n\n if (box.left !== 0 || box.top !== 0) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n\n break;\n } // Calculate dimensions\n // Values for width/height: null = default, 'auto' = from svg, false = do not set\n // Default: if both values aren't set, height defaults to '1em', width is calculated from height\n\n\n var customWidth = props.width ? props.width : null;\n var customHeight = props.height ? props.height : null;\n var width, height;\n\n if (customWidth === null && customHeight === null) {\n customHeight = '1em';\n }\n\n if (customWidth !== null && customHeight !== null) {\n width = customWidth;\n height = customHeight;\n } else if (customWidth !== null) {\n width = customWidth;\n height = SVG.calculateDimension(width, box.height / box.width);\n } else {\n height = customHeight;\n width = SVG.calculateDimension(height, box.width / box.height);\n }\n\n if (width !== false) {\n attributes.width = width === 'auto' ? box.width : width;\n }\n\n if (height !== false) {\n attributes.height = height === 'auto' ? box.height : height;\n } // Add vertical-align for inline icon\n\n\n if (inline && item.verticalAlign !== 0) {\n style['vertical-align'] = item.verticalAlign + 'em';\n } // Check custom alignment\n\n\n if (props.align !== void 0) {\n props.align.toLowerCase().split(/[\\s,]+/).forEach(function (value) {\n switch (value) {\n case 'left':\n case 'right':\n case 'center':\n align.horizontal = value;\n break;\n\n case 'top':\n case 'bottom':\n case 'middle':\n align.vertical = value;\n break;\n\n case 'crop':\n align.slice = true;\n break;\n\n case 'meet':\n align.slice = false;\n }\n });\n } // Generate viewBox and preserveAspectRatio attributes\n\n\n attributes.preserveAspectRatio = getAlignment(align);\n attributes.viewBox = box.left + ' ' + box.top + ' ' + box.width + ' ' + box.height; // Generate body\n\n var body = SVG.replaceIDs(item.body);\n\n if (props.color !== void 0) {\n body = body.replace(/currentColor/g, props.color);\n }\n\n if (transformations.length) {\n body = '' + body + '';\n }\n\n if (props.box === true || props.box === 'true' || props.box === '1') {\n // Add transparent bounding box\n body += '';\n }\n\n return {\n attributes: attributes,\n body: body,\n style: style\n };\n }\n /**\n * Generate SVG\n *\n * @param {object} props Custom properties (same as query string in Iconify API)\n * @param {boolean} [addExtra] True if extra attributes should be added to SVG.\n * Due to lack of functions in JavaScript for escaping attributes, it is your job to make sure key and value are both properly escaped. Default value is false.\n * @returns {string}\n */\n\n }, {\n key: \"getSVG\",\n value: function getSVG(props, addExtra) {\n var attributes = SVG.splitAttributes(props),\n data = this.getAttributes(attributes.icon);\n var svg = '';\n return svg;\n }\n /**\n * Split attributes\n *\n * @param props\n * @return {{icon: {}, node: {}}}\n */\n\n }], [{\n key: \"splitAttributes\",\n value: function splitAttributes(props) {\n var result = {\n icon: Object.create(null),\n node: Object.create(null)\n };\n Object.keys(props).forEach(function (name) {\n result[iconAttributes.indexOf(name) === -1 ? 'node' : 'icon'][name] = props[name];\n });\n return result;\n }\n /**\n * Calculate second dimension when only 1 dimension is set\n *\n * @param {string|number} size One dimension (such as width)\n * @param {number} ratio Width/height ratio.\n * If size == width, ratio = height/width\n * If size == height, ratio = width/height\n * @param {number} [precision] Floating number precision in result to minimize output. Default = 100\n * @return {string|number|null} Another dimension, null on error\n */\n\n }, {\n key: \"calculateDimension\",\n value: function calculateDimension(size, ratio, precision) {\n if (ratio === 1) {\n return size;\n }\n\n precision = precision === void 0 ? 100 : precision;\n\n if (typeof size === 'number') {\n return Math.ceil(size * ratio * precision) / precision;\n } // split code into sets of strings and numbers\n\n\n var split = size.split(unitsSplit);\n\n if (split === null || !split.length) {\n return null;\n }\n\n var results = [],\n code = split.shift(),\n isNumber = unitsTest.test(code),\n num;\n\n while (true) {\n if (isNumber) {\n num = parseFloat(code);\n\n if (isNaN(num)) {\n results.push(code);\n } else {\n results.push(Math.ceil(num * ratio * precision) / precision);\n }\n } else {\n results.push(code);\n } // next\n\n\n code = split.shift();\n\n if (code === void 0) {\n return results.join('');\n }\n\n isNumber = !isNumber;\n }\n }\n /**\n * Replace IDs in SVG output with unique IDs\n * Fast replacement without parsing XML, assuming commonly used patterns.\n *\n * @param {string} body\n * @return {string}\n */\n\n }, {\n key: \"replaceIDs\",\n value: function replaceIDs(body) {\n var regex = /\\sid=\"(\\S+)\"/g,\n ids = [],\n match,\n prefix;\n\n function strReplace(search, replace, subject) {\n var pos = 0;\n\n while ((pos = subject.indexOf(search, pos)) !== -1) {\n subject = subject.slice(0, pos) + replace + subject.slice(pos + search.length);\n pos += replace.length;\n }\n\n return subject;\n } // Find all IDs\n\n\n while (match = regex.exec(body)) {\n ids.push(match[1]);\n }\n\n if (!ids.length) {\n return body;\n }\n\n prefix = 'IconifyId-' + Date.now().toString(16) + '-' + (Math.random() * 0x1000000 | 0).toString(16) + '-'; // Replace with unique ids\n\n ids.forEach(function (id) {\n var newID = prefix + idCounter;\n idCounter++;\n body = strReplace('=\"' + id + '\"', '=\"' + newID + '\"', body);\n body = strReplace('=\"#' + id + '\"', '=\"#' + newID + '\"', body);\n body = strReplace('(#' + id + ')', '(#' + newID + ')', body);\n });\n return body;\n }\n }]);\n\n return SVG;\n}();\n/**\n * Create React component with SVG data\n *\n * @param {object} props\n * @param {boolean} inline\n * @return {null|React.Component}\n */\n\n\nfunction component(props, inline) {\n if (_typeof(props.icon) !== 'object') {\n return null;\n } // Split properties into SVG properties and icon properties\n\n\n var split = SVG.splitAttributes(props),\n iconProps = split.icon,\n customAttributes = split.node;\n delete customAttributes.icon; // Set default inline value\n\n if (iconProps.inline === void 0) {\n iconProps.inline = inline;\n } // Get SVG data\n\n\n var svg = new SVG(normalize(props.icon));\n var iconData = svg.getAttributes(iconProps); // Set style\n\n var style = {\n transform: 'rotate(360deg)'\n };\n\n if (iconData.style['vertical-align'] !== void 0) {\n style.verticalAlign = iconData.style['vertical-align'];\n }\n\n if (props.style !== void 0) {\n for (var _key in props.style) {\n style[_key] = props.style[_key];\n }\n } // Generate element attributes\n\n\n var attributes = {\n xmlns: 'http://www.w3.org/2000/svg',\n focusable: false,\n style: style\n };\n var key;\n\n for (key in customAttributes) {\n attributes[key] = customAttributes[key];\n }\n\n for (key in iconData.attributes) {\n attributes[key] = iconData.attributes[key];\n }\n\n attributes.dangerouslySetInnerHTML = {\n __html: iconData.body\n }; // Generate SVG\n\n return _react[\"default\"].createElement('svg', attributes, null);\n}\n/**\n * Icon without vertical alignment\n *\n * @param {object} props\n * @return {React.Component}\n * @constructor\n */\n\n\nvar Icon = function Icon(props) {\n return component(props, false);\n};\n/**\n * Icon with vertical alignment\n *\n * @param {object} props\n * @return {React.Component}\n * @constructor\n */\n\n\nexports.Icon = Icon;\n\nvar InlineIcon = function InlineIcon(props) {\n return component(props, true);\n};\n/**\n * Default export\n */\n\n\nexports.InlineIcon = InlineIcon;\nvar _default = Icon;\nexports[\"default\"] = _default;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports[\"default\"] = data;","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","'use strict';\n\nrequire(\"core-js/modules/es6.function.bind\");\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;","import React, { Component } from 'react'\nimport CardGrid from \"./cardgrid.js\"\nimport StrapiImage from \"./StrapiImage.js\"\nimport BackgroundImage from 'gatsby-background-image'\nimport { connect } from 'react-redux';\nimport { getArticle, getPodcasts } from '../actions';\nimport _ from 'lodash';\nimport withLocation from \"./withLocation\"\nimport { Link } from 'gatsby'\n\n\n\n\nclass Grid extends Component {\n constructor(props) {\n super(props)\n this.state = {\n more:false\n }\n\n this.loadMore = this.loadMore.bind(this); //bind function once\n }\n\n loadMore(event) {\n if(this.state.more){\n this.setState({more:false})\n\n }else{\n this.setState({more:true})\n }\n\n event.preventDefault();\n }\n\n render() {\n\n let Articles = []\n let Today = new Date()\n for (let articles of this.props.data){\n\n if(articles.node.withoutlimits.length > 0){\n for(let article of articles.node.withoutlimits){\n Articles.push({type:\"WL\" ,title:article.title , image:article.OG_image,slug:article.slug,author:article.authors,date:article.createdAt,TileBackgroundColor:articles.node.TileBackgroundColor,TileBordercolor:articles.node.TileBordercolor, TileTextColor:articles.node.TileTextColor})\n }\n }\n if(articles.node.projects.length > 0){\n for(let article of articles.node.projects){\n Articles.push({type:\"Project\" ,title:article.Project_name , image:article.Project_image,slug:article.slug,author:\"\",date:article.createdAt,TileBackgroundColor:articles.node.TileBackgroundColor,TileBordercolor:articles.node.TileBordercolor, TileTextColor:articles.node.TileTextColor})\n }\n }\n if(articles.node.articles.length > 0){\n\n for(let article of articles.node.articles){\n if(article.type === \"article\"){\n Articles.push({type:article.type ,title:article.title , image:article.Header_image,slug:article.slug,author:article.Author,sub_message:article.Sub_message,date:article.createdAt,TileBackgroundColor:articles.node.TileBackgroundColor,TileBordercolor:articles.node.TileBordercolor, TileTextColor:articles.node.TileTextColor})\n }else\n Articles.push({type:article.type ,title:article.title , image:article.Header_image,slug:article.slug,author:article.Author,sub_message:article.Sub_message,date:article.createdAt,TileBackgroundColor:this.props.MainColour,TileBordercolor:this.props.MainColour, TileTextColor:this.props.textColor})\n }\n }\n if(articles.node.podcasts.length > 0){\n for(let article of articles.node.podcasts){\n Articles.push({type:\"Podcast\" ,title:article.title , image:\"\",slug:article.id,author:\"\",sub_message:\"\",date:article.createdAt,TileBackgroundColor:this.props.MainColour,TileBordercolor:this.props.MainColour, TileTextColor:this.props.textColor})\n }\n }\n if(articles.node.services.length > 0){\n for(let article of articles.node.services){\n Articles.push({type:\"Service\" ,title:article.service_name , image:article.service_image,slug:article.slug,author:\"\",sub_message:article.service_intro,date:article.createdAt,TileBackgroundColor:this.props.MainColour,TileBordercolor:this.props.secondColor, TileTextColor:this.props.textColor})\n }\n }\n if(articles.node.events.length > 0){\n for(let article of articles.node.events){\n let EventDate = new Date(article.date)\n if(EventDate >= Today ){\n Articles.push({type:\"Event\" ,title:article.Event_name , image:article.event_image,slug:article.slug,author:article.date,sub_message:article.location,date:article.createdAt,TileBackgroundColor:this.props.MainColour,TileBordercolor:this.props.secondColor, TileTextColor:this.props.textColor})\n }\n }\n }\n if(articles.node.contacts.length > 0){\n for(let article of articles.node.contacts){\n // Articles.push({type:\"Contacts\" ,title:article.name , image:article.image.childImageSharp.fluid,slug:article.slug,author:article.position,sub_message:article.email ,date:article.createdAt,TileBackgroundColor:this.props.data.TileBackgroundColor,TileBordercolor:this.props.data.TileBordercolor, TileTextColor:this.props.TileTextColor})\n }\n }\n if(articles.node.videos.length > 0){\n for(let article of articles.node.videos){\n Articles.push({type:\"Video\" ,title:article.title , image:article.cover_image,slug:article.slug,author:article.wisita_id,sub_message:article.Player_colour,date:article.createdAt,TileBackgroundColor:articles.node.TileBackgroundColor,TileBordercolor:articles.node.TileBordercolor, TileTextColor:articles.node.TileTextColor})\n }\n }\n }\n\n\n\nlet LatestArticles =[]\nlet ArticlesArchieve =[]\n\n if(this.props.Homepage){\n Articles = _.orderBy(Articles, 'date', 'desc',)\n let chunk = 0\n if(Articles.length >=12){\n chunk = 12\n }\n if(Articles.length >=8 && Articles.length<12){\n chunk = 8\n }\n if(Articles.length >=4 && Articles.length<8){\n chunk = 4\n }\n LatestArticles = _.chunk(Articles, chunk)\n ArticlesArchieve = Articles.slice(chunk,Articles.length)\n\n}else if(this.props.type === \"update\") {\n\n let Pathname = this.props.location.pathname.split(\"/\")\n\n _.remove(Articles,function(n) {\n let Slug = encodeURIComponent(n.slug)\n return Pathname.includes(Slug)\n });\n\nif(_.filter(Articles, ['type', 'update']).length>1){\n Articles = _.filter(Articles, ['type', 'update']);\n}\n\n LatestArticles = _.chunk(Articles, 4)\n}else{\n let Pathname = this.props.location.pathname.split(\"/\")\n _.remove(Articles,function(n) {\n let Slug = encodeURIComponent(n.slug)\n return Pathname.includes(Slug)\n });\n\n\n Articles = _.shuffle(Articles);\n LatestArticles = _.chunk(Articles, 4)\n\n}\n\n\n\n\n\nreturn(\n\n
\n
\n
\n {this.props.Homepage ? (\n

Previous articles & updates

\n ):(

Related articles & updates

)}\n\n\n
\n {LatestArticles.length !== 0 ?(\n
\n
\n
    \n
  • \n
      \n\n {LatestArticles[0].map((document, index) => (\n \n ))}\n {ArticlesArchieve.length>0 ? (\n <>\n {!this.state.more ? (\n
      Load More
      \n ):(\n\n ArticlesArchieve.map((document, index) => (\n <>\n \n \n )))}\n\n \n\n\n ):(<>)}\n {this.props.Homepage ? (\n <>\n ):( Home)}\n\n
    \n
  • \n\n
\n\n
\n
\n ):(<>)}\n\n
\n\n\n\n\n )\n }\n\n\n }\n\n\n function mapStateToProps(state) {\n return {\n articles: state.articles,\n pods:state.pods,\n micrositeID:state.micrositeID\n };\n }\n\n\n export default withLocation(connect(mapStateToProps,{ getArticle, getPodcasts })(Grid));\n","'use strict';\n\nrequire(\"core-js/modules/es7.symbol.async-iterator\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nvar getDay = Date.prototype.getDay;\n\nvar tryDateObject = function tryDateGetDayCall(value) {\n try {\n getDay.call(value);\n return true;\n } catch (e) {\n return false;\n }\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isDateObject(value) {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n\n return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};","require('./_typed-array')('Int16', 2, function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es7.symbol.async-iterator\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nmodule.exports = function hasSymbols() {\n if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') {\n return false;\n }\n\n if (typeof Symbol.iterator === 'symbol') {\n return true;\n }\n\n var obj = {};\n var sym = Symbol('test');\n var symObj = Object(sym);\n\n if (typeof sym === 'string') {\n return false;\n }\n\n if (Object.prototype.toString.call(sym) !== '[object Symbol]') {\n return false;\n }\n\n if (Object.prototype.toString.call(symObj) !== '[object Symbol]') {\n return false;\n } // temp disabled per https://github.com/ljharb/object.assign/issues/17\n // if (sym instanceof Symbol) { return false; }\n // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n // if (!(symObj instanceof Symbol)) { return false; }\n // if (typeof Symbol.prototype.toString !== 'function') { return false; }\n // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\n var symVal = 42;\n obj[sym] = symVal;\n\n for (sym in obj) {\n return false;\n } // eslint-disable-line no-restricted-syntax\n\n\n if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) {\n return false;\n }\n\n if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) {\n return false;\n }\n\n var syms = Object.getOwnPropertySymbols(obj);\n\n if (syms.length !== 1 || syms[0] !== sym) {\n return false;\n }\n\n if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {\n return false;\n }\n\n if (typeof Object.getOwnPropertyDescriptor === 'function') {\n var descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\n if (descriptor.value !== symVal || descriptor.enumerable !== true) {\n return false;\n }\n }\n\n return true;\n};","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports[\"default\"] = data;","'use strict';\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\n\nvar getPolyfill = require('./polyfill');\n\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n if (!supportsDescriptors || !getProto) {\n throw new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n }\n\n var polyfill = getPolyfill();\n var proto = getProto(regex);\n var descriptor = gOPD(proto, 'flags');\n\n if (!descriptor || descriptor.get !== polyfill) {\n defineProperty(proto, 'flags', {\n configurable: true,\n enumerable: false,\n get: polyfill\n });\n }\n\n return polyfill;\n};","var $export = require('./_export');\n$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {\n DataView: require('./_typed-buffer').DataView\n});\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = {\n noWobble: {\n stiffness: 170,\n damping: 26\n },\n // the default, if nothing provided\n gentle: {\n stiffness: 120,\n damping: 14\n },\n wobbly: {\n stiffness: 180,\n damping: 12\n },\n stiff: {\n stiffness: 210,\n damping: 20\n }\n};\nmodule.exports = exports[\"default\"];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = reorderKeys;\nvar hasWarned = false;\n\nfunction reorderKeys() {\n if (process.env.NODE_ENV === 'development') {\n if (!hasWarned) {\n hasWarned = true;\n console.error('`reorderKeys` has been removed, since it is no longer needed for TransitionMotion\\'s new styles array API.');\n }\n }\n}\n\nmodule.exports = exports['default'];","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports[\"default\"] = data;","'use strict';\n\nvar bind = require('function-bind');\n\nvar GetIntrinsic = require('../GetIntrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nmodule.exports = function callBind() {\n return $reflectApply(bind, $call, arguments);\n};\n\nmodule.exports.apply = function applyBind() {\n return $reflectApply(bind, $apply, arguments);\n};","require('./_typed-array')('Float64', 8, function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\n\nrequire(\"core-js/modules/es7.symbol.async-iterator\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nvar origSymbol = global.Symbol;\n\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n if (typeof origSymbol !== 'function') {\n return false;\n }\n\n if (typeof Symbol !== 'function') {\n return false;\n }\n\n if (typeof origSymbol('foo') !== 'symbol') {\n return false;\n }\n\n if (typeof Symbol('bar') !== 'symbol') {\n return false;\n }\n\n return hasSymbolSham();\n};","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nrequire(\"core-js/modules/es6.regexp.flags\");\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nvar $TypeError = TypeError;\n\nmodule.exports = function getPolyfill() {\n if (!supportsDescriptors) {\n throw new $TypeError('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n }\n\n if (/a/mig.flags === 'gim') {\n var descriptor = $gOPD(RegExp.prototype, 'flags');\n\n if (descriptor && typeof descriptor.get === 'function' && typeof /a/.dotAll === 'boolean') {\n return descriptor.get;\n }\n }\n\n return implementation;\n};","require(\"core-js/modules/es6.date.now\");\n\n// Generated by CoffeeScript 1.7.1\n(function () {\n var getNanoSeconds, hrtime, loadTime;\n\n if (typeof performance !== \"undefined\" && performance !== null && performance.now) {\n module.exports = function () {\n return performance.now();\n };\n } else if (typeof process !== \"undefined\" && process !== null && process.hrtime) {\n module.exports = function () {\n return (getNanoSeconds() - loadTime) / 1e6;\n };\n\n hrtime = process.hrtime;\n\n getNanoSeconds = function getNanoSeconds() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n\n loadTime = getNanoSeconds();\n } else if (Date.now) {\n module.exports = function () {\n return Date.now() - loadTime;\n };\n\n loadTime = Date.now();\n } else {\n module.exports = function () {\n return new Date().getTime() - loadTime;\n };\n\n loadTime = new Date().getTime();\n }\n}).call(this);","'use strict';\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n if (this != null && this !== $Object(this)) {\n throw new $TypeError('RegExp.prototype.flags getter called on non-object');\n }\n\n var result = '';\n\n if (this.global) {\n result += 'g';\n }\n\n if (this.ignoreCase) {\n result += 'i';\n }\n\n if (this.multiline) {\n result += 'm';\n }\n\n if (this.dotAll) {\n result += 's';\n }\n\n if (this.unicode) {\n result += 'u';\n }\n\n if (this.sticky) {\n result += 'y';\n }\n\n return result;\n};","'use strict';\n\nrequire(\"core-js/modules/es6.object.is\");\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n return typeof Object.is === 'function' ? Object.is : implementation;\n};","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports[\"default\"] = data;","require('./_typed-array')('Float32', 4, function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","// currently used to initiate the velocity style object to 0\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = mapToZero;\n\nfunction mapToZero(obj) {\n var ret = {};\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n ret[key] = 0;\n }\n }\n\n return ret;\n}\n\nmodule.exports = exports['default'];","'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function (createHTML) {\n return function sub() {\n return createHTML(this, 'sub', '', '');\n };\n});\n","'use strict';\n/* eslint no-invalid-this: 1 */\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n\n var args = slice.call(arguments, 1);\n var bound;\n\n var binder = function binder() {\n if (this instanceof bound) {\n var result = target.apply(this, args.concat(slice.call(arguments)));\n\n if (Object(result) === result) {\n return result;\n }\n\n return this;\n } else {\n return target.apply(that, args.concat(slice.call(arguments)));\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","'use strict';\n\nvar define = require('define-properties');\n\nvar callBind = require('es-abstract/helpers/callBind');\n\nvar implementation = require('./implementation');\n\nvar getPolyfill = require('./polyfill');\n\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\ndefine(polyfill, {\n getPolyfill: getPolyfill,\n implementation: implementation,\n shim: shim\n});\nmodule.exports = polyfill;","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n","require(\"core-js/modules/es6.array.sort\");\n\nvar objectKeys = require('object-keys');\n\nvar isArguments = require('is-arguments');\n\nvar is = require('object-is');\n\nvar isRegex = require('is-regex');\n\nvar flags = require('regexp.prototype.flags');\n\nvar isDate = require('is-date-object');\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n var opts = options || {}; // 7.1. All identical values are equivalent, as determined by ===.\n\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n } // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n\n\n if (!actual || !expected || typeof actual !== 'object' && typeof expected !== 'object') {\n return opts.strict ? is(actual, expected) : actual == expected;\n }\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // eslint-disable-next-line no-use-before-define\n\n\n return objEquiv(actual, expected, opts);\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n /* eslint max-statements: [2, 50] */\n var i, key;\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) {\n return false;\n } // an identical 'prototype' property.\n\n\n if (a.prototype !== b.prototype) {\n return false;\n }\n\n if (isArguments(a) !== isArguments(b)) {\n return false;\n }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n\n if (aIsRegex !== bIsRegex) {\n return false;\n }\n\n if (aIsRegex || bIsRegex) {\n return a.source === b.source && flags(a) === flags(b);\n }\n\n if (isDate(a) && isDate(b)) {\n return getTime.call(a) === getTime.call(b);\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n\n if (aIsBuffer !== bIsBuffer) {\n return false;\n }\n\n if (aIsBuffer || bIsBuffer) {\n // && would work too, because both are true or both false here\n if (a.length !== b.length) {\n return false;\n }\n\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n try {\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n } catch (e) {\n // happens when one is a string literal and the other isn't\n return false;\n } // having the same number of owned properties (keys incorporates hasOwnProperty)\n\n\n if (ka.length !== kb.length) {\n return false;\n } // the same set of keys (although not necessarily the same order),\n\n\n ka.sort();\n kb.sort(); // ~~~cheap key test\n\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) {\n return false;\n }\n } // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n\n\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n\n if (!deepEqual(a[key], b[key], opts)) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = deepEqual;","// stepper is used a lot. Saves allocation to return the same array wrapper.\n// This is fine and danger-free against mutations because the callsite\n// immediately destructures it and gets the numbers inside without passing the\n\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = stepper;\nvar reusedTuple = [0, 0];\n\nfunction stepper(secondPerFrame, x, v, destX, k, b, precision) {\n // Spring stiffness, in kg / s^2\n // for animations, destX is really spring length (spring at rest). initial\n // position is considered as the stretched/compressed position of a spring\n var Fspring = -k * (x - destX); // Damping, in kg / s\n\n var Fdamper = -b * v; // usually we put mass here, but for animation purposes, specifying mass is a\n // bit redundant. you could simply adjust k and b accordingly\n // let a = (Fspring + Fdamper) / mass;\n\n var a = Fspring + Fdamper;\n var newV = v + a * secondPerFrame;\n var newX = x + newV * secondPerFrame;\n\n if (Math.abs(newV) < precision && Math.abs(newX - destX) < precision) {\n reusedTuple[0] = destX;\n reusedTuple[1] = 0;\n return reusedTuple;\n }\n\n reusedTuple[0] = newX;\n reusedTuple[1] = newV;\n return reusedTuple;\n}\n\nmodule.exports = exports[\"default\"]; // array reference around.","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports[\"default\"] = data;","// usage assumption: currentStyle values have already been rendered but it says\n// nothing of whether currentStyle is stale (see unreadPropStyle)\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = shouldStopAnimation;\n\nfunction shouldStopAnimation(currentStyle, style, currentVelocity) {\n for (var key in style) {\n if (!Object.prototype.hasOwnProperty.call(style, key)) {\n continue;\n }\n\n if (currentVelocity[key] !== 0) {\n return false;\n }\n\n var styleValue = typeof style[key] === 'number' ? style[key] : style[key].val; // stepper will have already taken care of rounding precision errors, so\n // won't have such thing as 0.9999 !=== 1\n\n if (currentStyle[key] !== styleValue) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports['default'];","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","require('./_typed-array')('Uint32', 4, function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports[\"default\"] = data;","'use strict';\n\nrequire(\"core-js/modules/es6.array.map\");\n\nrequire(\"core-js/modules/es6.object.set-prototype-of\");\n\nrequire(\"core-js/modules/es6.object.create\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nrequire(\"core-js/modules/es6.object.assign\");\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\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\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\nvar _mapToZero = require('./mapToZero');\n\nvar _mapToZero2 = _interopRequireDefault(_mapToZero);\n\nvar _stripStyle = require('./stripStyle');\n\nvar _stripStyle2 = _interopRequireDefault(_stripStyle);\n\nvar _stepper3 = require('./stepper');\n\nvar _stepper4 = _interopRequireDefault(_stepper3);\n\nvar _mergeDiff = require('./mergeDiff');\n\nvar _mergeDiff2 = _interopRequireDefault(_mergeDiff);\n\nvar _performanceNow = require('performance-now');\n\nvar _performanceNow2 = _interopRequireDefault(_performanceNow);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _shouldStopAnimation = require('./shouldStopAnimation');\n\nvar _shouldStopAnimation2 = _interopRequireDefault(_shouldStopAnimation);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar msPerFrame = 1000 / 60; // the children function & (potential) styles function asks as param an\n// Array, where each TransitionPlainStyle is of the format\n// {key: string, data?: any, style: PlainStyle}. However, the way we keep\n// internal states doesn't contain such a data structure (check the state and\n// TransitionMotionState). So when children function and others ask for such\n// data we need to generate them on the fly by combining mergedPropsStyles and\n// currentStyles/lastIdealStyles\n\nfunction rehydrateStyles(mergedPropsStyles, unreadPropStyles, plainStyles) {\n // Copy the value to a `const` so that Flow understands that the const won't\n // change and will be non-nullable in the callback below.\n var cUnreadPropStyles = unreadPropStyles;\n\n if (cUnreadPropStyles == null) {\n return mergedPropsStyles.map(function (mergedPropsStyle, i) {\n return {\n key: mergedPropsStyle.key,\n data: mergedPropsStyle.data,\n style: plainStyles[i]\n };\n });\n }\n\n return mergedPropsStyles.map(function (mergedPropsStyle, i) {\n for (var j = 0; j < cUnreadPropStyles.length; j++) {\n if (cUnreadPropStyles[j].key === mergedPropsStyle.key) {\n return {\n key: cUnreadPropStyles[j].key,\n data: cUnreadPropStyles[j].data,\n style: plainStyles[i]\n };\n }\n }\n\n return {\n key: mergedPropsStyle.key,\n data: mergedPropsStyle.data,\n style: plainStyles[i]\n };\n });\n}\n\nfunction shouldStopAnimationAll(currentStyles, destStyles, currentVelocities, mergedPropsStyles) {\n if (mergedPropsStyles.length !== destStyles.length) {\n return false;\n }\n\n for (var i = 0; i < mergedPropsStyles.length; i++) {\n if (mergedPropsStyles[i].key !== destStyles[i].key) {\n return false;\n }\n } // we have the invariant that mergedPropsStyles and\n // currentStyles/currentVelocities/last* are synced in terms of cells, see\n // mergeAndSync comment for more info\n\n\n for (var i = 0; i < mergedPropsStyles.length; i++) {\n if (!_shouldStopAnimation2['default'](currentStyles[i], destStyles[i].style, currentVelocities[i])) {\n return false;\n }\n }\n\n return true;\n} // core key merging logic\n// things to do: say previously merged style is {a, b}, dest style (prop) is {b,\n// c}, previous current (interpolating) style is {a, b}\n// **invariant**: current[i] corresponds to merged[i] in terms of key\n// steps:\n// turn merged style into {a?, b, c}\n// add c, value of c is destStyles.c\n// maybe remove a, aka call willLeave(a), then merged is either {b, c} or {a, b, c}\n// turn current (interpolating) style from {a, b} into {a?, b, c}\n// maybe remove a\n// certainly add c, value of c is willEnter(c)\n// loop over merged and construct new current\n// dest doesn't change, that's owner's\n\n\nfunction mergeAndSync(willEnter, willLeave, didLeave, oldMergedPropsStyles, destStyles, oldCurrentStyles, oldCurrentVelocities, oldLastIdealStyles, oldLastIdealVelocities) {\n var newMergedPropsStyles = _mergeDiff2['default'](oldMergedPropsStyles, destStyles, function (oldIndex, oldMergedPropsStyle) {\n var leavingStyle = willLeave(oldMergedPropsStyle);\n\n if (leavingStyle == null) {\n didLeave({\n key: oldMergedPropsStyle.key,\n data: oldMergedPropsStyle.data\n });\n return null;\n }\n\n if (_shouldStopAnimation2['default'](oldCurrentStyles[oldIndex], leavingStyle, oldCurrentVelocities[oldIndex])) {\n didLeave({\n key: oldMergedPropsStyle.key,\n data: oldMergedPropsStyle.data\n });\n return null;\n }\n\n return {\n key: oldMergedPropsStyle.key,\n data: oldMergedPropsStyle.data,\n style: leavingStyle\n };\n });\n\n var newCurrentStyles = [];\n var newCurrentVelocities = [];\n var newLastIdealStyles = [];\n var newLastIdealVelocities = [];\n\n for (var i = 0; i < newMergedPropsStyles.length; i++) {\n var newMergedPropsStyleCell = newMergedPropsStyles[i];\n var foundOldIndex = null;\n\n for (var j = 0; j < oldMergedPropsStyles.length; j++) {\n if (oldMergedPropsStyles[j].key === newMergedPropsStyleCell.key) {\n foundOldIndex = j;\n break;\n }\n } // TODO: key search code\n\n\n if (foundOldIndex == null) {\n var plainStyle = willEnter(newMergedPropsStyleCell);\n newCurrentStyles[i] = plainStyle;\n newLastIdealStyles[i] = plainStyle;\n\n var velocity = _mapToZero2['default'](newMergedPropsStyleCell.style);\n\n newCurrentVelocities[i] = velocity;\n newLastIdealVelocities[i] = velocity;\n } else {\n newCurrentStyles[i] = oldCurrentStyles[foundOldIndex];\n newLastIdealStyles[i] = oldLastIdealStyles[foundOldIndex];\n newCurrentVelocities[i] = oldCurrentVelocities[foundOldIndex];\n newLastIdealVelocities[i] = oldLastIdealVelocities[foundOldIndex];\n }\n }\n\n return [newMergedPropsStyles, newCurrentStyles, newCurrentVelocities, newLastIdealStyles, newLastIdealVelocities];\n}\n\nvar TransitionMotion = function (_React$Component) {\n _inherits(TransitionMotion, _React$Component);\n\n _createClass(TransitionMotion, null, [{\n key: 'propTypes',\n value: {\n defaultStyles: _propTypes2['default'].arrayOf(_propTypes2['default'].shape({\n key: _propTypes2['default'].string.isRequired,\n data: _propTypes2['default'].any,\n style: _propTypes2['default'].objectOf(_propTypes2['default'].number).isRequired\n })),\n styles: _propTypes2['default'].oneOfType([_propTypes2['default'].func, _propTypes2['default'].arrayOf(_propTypes2['default'].shape({\n key: _propTypes2['default'].string.isRequired,\n data: _propTypes2['default'].any,\n style: _propTypes2['default'].objectOf(_propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].object])).isRequired\n }))]).isRequired,\n children: _propTypes2['default'].func.isRequired,\n willEnter: _propTypes2['default'].func,\n willLeave: _propTypes2['default'].func,\n didLeave: _propTypes2['default'].func\n },\n enumerable: true\n }, {\n key: 'defaultProps',\n value: {\n willEnter: function willEnter(styleThatEntered) {\n return _stripStyle2['default'](styleThatEntered.style);\n },\n // recall: returning null makes the current unmounting TransitionStyle\n // disappear immediately\n willLeave: function willLeave() {\n return null;\n },\n didLeave: function didLeave() {}\n },\n enumerable: true\n }]);\n\n function TransitionMotion(props) {\n var _this = this;\n\n _classCallCheck(this, TransitionMotion);\n\n _React$Component.call(this, props);\n\n this.unmounting = false;\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n this.unreadPropStyles = null;\n\n this.clearUnreadPropStyle = function (unreadPropStyles) {\n var _mergeAndSync = mergeAndSync(_this.props.willEnter, _this.props.willLeave, _this.props.didLeave, _this.state.mergedPropsStyles, unreadPropStyles, _this.state.currentStyles, _this.state.currentVelocities, _this.state.lastIdealStyles, _this.state.lastIdealVelocities);\n\n var mergedPropsStyles = _mergeAndSync[0];\n var currentStyles = _mergeAndSync[1];\n var currentVelocities = _mergeAndSync[2];\n var lastIdealStyles = _mergeAndSync[3];\n var lastIdealVelocities = _mergeAndSync[4];\n\n for (var i = 0; i < unreadPropStyles.length; i++) {\n var unreadPropStyle = unreadPropStyles[i].style;\n var dirty = false;\n\n for (var key in unreadPropStyle) {\n if (!Object.prototype.hasOwnProperty.call(unreadPropStyle, key)) {\n continue;\n }\n\n var styleValue = unreadPropStyle[key];\n\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n currentStyles[i] = _extends({}, currentStyles[i]);\n currentVelocities[i] = _extends({}, currentVelocities[i]);\n lastIdealStyles[i] = _extends({}, lastIdealStyles[i]);\n lastIdealVelocities[i] = _extends({}, lastIdealVelocities[i]);\n mergedPropsStyles[i] = {\n key: mergedPropsStyles[i].key,\n data: mergedPropsStyles[i].data,\n style: _extends({}, mergedPropsStyles[i].style)\n };\n }\n\n currentStyles[i][key] = styleValue;\n currentVelocities[i][key] = 0;\n lastIdealStyles[i][key] = styleValue;\n lastIdealVelocities[i][key] = 0;\n mergedPropsStyles[i].style[key] = styleValue;\n }\n }\n } // unlike the other 2 components, we can't detect staleness and optionally\n // opt out of setState here. each style object's data might contain new\n // stuff we're not/cannot compare\n\n\n _this.setState({\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n mergedPropsStyles: mergedPropsStyles,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities\n });\n };\n\n this.startAnimationIfNecessary = function () {\n if (_this.unmounting) {\n return;\n } // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n\n\n _this.animationID = _raf2['default'](function (timestamp) {\n // https://github.com/chenglou/react-motion/pull/420\n // > if execution passes the conditional if (this.unmounting), then\n // executes async defaultRaf and after that component unmounts and after\n // that the callback of defaultRaf is called, then setState will be called\n // on unmounted component.\n if (_this.unmounting) {\n return;\n }\n\n var propStyles = _this.props.styles;\n var destStyles = typeof propStyles === 'function' ? propStyles(rehydrateStyles(_this.state.mergedPropsStyles, _this.unreadPropStyles, _this.state.lastIdealStyles)) : propStyles; // check if we need to animate in the first place\n\n if (shouldStopAnimationAll(_this.state.currentStyles, destStyles, _this.state.currentVelocities, _this.state.mergedPropsStyles)) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n _this.accumulatedTime = 0;\n return;\n }\n\n var currentTime = timestamp || _performanceNow2['default']();\n\n var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta; // more than 10 frames? prolly switched browser tab. Restart\n\n if (_this.accumulatedTime > msPerFrame * 10) {\n _this.accumulatedTime = 0;\n }\n\n if (_this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n\n _this.startAnimationIfNecessary();\n\n return;\n }\n\n var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);\n\n var _mergeAndSync2 = mergeAndSync(_this.props.willEnter, _this.props.willLeave, _this.props.didLeave, _this.state.mergedPropsStyles, destStyles, _this.state.currentStyles, _this.state.currentVelocities, _this.state.lastIdealStyles, _this.state.lastIdealVelocities);\n\n var newMergedPropsStyles = _mergeAndSync2[0];\n var newCurrentStyles = _mergeAndSync2[1];\n var newCurrentVelocities = _mergeAndSync2[2];\n var newLastIdealStyles = _mergeAndSync2[3];\n var newLastIdealVelocities = _mergeAndSync2[4];\n\n for (var i = 0; i < newMergedPropsStyles.length; i++) {\n var newMergedPropsStyle = newMergedPropsStyles[i].style;\n var newCurrentStyle = {};\n var newCurrentVelocity = {};\n var newLastIdealStyle = {};\n var newLastIdealVelocity = {};\n\n for (var key in newMergedPropsStyle) {\n if (!Object.prototype.hasOwnProperty.call(newMergedPropsStyle, key)) {\n continue;\n }\n\n var styleValue = newMergedPropsStyle[key];\n\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n var newLastIdealStyleValue = newLastIdealStyles[i][key];\n var newLastIdealVelocityValue = newLastIdealVelocities[i][key];\n\n for (var j = 0; j < framesToCatchUp; j++) {\n var _stepper = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n newLastIdealStyleValue = _stepper[0];\n newLastIdealVelocityValue = _stepper[1];\n }\n\n var _stepper2 = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n var nextIdealX = _stepper2[0];\n var nextIdealV = _stepper2[1];\n newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n newLastIdealStyles[i] = newLastIdealStyle;\n newLastIdealVelocities[i] = newLastIdealVelocity;\n newCurrentStyles[i] = newCurrentStyle;\n newCurrentVelocities[i] = newCurrentVelocity;\n }\n\n _this.animationID = null; // the amount we're looped over above\n\n _this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n _this.setState({\n currentStyles: newCurrentStyles,\n currentVelocities: newCurrentVelocities,\n lastIdealStyles: newLastIdealStyles,\n lastIdealVelocities: newLastIdealVelocities,\n mergedPropsStyles: newMergedPropsStyles\n });\n\n _this.unreadPropStyles = null;\n\n _this.startAnimationIfNecessary();\n });\n };\n\n this.state = this.defaultState();\n }\n\n TransitionMotion.prototype.defaultState = function defaultState() {\n var _props = this.props;\n var defaultStyles = _props.defaultStyles;\n var styles = _props.styles;\n var willEnter = _props.willEnter;\n var willLeave = _props.willLeave;\n var didLeave = _props.didLeave;\n var destStyles = typeof styles === 'function' ? styles(defaultStyles) : styles; // this is special. for the first time around, we don't have a comparison\n // between last (no last) and current merged props. we'll compute last so:\n // say default is {a, b} and styles (dest style) is {b, c}, we'll\n // fabricate last as {a, b}\n\n var oldMergedPropsStyles = undefined;\n\n if (defaultStyles == null) {\n oldMergedPropsStyles = destStyles;\n } else {\n oldMergedPropsStyles = defaultStyles.map(function (defaultStyleCell) {\n // TODO: key search code\n for (var i = 0; i < destStyles.length; i++) {\n if (destStyles[i].key === defaultStyleCell.key) {\n return destStyles[i];\n }\n }\n\n return defaultStyleCell;\n });\n }\n\n var oldCurrentStyles = defaultStyles == null ? destStyles.map(function (s) {\n return _stripStyle2['default'](s.style);\n }) : defaultStyles.map(function (s) {\n return _stripStyle2['default'](s.style);\n });\n var oldCurrentVelocities = defaultStyles == null ? destStyles.map(function (s) {\n return _mapToZero2['default'](s.style);\n }) : defaultStyles.map(function (s) {\n return _mapToZero2['default'](s.style);\n });\n\n var _mergeAndSync3 = mergeAndSync( // Because this is an old-style createReactClass component, Flow doesn't\n // understand that the willEnter and willLeave props have default values\n // and will always be present.\n willEnter, willLeave, didLeave, oldMergedPropsStyles, destStyles, oldCurrentStyles, oldCurrentVelocities, oldCurrentStyles, // oldLastIdealStyles really\n oldCurrentVelocities);\n\n var mergedPropsStyles = _mergeAndSync3[0];\n var currentStyles = _mergeAndSync3[1];\n var currentVelocities = _mergeAndSync3[2];\n var lastIdealStyles = _mergeAndSync3[3];\n var lastIdealVelocities = _mergeAndSync3[4]; // oldLastIdealVelocities really\n\n return {\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities,\n mergedPropsStyles: mergedPropsStyles\n };\n }; // after checking for unreadPropStyles != null, we manually go set the\n // non-interpolating values (those that are a number, without a spring\n // config)\n\n\n TransitionMotion.prototype.componentDidMount = function componentDidMount() {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n };\n\n TransitionMotion.prototype.componentWillReceiveProps = function componentWillReceiveProps(props) {\n if (this.unreadPropStyles) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyles);\n }\n\n var styles = props.styles;\n\n if (typeof styles === 'function') {\n this.unreadPropStyles = styles(rehydrateStyles(this.state.mergedPropsStyles, this.unreadPropStyles, this.state.lastIdealStyles));\n } else {\n this.unreadPropStyles = styles;\n }\n\n if (this.animationID == null) {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n }\n };\n\n TransitionMotion.prototype.componentWillUnmount = function componentWillUnmount() {\n this.unmounting = true;\n\n if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\n\n this.animationID = null;\n }\n };\n\n TransitionMotion.prototype.render = function render() {\n var hydratedStyles = rehydrateStyles(this.state.mergedPropsStyles, this.unreadPropStyles, this.state.currentStyles);\n var renderedChildren = this.props.children(hydratedStyles);\n return renderedChildren && _react2['default'].Children.only(renderedChildren);\n };\n\n return TransitionMotion;\n}(_react2['default'].Component);\n\nexports['default'] = TransitionMotion;\nmodule.exports = exports['default']; // list of styles, each containing interpolating values. Part of what's passed\n// to children function. Notice that this is\n// Array, without the wrapper that is {key: ...,\n// data: ... style: ActualInterpolatingStyleObject}. Only mergedPropsStyles\n// contains the key & data info (so that we only have a single source of truth\n// for these, and to save space). Check the comment for `rehydrateStyles` to\n// see how we regenerate the entirety of what's passed to children function\n// the array that keeps track of currently rendered stuff! Including stuff\n// that you've unmounted but that's still animating. This is where it lives\n// it's possible that currentStyle's value is stale: if props is immediately\n// changed from 0 to 400 to spring(0) again, the async currentStyle is still\n// at 0 (didn't have time to tick and interpolate even once). If we naively\n// compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n// In reality currentStyle should be 400","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","// core keys merging algorithm. If previous render's keys are [a, b], and the\n// next render's [c, b, d], what's the final merged keys and ordering?\n// - c and a must both be before b\n// - b before d\n// - ordering between a and c ambiguous\n// this reduces to merging two partially ordered lists (e.g. lists where not\n// every item has a definite ordering, like comparing a and c above). For the\n// ambiguous ordering we deterministically choose to place the next render's\n// item after the previous'; so c after a\n// this is called a topological sorting. Except the existing algorithms don't\n// work well with js bc of the amount of allocation, and isn't optimized for our\n// current use-case bc the runtime is linear in terms of edges (see wiki for\n// meaning), which is huge when two lists have many common elements\n'use strict';\n\nrequire(\"core-js/modules/es6.array.sort\");\n\nexports.__esModule = true;\nexports['default'] = mergeDiff;\n\nfunction mergeDiff(prev, next, onRemove) {\n // bookkeeping for easier access of a key's index below. This is 2 allocations +\n // potentially triggering chrome hash map mode for objs (so it might be faster\n var prevKeyIndex = {};\n\n for (var i = 0; i < prev.length; i++) {\n prevKeyIndex[prev[i].key] = i;\n }\n\n var nextKeyIndex = {};\n\n for (var i = 0; i < next.length; i++) {\n nextKeyIndex[next[i].key] = i;\n } // first, an overly elaborate way of merging prev and next, eliminating\n // duplicates (in terms of keys). If there's dupe, keep the item in next).\n // This way of writing it saves allocations\n\n\n var ret = [];\n\n for (var i = 0; i < next.length; i++) {\n ret[i] = next[i];\n }\n\n for (var i = 0; i < prev.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(nextKeyIndex, prev[i].key)) {\n // this is called my TM's `mergeAndSync`, which calls willLeave. We don't\n // merge in keys that the user desires to kill\n var fill = onRemove(i, prev[i]);\n\n if (fill != null) {\n ret.push(fill);\n }\n }\n } // now all the items all present. Core sorting logic to have the right order\n\n\n return ret.sort(function (a, b) {\n var nextOrderA = nextKeyIndex[a.key];\n var nextOrderB = nextKeyIndex[b.key];\n var prevOrderA = prevKeyIndex[a.key];\n var prevOrderB = prevKeyIndex[b.key];\n\n if (nextOrderA != null && nextOrderB != null) {\n // both keys in next\n return nextKeyIndex[a.key] - nextKeyIndex[b.key];\n } else if (prevOrderA != null && prevOrderB != null) {\n // both keys in prev\n return prevKeyIndex[a.key] - prevKeyIndex[b.key];\n } else if (nextOrderA != null) {\n // key a in next, key b in prev\n // how to determine the order between a and b? We find a \"pivot\" (term\n // abuse), a key present in both prev and next, that is sandwiched between\n // a and b. In the context of our above example, if we're comparing a and\n // d, b's (the only) pivot\n for (var i = 0; i < next.length; i++) {\n var pivot = next[i].key;\n\n if (!Object.prototype.hasOwnProperty.call(prevKeyIndex, pivot)) {\n continue;\n }\n\n if (nextOrderA < nextKeyIndex[pivot] && prevOrderB > prevKeyIndex[pivot]) {\n return -1;\n } else if (nextOrderA > nextKeyIndex[pivot] && prevOrderB < prevKeyIndex[pivot]) {\n return 1;\n }\n } // pluggable. default to: next bigger than prev\n\n\n return 1;\n } // prevOrderA, nextOrderB\n\n\n for (var i = 0; i < next.length; i++) {\n var pivot = next[i].key;\n\n if (!Object.prototype.hasOwnProperty.call(prevKeyIndex, pivot)) {\n continue;\n }\n\n if (nextOrderB < nextKeyIndex[pivot] && prevOrderA > prevKeyIndex[pivot]) {\n return 1;\n } else if (nextOrderB > nextKeyIndex[pivot] && prevOrderA < prevKeyIndex[pivot]) {\n return -1;\n }\n } // pluggable. default to: next bigger than prev\n\n\n return -1;\n });\n}\n\nmodule.exports = exports['default']; // to loop through and find a key's index each time), but I no longer care","import \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.array.is-array\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/web.dom.iterable\";\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\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\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}(); // 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\nimport React from 'react';\n\nvar _React$version$split = React.version.split('.'),\n _React$version$split2 = _slicedToArray(_React$version$split, 2),\n major = _React$version$split2[0],\n minor = _React$version$split2[1];\n\nvar versionHigherThanThirteen = Number(minor) > 13 || Number(major) > 13;\nexport var isReactDOMSupported = function isReactDOMSupported() {\n return versionHigherThanThirteen;\n};\n/**\n * Support React 0.13 and greater where refs are React components, not DOM\n * nodes.\n * @param {*} ref React's ref.\n * @returns {Element} DOM element.\n */\n\nexport var getDOMNode = function getDOMNode(ref) {\n if (!isReactDOMSupported()) {\n return ref && ref.getDOMNode();\n }\n\n return ref;\n};\nvar USED_MESSAGES = {};\nvar HIDDEN_PROCESSES = {\n test: true,\n production: true\n};\n/**\n * Warn the user about something\n * @param {String} message - the message to be shown\n * @param {Boolean} onlyShowMessageOnce - whether or not we allow the\n - message to be show multiple times\n */\n\nexport function warning(message) {\n var onlyShowMessageOnce = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n /* eslint-disable no-undef, no-process-env */\n\n if (global.process && HIDDEN_PROCESSES[process.env.NODE_ENV]) {\n return;\n }\n /* eslint-enable no-undef, no-process-env */\n\n\n if (!onlyShowMessageOnce || !USED_MESSAGES[message]) {\n /* eslint-disable no-console */\n console.warn(message);\n /* eslint-enable no-console */\n\n USED_MESSAGES[message] = true;\n }\n}\n/**\n * Convience wrapper for warning\n * @param {String} message - the message to be shown\n */\n\nexport function warnOnce(message) {\n warning(message, true);\n}","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports[\"default\"] = data;","require('./_typed-array')('Uint16', 2, function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports[\"default\"] = data;","require('./_typed-array')('Int8', 1, function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports[\"default\"] = data;","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nvar keysShim;\n\nif (!Object.keys) {\n // modified from https://github.com/es-shims/es5-shim\n var has = Object.prototype.hasOwnProperty;\n var toStr = Object.prototype.toString;\n\n var isArgs = require('./isArguments'); // eslint-disable-line global-require\n\n\n var isEnumerable = Object.prototype.propertyIsEnumerable;\n var hasDontEnumBug = !isEnumerable.call({\n toString: null\n }, 'toString');\n var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n var dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'];\n\n var equalsConstructorPrototype = function equalsConstructorPrototype(o) {\n var ctor = o.constructor;\n return ctor && ctor.prototype === o;\n };\n\n var excludedKeys = {\n $applicationCache: true,\n $console: true,\n $external: true,\n $frame: true,\n $frameElement: true,\n $frames: true,\n $innerHeight: true,\n $innerWidth: true,\n $onmozfullscreenchange: true,\n $onmozfullscreenerror: true,\n $outerHeight: true,\n $outerWidth: true,\n $pageXOffset: true,\n $pageYOffset: true,\n $parent: true,\n $scrollLeft: true,\n $scrollTop: true,\n $scrollX: true,\n $scrollY: true,\n $self: true,\n $webkitIndexedDB: true,\n $webkitStorageInfo: true,\n $window: true\n };\n\n var hasAutomationEqualityBug = function () {\n /* global window */\n if (typeof window === 'undefined') {\n return false;\n }\n\n for (var k in window) {\n try {\n if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n try {\n equalsConstructorPrototype(window[k]);\n } catch (e) {\n return true;\n }\n }\n } catch (e) {\n return true;\n }\n }\n\n return false;\n }();\n\n var equalsConstructorPrototypeIfNotBuggy = function equalsConstructorPrototypeIfNotBuggy(o) {\n /* global window */\n if (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n return equalsConstructorPrototype(o);\n }\n\n try {\n return equalsConstructorPrototype(o);\n } catch (e) {\n return false;\n }\n };\n\n keysShim = function keys(object) {\n var isObject = object !== null && typeof object === 'object';\n var isFunction = toStr.call(object) === '[object Function]';\n var isArguments = isArgs(object);\n var isString = isObject && toStr.call(object) === '[object String]';\n var theKeys = [];\n\n if (!isObject && !isFunction && !isArguments) {\n throw new TypeError('Object.keys called on a non-object');\n }\n\n var skipProto = hasProtoEnumBug && isFunction;\n\n if (isString && object.length > 0 && !has.call(object, 0)) {\n for (var i = 0; i < object.length; ++i) {\n theKeys.push(String(i));\n }\n }\n\n if (isArguments && object.length > 0) {\n for (var j = 0; j < object.length; ++j) {\n theKeys.push(String(j));\n }\n } else {\n for (var name in object) {\n if (!(skipProto && name === 'prototype') && has.call(object, name)) {\n theKeys.push(String(name));\n }\n }\n }\n\n if (hasDontEnumBug) {\n var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n for (var k = 0; k < dontEnums.length; ++k) {\n if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n theKeys.push(dontEnums[k]);\n }\n }\n }\n\n return theKeys;\n };\n}\n\nmodule.exports = keysShim;","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","'use strict';\n\nrequire(\"core-js/modules/es6.object.assign\");\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nexports['default'] = spring;\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _presets = require('./presets');\n\nvar _presets2 = _interopRequireDefault(_presets);\n\nvar defaultConfig = _extends({}, _presets2['default'].noWobble, {\n precision: 0.01\n});\n\nfunction spring(val, config) {\n return _extends({}, defaultConfig, config, {\n val: val\n });\n}\n\nmodule.exports = exports['default'];","require('./_typed-array')('Int32', 4, function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","// turn {x: {val: 1, stiffness: 1, damping: 2}, y: 2} generated by\n// `{x: spring(1, {stiffness: 1, damping: 2}), y: 2}` into {x: 1, y: 2}\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = stripStyle;\n\nfunction stripStyle(style) {\n var ret = {};\n\n for (var key in style) {\n if (!Object.prototype.hasOwnProperty.call(style, key)) {\n continue;\n }\n\n ret[key] = typeof style[key] === 'number' ? style[key] : style[key].val;\n }\n\n return ret;\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nrequire(\"core-js/modules/es6.array.map\");\n\nrequire(\"core-js/modules/es6.object.set-prototype-of\");\n\nrequire(\"core-js/modules/es6.object.create\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nrequire(\"core-js/modules/es6.object.assign\");\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\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\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\nvar _mapToZero = require('./mapToZero');\n\nvar _mapToZero2 = _interopRequireDefault(_mapToZero);\n\nvar _stripStyle = require('./stripStyle');\n\nvar _stripStyle2 = _interopRequireDefault(_stripStyle);\n\nvar _stepper3 = require('./stepper');\n\nvar _stepper4 = _interopRequireDefault(_stepper3);\n\nvar _performanceNow = require('performance-now');\n\nvar _performanceNow2 = _interopRequireDefault(_performanceNow);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _shouldStopAnimation = require('./shouldStopAnimation');\n\nvar _shouldStopAnimation2 = _interopRequireDefault(_shouldStopAnimation);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar msPerFrame = 1000 / 60;\n\nfunction shouldStopAnimationAll(currentStyles, styles, currentVelocities) {\n for (var i = 0; i < currentStyles.length; i++) {\n if (!_shouldStopAnimation2['default'](currentStyles[i], styles[i], currentVelocities[i])) {\n return false;\n }\n }\n\n return true;\n}\n\nvar StaggeredMotion = function (_React$Component) {\n _inherits(StaggeredMotion, _React$Component);\n\n _createClass(StaggeredMotion, null, [{\n key: 'propTypes',\n value: {\n // TOOD: warn against putting a config in here\n defaultStyles: _propTypes2['default'].arrayOf(_propTypes2['default'].objectOf(_propTypes2['default'].number)),\n styles: _propTypes2['default'].func.isRequired,\n children: _propTypes2['default'].func.isRequired\n },\n enumerable: true\n }]);\n\n function StaggeredMotion(props) {\n var _this = this;\n\n _classCallCheck(this, StaggeredMotion);\n\n _React$Component.call(this, props);\n\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n this.unreadPropStyles = null;\n\n this.clearUnreadPropStyle = function (unreadPropStyles) {\n var _state = _this.state;\n var currentStyles = _state.currentStyles;\n var currentVelocities = _state.currentVelocities;\n var lastIdealStyles = _state.lastIdealStyles;\n var lastIdealVelocities = _state.lastIdealVelocities;\n var someDirty = false;\n\n for (var i = 0; i < unreadPropStyles.length; i++) {\n var unreadPropStyle = unreadPropStyles[i];\n var dirty = false;\n\n for (var key in unreadPropStyle) {\n if (!Object.prototype.hasOwnProperty.call(unreadPropStyle, key)) {\n continue;\n }\n\n var styleValue = unreadPropStyle[key];\n\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n someDirty = true;\n currentStyles[i] = _extends({}, currentStyles[i]);\n currentVelocities[i] = _extends({}, currentVelocities[i]);\n lastIdealStyles[i] = _extends({}, lastIdealStyles[i]);\n lastIdealVelocities[i] = _extends({}, lastIdealVelocities[i]);\n }\n\n currentStyles[i][key] = styleValue;\n currentVelocities[i][key] = 0;\n lastIdealStyles[i][key] = styleValue;\n lastIdealVelocities[i][key] = 0;\n }\n }\n }\n\n if (someDirty) {\n _this.setState({\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities\n });\n }\n };\n\n this.startAnimationIfNecessary = function () {\n // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n _this.animationID = _raf2['default'](function (timestamp) {\n var destStyles = _this.props.styles(_this.state.lastIdealStyles); // check if we need to animate in the first place\n\n\n if (shouldStopAnimationAll(_this.state.currentStyles, destStyles, _this.state.currentVelocities)) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n _this.accumulatedTime = 0;\n return;\n }\n\n var currentTime = timestamp || _performanceNow2['default']();\n\n var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta; // more than 10 frames? prolly switched browser tab. Restart\n\n if (_this.accumulatedTime > msPerFrame * 10) {\n _this.accumulatedTime = 0;\n }\n\n if (_this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n\n _this.startAnimationIfNecessary();\n\n return;\n }\n\n var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);\n var newLastIdealStyles = [];\n var newLastIdealVelocities = [];\n var newCurrentStyles = [];\n var newCurrentVelocities = [];\n\n for (var i = 0; i < destStyles.length; i++) {\n var destStyle = destStyles[i];\n var newCurrentStyle = {};\n var newCurrentVelocity = {};\n var newLastIdealStyle = {};\n var newLastIdealVelocity = {};\n\n for (var key in destStyle) {\n if (!Object.prototype.hasOwnProperty.call(destStyle, key)) {\n continue;\n }\n\n var styleValue = destStyle[key];\n\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n var newLastIdealStyleValue = _this.state.lastIdealStyles[i][key];\n var newLastIdealVelocityValue = _this.state.lastIdealVelocities[i][key];\n\n for (var j = 0; j < framesToCatchUp; j++) {\n var _stepper = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n newLastIdealStyleValue = _stepper[0];\n newLastIdealVelocityValue = _stepper[1];\n }\n\n var _stepper2 = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n var nextIdealX = _stepper2[0];\n var nextIdealV = _stepper2[1];\n newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n newCurrentStyles[i] = newCurrentStyle;\n newCurrentVelocities[i] = newCurrentVelocity;\n newLastIdealStyles[i] = newLastIdealStyle;\n newLastIdealVelocities[i] = newLastIdealVelocity;\n }\n\n _this.animationID = null; // the amount we're looped over above\n\n _this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n _this.setState({\n currentStyles: newCurrentStyles,\n currentVelocities: newCurrentVelocities,\n lastIdealStyles: newLastIdealStyles,\n lastIdealVelocities: newLastIdealVelocities\n });\n\n _this.unreadPropStyles = null;\n\n _this.startAnimationIfNecessary();\n });\n };\n\n this.state = this.defaultState();\n }\n\n StaggeredMotion.prototype.defaultState = function defaultState() {\n var _props = this.props;\n var defaultStyles = _props.defaultStyles;\n var styles = _props.styles;\n var currentStyles = defaultStyles || styles().map(_stripStyle2['default']);\n var currentVelocities = currentStyles.map(function (currentStyle) {\n return _mapToZero2['default'](currentStyle);\n });\n return {\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: currentStyles,\n lastIdealVelocities: currentVelocities\n };\n };\n\n StaggeredMotion.prototype.componentDidMount = function componentDidMount() {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n };\n\n StaggeredMotion.prototype.componentWillReceiveProps = function componentWillReceiveProps(props) {\n if (this.unreadPropStyles != null) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyles);\n }\n\n this.unreadPropStyles = props.styles(this.state.lastIdealStyles);\n\n if (this.animationID == null) {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n }\n };\n\n StaggeredMotion.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\n\n this.animationID = null;\n }\n };\n\n StaggeredMotion.prototype.render = function render() {\n var renderedChildren = this.props.children(this.state.currentStyles);\n return renderedChildren && _react2['default'].Children.only(renderedChildren);\n };\n\n return StaggeredMotion;\n}(_react2['default'].Component);\n\nexports['default'] = StaggeredMotion;\nmodule.exports = exports['default']; // it's possible that currentStyle's value is stale: if props is immediately\n// changed from 0 to 400 to spring(0) again, the async currentStyle is still\n// at 0 (didn't have time to tick and interpolate even once). If we naively\n// compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n// In reality currentStyle should be 400\n// after checking for unreadPropStyles != null, we manually go set the\n// non-interpolating values (those that are a number, without a spring\n// config)","var win;\n\nif (typeof window !== \"undefined\") {\n win = window;\n} else if (typeof global !== \"undefined\") {\n win = global;\n} else if (typeof self !== \"undefined\") {\n win = self;\n} else {\n win = {};\n}\n\nmodule.exports = win;","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n","'use strict';\n\nrequire(\"core-js/modules/es6.object.is\");\n\nvar getPolyfill = require('./polyfill');\n\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n var polyfill = getPolyfill();\n define(Object, {\n is: polyfill\n }, {\n is: function testObjectIs() {\n return Object.is !== polyfill;\n }\n });\n return polyfill;\n};","'use strict';\n\nrequire(\"core-js/modules/es6.object.set-prototype-of\");\n\nrequire(\"core-js/modules/es6.object.create\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nrequire(\"core-js/modules/es6.object.assign\");\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\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\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\nvar _mapToZero = require('./mapToZero');\n\nvar _mapToZero2 = _interopRequireDefault(_mapToZero);\n\nvar _stripStyle = require('./stripStyle');\n\nvar _stripStyle2 = _interopRequireDefault(_stripStyle);\n\nvar _stepper3 = require('./stepper');\n\nvar _stepper4 = _interopRequireDefault(_stepper3);\n\nvar _performanceNow = require('performance-now');\n\nvar _performanceNow2 = _interopRequireDefault(_performanceNow);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _shouldStopAnimation = require('./shouldStopAnimation');\n\nvar _shouldStopAnimation2 = _interopRequireDefault(_shouldStopAnimation);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar msPerFrame = 1000 / 60;\n\nvar Motion = function (_React$Component) {\n _inherits(Motion, _React$Component);\n\n _createClass(Motion, null, [{\n key: 'propTypes',\n value: {\n // TOOD: warn against putting a config in here\n defaultStyle: _propTypes2['default'].objectOf(_propTypes2['default'].number),\n style: _propTypes2['default'].objectOf(_propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].object])).isRequired,\n children: _propTypes2['default'].func.isRequired,\n onRest: _propTypes2['default'].func\n },\n enumerable: true\n }]);\n\n function Motion(props) {\n var _this = this;\n\n _classCallCheck(this, Motion);\n\n _React$Component.call(this, props);\n\n this.wasAnimating = false;\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n this.unreadPropStyle = null;\n\n this.clearUnreadPropStyle = function (destStyle) {\n var dirty = false;\n var _state = _this.state;\n var currentStyle = _state.currentStyle;\n var currentVelocity = _state.currentVelocity;\n var lastIdealStyle = _state.lastIdealStyle;\n var lastIdealVelocity = _state.lastIdealVelocity;\n\n for (var key in destStyle) {\n if (!Object.prototype.hasOwnProperty.call(destStyle, key)) {\n continue;\n }\n\n var styleValue = destStyle[key];\n\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n currentStyle = _extends({}, currentStyle);\n currentVelocity = _extends({}, currentVelocity);\n lastIdealStyle = _extends({}, lastIdealStyle);\n lastIdealVelocity = _extends({}, lastIdealVelocity);\n }\n\n currentStyle[key] = styleValue;\n currentVelocity[key] = 0;\n lastIdealStyle[key] = styleValue;\n lastIdealVelocity[key] = 0;\n }\n }\n\n if (dirty) {\n _this.setState({\n currentStyle: currentStyle,\n currentVelocity: currentVelocity,\n lastIdealStyle: lastIdealStyle,\n lastIdealVelocity: lastIdealVelocity\n });\n }\n };\n\n this.startAnimationIfNecessary = function () {\n // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n _this.animationID = _raf2['default'](function (timestamp) {\n // check if we need to animate in the first place\n var propsStyle = _this.props.style;\n\n if (_shouldStopAnimation2['default'](_this.state.currentStyle, propsStyle, _this.state.currentVelocity)) {\n if (_this.wasAnimating && _this.props.onRest) {\n _this.props.onRest();\n } // no need to cancel animationID here; shouldn't have any in flight\n\n\n _this.animationID = null;\n _this.wasAnimating = false;\n _this.accumulatedTime = 0;\n return;\n }\n\n _this.wasAnimating = true;\n\n var currentTime = timestamp || _performanceNow2['default']();\n\n var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta; // more than 10 frames? prolly switched browser tab. Restart\n\n if (_this.accumulatedTime > msPerFrame * 10) {\n _this.accumulatedTime = 0;\n }\n\n if (_this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n\n _this.startAnimationIfNecessary();\n\n return;\n }\n\n var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);\n var newLastIdealStyle = {};\n var newLastIdealVelocity = {};\n var newCurrentStyle = {};\n var newCurrentVelocity = {};\n\n for (var key in propsStyle) {\n if (!Object.prototype.hasOwnProperty.call(propsStyle, key)) {\n continue;\n }\n\n var styleValue = propsStyle[key];\n\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n var newLastIdealStyleValue = _this.state.lastIdealStyle[key];\n var newLastIdealVelocityValue = _this.state.lastIdealVelocity[key];\n\n for (var i = 0; i < framesToCatchUp; i++) {\n var _stepper = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n newLastIdealStyleValue = _stepper[0];\n newLastIdealVelocityValue = _stepper[1];\n }\n\n var _stepper2 = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n var nextIdealX = _stepper2[0];\n var nextIdealV = _stepper2[1];\n newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n _this.animationID = null; // the amount we're looped over above\n\n _this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n _this.setState({\n currentStyle: newCurrentStyle,\n currentVelocity: newCurrentVelocity,\n lastIdealStyle: newLastIdealStyle,\n lastIdealVelocity: newLastIdealVelocity\n });\n\n _this.unreadPropStyle = null;\n\n _this.startAnimationIfNecessary();\n });\n };\n\n this.state = this.defaultState();\n }\n\n Motion.prototype.defaultState = function defaultState() {\n var _props = this.props;\n var defaultStyle = _props.defaultStyle;\n var style = _props.style;\n\n var currentStyle = defaultStyle || _stripStyle2['default'](style);\n\n var currentVelocity = _mapToZero2['default'](currentStyle);\n\n return {\n currentStyle: currentStyle,\n currentVelocity: currentVelocity,\n lastIdealStyle: currentStyle,\n lastIdealVelocity: currentVelocity\n };\n }; // it's possible that currentStyle's value is stale: if props is immediately\n // changed from 0 to 400 to spring(0) again, the async currentStyle is still\n // at 0 (didn't have time to tick and interpolate even once). If we naively\n // compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n // In reality currentStyle should be 400\n\n\n Motion.prototype.componentDidMount = function componentDidMount() {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n };\n\n Motion.prototype.componentWillReceiveProps = function componentWillReceiveProps(props) {\n if (this.unreadPropStyle != null) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyle);\n }\n\n this.unreadPropStyle = props.style;\n\n if (this.animationID == null) {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n }\n };\n\n Motion.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\n\n this.animationID = null;\n }\n };\n\n Motion.prototype.render = function render() {\n var renderedChildren = this.props.children(this.state.currentStyle);\n return renderedChildren && _react2['default'].Children.only(renderedChildren);\n };\n\n return Motion;\n}(_react2['default'].Component);\n\nexports['default'] = Motion;\nmodule.exports = exports['default']; // after checking for unreadPropStyle != null, we manually go set the\n// non-interpolating values (those that are a number, without a spring\n// config)","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 = // parent node\n node.C = // color - true for red, false for black\n node.L = // left node\n node.R = // right node\n node.P = // previous node\n node.N = null; // next node\n}\nRedBlackTree.prototype = {\n constructor: RedBlackTree,\n insert: function insert(after, node) {\n var parent, grandpa, uncle;\n\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\n if (after.R) {\n after = after.R;\n\n while (after.L) {\n after = after.L;\n }\n\n after.L = node;\n } else {\n after.R = node;\n }\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\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n after = node;\n\n while (parent && parent.C) {\n grandpa = parent.U;\n\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n\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\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n\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\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateLeft(this, grandpa);\n }\n }\n\n parent = after.U;\n }\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\n if (parent) {\n if (parent.L === node) parent.L = next;else parent.R = next;\n } else {\n this._ = next;\n }\n\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n\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\n if (node) node.U = parent;\n if (red) return;\n\n if (node && node.C) {\n node.C = false;\n return;\n }\n\n do {\n if (node === this._) break;\n\n if (node === parent.L) {\n sibling = parent.R;\n\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\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\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\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\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\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n RedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n\n if (node) node.C = false;\n }\n};\n\nfunction RedBlackRotateLeft(tree, node) {\n var p = node,\n q = node.R,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;else parent.R = q;\n } else {\n tree._ = q;\n }\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}\n\nfunction RedBlackRotateRight(tree, node) {\n var p = node,\n q = node.L,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;else parent.R = q;\n } else {\n tree._ = q;\n }\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}\n\nfunction RedBlackFirst(node) {\n while (node.L) {\n node = node.L;\n }\n\n return node;\n}\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} // Liang–Barsky line clipping.\n\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\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\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n\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\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n\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\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n\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\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}\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\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n\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\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\n edge[0] = v0;\n edge[1] = v1;\n return true;\n}\n\nexport function clipEdges(x0, y0, x1, y1) {\n var i = edges.length,\n edge;\n\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/es6.array.sort\";\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}\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}\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\n for (j = 0; j < m; ++j) {\n index[j] = j, array[j] = cellHalfedgeAngle(cell, edges[halfedges[j]]);\n }\n\n index.sort(function (i, j) {\n return array[j] - array[i];\n });\n\n for (j = 0; j < m; ++j) {\n array[j] = halfedges[index[j]];\n }\n\n for (j = 0; j < m; ++j) {\n halfedges[j] = array[j];\n }\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\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n halfedges = cell.halfedges;\n iHalfedge = halfedges.length; // Remove any dangling clipped edges.\n\n while (iHalfedge--) {\n if (!edges[halfedges[iHalfedge]]) {\n halfedges.splice(iHalfedge, 1);\n }\n } // Insert any border edges as necessary.\n\n\n iHalfedge = 0, nHalfedges = halfedges.length;\n\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\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\n if (nHalfedges) cover = false;\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\n\n if (cover) {\n var dx,\n dy,\n d2,\n dc = Infinity;\n\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\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 } // Lastly delete any cells with no edges; these were entirely clipped.\n\n\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;\n\nfunction Circle() {\n RedBlackNode(this);\n this.x = this.y = this.arc = this.site = this.cy = null;\n}\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\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\n circles.insert(before, circle);\n if (!before) firstCircle = circle;\n}\nexport function detachCircle(arc) {\n var circle = arc.circle;\n\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 = [];\n\nfunction Beach() {\n RedBlackNode(this);\n this.edge = this.site = this.circle = null;\n}\n\nfunction createBeach(site) {\n var beach = beachPool.pop() || new Beach();\n beach.site = site;\n return beach;\n}\n\nfunction detachBeach(beach) {\n detachCircle(beach);\n beaches.remove(beach);\n beachPool.push(beach);\n RedBlackNode(beach);\n}\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\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\n disappearing.unshift(lArc);\n detachCircle(lArc);\n var rArc = next;\n\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\n disappearing.push(rArc);\n detachCircle(rArc);\n var nArcs = disappearing.length,\n iArc;\n\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\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\n while (node) {\n dxl = leftBreakPoint(node, directrix) - x;\n if (dxl > epsilon) node = node.L;else {\n dxr = x - rightBreakPoint(node, directrix);\n\n if (dxr > epsilon) {\n if (!node.R) {\n lArc = node;\n break;\n }\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\n break;\n }\n }\n }\n\n createCell(site);\n var newArc = createBeach(site);\n beaches.insert(lArc, newArc);\n if (!lArc && !rArc) return;\n\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\n if (!rArc) {\n // && lArc\n newArc.edge = createEdge(lArc.site, newArc.site);\n return;\n } // else lArc !== rArc\n\n\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}\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}\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/es6.array.filter\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.sort\";\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;\n\nfunction triangleArea(a, b, c) {\n return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);\n}\n\nfunction lexicographic(a, b) {\n return b[1] - a[1] || b[0] - a[0];\n}\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\n while (true) {\n circle = firstCircle;\n\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\n site = sites.pop();\n } else if (circle) {\n removeBeach(circle.arc);\n } else {\n break;\n }\n }\n\n sortCellHalfedges();\n\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\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\n while (++j < m) {\n s0 = s1;\n e1 = edges[halfedges[j]];\n s1 = e1.left === site ? e1.right : e1.left;\n\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; // Use the previously-found cell, or start with an arbitrary one.\n\n while (!(cell = that.cells[i1])) {\n if (++i1 >= n) return null;\n }\n\n var dx = x - cell.site[0],\n dy = y - cell.site[1],\n d2 = dx * dx + dy * dy; // Traverse the half-edges to find a closer cell, if any.\n\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\n that._found = i0;\n return radius == null || d2 <= radius * radius ? cell.site : null;\n }\n};","import \"core-js/modules/es6.array.map\";\nimport 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\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\n voronoi.polygons = function (data) {\n return voronoi(data).polygons();\n };\n\n voronoi.links = function (data) {\n return voronoi(data).links();\n };\n\n voronoi.triangles = function (data) {\n return voronoi(data).triangles();\n };\n\n voronoi.x = function (_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), voronoi) : x;\n };\n\n voronoi.y = function (_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), voronoi) : y;\n };\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\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\n return voronoi;\n}","import \"core-js/modules/es6.object.create\";\nexport 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\n for (var key in definition) {\n prototype[key] = definition[key];\n }\n\n return prototype;\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.string.trim\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es6.regexp.constructor\";\nimport define, { extend } from \"./define.js\";\nexport function Color() {}\nvar _darker = 0.7;\nexport { _darker as darker };\n\nvar _brighter = 1 / _darker;\n\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});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb(m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, (m & 0xf) << 4 | m & 0xf, 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba(m >> 12 & 0xf | m >> 8 & 0xf0, m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, ((m & 0xf) << 4 | m & 0xf) / 0xff) // #f000\n : null // invalid hex\n ) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb();\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\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}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity;\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}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;else if (l <= 0 || l >= 1) h = s = NaN;else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl();\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n\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\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}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function 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/* From FvD 13.37, CSS Color Module Level 3 */\n\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\";\n\nfunction linear(a, d) {\n return function (t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function (t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\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\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function (t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function (colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i,\n color;\n\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\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function (t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);","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}","import \"core-js/modules/es6.typed.data-view\";\nexport 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) {\n c[i] = a[i] * (1 - t) + b[i] * t;\n }\n\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\n for (i = 0; i < na; ++i) {\n x[i] = value(a[i], b[i]);\n }\n\n for (; i < nb; ++i) {\n c[i] = b[i];\n }\n\n return function (t) {\n for (i = 0; i < na; ++i) {\n c[i] = x[i](t);\n }\n\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\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function (t) {\n for (k in i) {\n c[k] = i[k](t);\n }\n\n return c;\n };\n}","import \"core-js/modules/es6.regexp.constructor\";\nimport number from \"./number.js\";\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function () {\n return b;\n };\n}\n\nfunction one(b) {\n return function (t) {\n return b(t) + \"\";\n };\n}\n\nexport default function (a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0,\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 // Coerce inputs to strings.\n\n a = a + \"\", b = b + \"\"; // Interpolate pairs of numbers in a & b.\n\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\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\n bi = reB.lastIndex;\n } // Add remains of b.\n\n\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 } // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n\n\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) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n });\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.array.is-array\";\nimport { 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/es6.array.map\";\nimport \"core-js/modules/es6.array.reduce\";\nimport \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es6.object.define-property\";\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\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\n return target;\n}\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/**\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\n if (typeof animationStyle === 'string') {\n return presets[animationStyle] || presets.noWobble;\n }\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 * Extract the animated props from the entire props object.\n * @param {Object} props Props.\n * @returns {Object} Object of animated props.\n */\n\n\nexport function extractAnimatedPropValues(props) {\n var animatedProps = props.animatedProps,\n otherProps = _objectWithoutProperties(props, ['animatedProps']);\n\n return animatedProps.reduce(function (result, animatedPropName) {\n if (otherProps.hasOwnProperty(animatedPropName)) {\n result[animatedPropName] = otherProps[animatedPropName];\n }\n\n return result;\n }, {});\n}\n\nvar Animation = function (_PureComponent) {\n _inherits(Animation, _PureComponent);\n\n function Animation(props) {\n _classCallCheck(this, Animation);\n\n var _this = _possibleConstructorReturn(this, (Animation.__proto__ || Object.getPrototypeOf(Animation)).call(this, props));\n\n _this._motionEndHandler = function () {\n if (_this.props.onEnd) {\n _this.props.onEnd();\n }\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; // 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\n var data = interpolatedProps && interpolatedProps.data || null;\n\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\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\n _this._updateInterpolator(props);\n\n return _this;\n }\n\n _createClass(Animation, [{\n key: 'componentWillUpdate',\n value: function componentWillUpdate(props) {\n this._updateInterpolator(this.props, props);\n\n if (props.onStart) {\n props.onStart();\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 }, {\n key: '_updateInterpolator',\n\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 }; // 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\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\n return Animation;\n}(PureComponent);\n\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\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\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\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\n return lo;\n }\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\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n}","export default function (values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min,\n max;\n\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\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\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\n return [min, max];\n}","import \"core-js/modules/es6.array.map\";\nvar 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\n while (++i < n) {\n range[i] = start + i * step;\n }\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\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\n while (++i < n) {\n ticks[i] = (start + i) * step;\n }\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\n while (++i < n) {\n ticks[i] = (start - i) / step;\n }\n }\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\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\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\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\n return min;\n}","export default function (values, valueof) {\n var n = values.length,\n i = -1,\n value,\n sum = 0;\n\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\n return sum;\n}","import \"core-js/modules/es6.array.is-array\";\nexport var prefix = \"$\";\n\nfunction Map() {}\n\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) {\n if (property[0] === prefix) delete this[property];\n }\n },\n keys: function keys() {\n var keys = [];\n\n for (var property in this) {\n if (property[0] === prefix) keys.push(property.slice(1));\n }\n\n return keys;\n },\n values: function values() {\n var values = [];\n\n for (var property in this) {\n if (property[0] === prefix) values.push(this[property]);\n }\n\n return values;\n },\n entries: function entries() {\n var entries = [];\n\n for (var property in this) {\n if (property[0] === prefix) entries.push({\n key: property.slice(1),\n value: this[property]\n });\n }\n\n return entries;\n },\n size: function size() {\n var size = 0;\n\n for (var property in this) {\n if (property[0] === prefix) ++size;\n }\n\n return size;\n },\n empty: function empty() {\n for (var property in this) {\n if (property[0] === prefix) return false;\n }\n\n return true;\n },\n each: function each(f) {\n for (var property in this) {\n if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n }\n};\n\nfunction map(object, f) {\n var map = new Map(); // Copy constructor.\n\n if (object instanceof Map) object.each(function (value, key) {\n map.set(key, value);\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) {\n map.set(i, object[i]);\n } else while (++i < n) {\n map.set(f(o = object[i], i, object), o);\n }\n } // Convert object to map.\n else if (object) for (var key in object) {\n map.set(key, object[key]);\n }\n return map;\n}\n\nexport default map;","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.array.sort\";\nimport map from \"./map\";\nexport default function () {\n var keys = [],\n _sortKeys = [],\n _sortValues,\n _rollup,\n nest;\n\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\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\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\n valuesByKey.each(function (values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n return result;\n }\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\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}\n\nfunction createObject() {\n return {};\n}\n\nfunction setObject(object, key, value) {\n object[key] = value;\n}\n\nfunction createMap() {\n return map();\n}\n\nfunction setMap(map, key, value) {\n map.set(key, value);\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport { default as map, prefix } from \"./map\";\n\nfunction Set() {}\n\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};\n\nfunction set(object, f) {\n var set = new Set(); // Copy constructor.\n\n if (object instanceof Set) object.each(function (value) {\n set.add(value);\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) {\n set.add(object[i]);\n } else while (++i < n) {\n set.add(f(object[i], i, object));\n }\n }\n return set;\n}\n\nexport default set;","import \"core-js/modules/es6.array.map\";\nvar 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\n function scale(d) {\n var key = d + \"\",\n i = index.get(key);\n\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function (_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map();\n var i = -1,\n n = _.length,\n d,\n key;\n\n while (++i < n) {\n if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n }\n\n return scale;\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = slice.call(_), scale) : range.slice();\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function () {\n return ordinal().domain(domain).range(range).unknown(unknown);\n };\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}\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}\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}\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}\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; // Reverse descending domains.\n\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = deinterpolate(domain[i], domain[i + 1]);\n r[i] = reinterpolate(range[i], range[i + 1]);\n }\n\n return function (x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp());\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].\n\nexport default function continuous(deinterpolate, reinterpolate) {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n clamp = false,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return (output || (output = piecewise(domain, range, clamp ? deinterpolateClamp(deinterpolate) : deinterpolate, interpolate)))(+x);\n }\n\n scale.invert = function (y) {\n return (input || (input = piecewise(range, domain, deinterpolateLinear, clamp ? reinterpolateClamp(reinterpolate) : reinterpolate)))(+y);\n };\n\n scale.domain = function (_) {\n return arguments.length ? (domain = map.call(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function (_) {\n return range = slice.call(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function (_) {\n return arguments.length ? (clamp = !!_, rescale()) : clamp;\n };\n\n scale.interpolate = function (_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n return rescale();\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.string.trim\";\nimport \"core-js/modules/es6.array.fill\";\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}\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};","import \"core-js/modules/es6.array.index-of\";\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nexport default function (x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n\n var i,\n coefficient = x.slice(0, i); // 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\n return [coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, +x.slice(i + 1)];\n}","import formatDecimal from \"./formatDecimal.js\";\nexport var prefixExponent;\nexport default function (x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient : 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\") + formatDecimal(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 formatDecimal from \"./formatDecimal.js\";\nexport default function (x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n}","import formatDecimal from \"./formatDecimal.js\";\nexport default function (x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\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\": function d(x) {\n return Math.round(x).toString(10);\n },\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 \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.string.trim\";\nimport \"core-js/modules/es6.array.fill\";\nimport \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.array.map\";\nimport 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\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; // The \"n\" type is an alias for \",g\".\n\n if (type === \"n\") comma = true, type = \"g\"; // 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\"; // If zero fill is specified, padding goes after sign and before digits.\n\n if (zero || fill === \"0\" && align === \"=\") zero = true, fill = \"0\", align = \"=\"; // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\"; // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type); // 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\n precision = precision === undefined ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i,\n n,\n c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value; // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n\n var valueNegative = value < 0 || 1 / value < 0; // Perform the initial formatting.\n\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision); // Trim insignificant zeros.\n\n if (trim) value = formatTrim(value); // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false; // Compute the prefix and suffix.\n\n valuePrefix = (valueNegative ? sign === \"(\" ? sign : minus : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\"); // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n\n if (maybeSuffix) {\n i = -1, n = value.length;\n\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 } // If the fill character is not \"0\", grouping is applied before padding.\n\n\n if (comma && !zero) value = group(value, Infinity); // Compute the padding.\n\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\"; // If the fill character is \"0\", grouping is applied after padding.\n\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\"; // Reconstruct the final output based on the desired alignment.\n\n switch (align) {\n case \"<\":\n value = valuePrefix + value + valueSuffix + padding;\n break;\n\n case \"=\":\n value = valuePrefix + padding + value + valueSuffix;\n break;\n\n case \"^\":\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n\n default:\n value = padding + valuePrefix + value + valueSuffix;\n break;\n }\n\n return numerals(value);\n }\n\n format.toString = function () {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function (value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}","export default function (grouping, thousands) {\n return function (value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}","import \"core-js/modules/es6.regexp.replace\";\nexport 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\n case \"0\":\n if (i0 === 0) i0 = i;\n i1 = i;\n break;\n\n default:\n if (!+s[i]) break out;\n if (i0 > 0) i0 = 0;\n break;\n }\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\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\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\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\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\n scale.ticks = function (count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function (count, specifier) {\n return tickFormat(domain(), count, specifier);\n };\n\n scale.nice = function (count) {\n if (count == null) count = 10;\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\nexport default function linear() {\n var scale = continuous(deinterpolate, reinterpolate);\n\n scale.copy = function () {\n return copy(scale, linear());\n };\n\n return linearish(scale);\n}","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\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.math.log2\";\nimport \"core-js/modules/es6.math.log10\";\nimport { ticks } from \"d3-array\";\nimport { format } from \"d3-format\";\nimport constant from \"./constant\";\nimport nice from \"./nice\";\nimport { default as continuous, copy } from \"./continuous\";\n\nfunction deinterpolate(a, b) {\n return (b = Math.log(b / a)) ? function (x) {\n return Math.log(x / a) / b;\n } : constant(b);\n}\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}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10 : base === Math.E ? Math.exp : function (x) {\n return Math.pow(base, x);\n };\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}\n\nfunction reflect(f) {\n return function (x) {\n return -f(-x);\n };\n}\n\nexport default function log() {\n var scale = continuous(deinterpolate, reinterpolate).domain([1, 10]),\n domain = scale.domain,\n base = 10,\n logs = logp(10),\n pows = powp(10);\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) logs = reflect(logs), pows = reflect(pows);\n return scale;\n }\n\n scale.base = function (_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function (_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function (count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n 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\n if (!(base % 1) && j - i < n) {\n i = Math.round(i) - 1, j = Math.round(j) + 1;\n if (u > 0) for (; i < j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i < j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function (count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n\n return function (d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function () {\n return domain(nice(domain(), {\n floor: function 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\n scale.copy = function () {\n return copy(scale, log().base(base));\n };\n\n return scale;\n}","import constant from \"./constant\";\nimport { linearish } from \"./linear\";\nimport { default as continuous, copy } from \"./continuous\";\n\nfunction raise(x, exponent) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n}\n\nexport default function pow() {\n var exponent = 1,\n scale = continuous(deinterpolate, reinterpolate),\n domain = scale.domain;\n\n function deinterpolate(a, b) {\n return (b = raise(b, exponent) - (a = raise(a, exponent))) ? function (x) {\n return (raise(x, exponent) - a) / b;\n } : constant(b);\n }\n\n function reinterpolate(a, b) {\n b = raise(b, exponent) - (a = raise(a, exponent));\n return function (t) {\n return raise(a + b * t, 1 / exponent);\n };\n }\n\n scale.exponent = function (_) {\n return arguments.length ? (exponent = +_, domain(domain())) : exponent;\n };\n\n scale.copy = function () {\n return copy(scale, pow().exponent(exponent));\n };\n\n return linearish(scale);\n}\nexport function sqrt() {\n return pow().exponent(0.5);\n}","import \"core-js/modules/es6.array.is-array\";\nimport \"core-js/modules/es6.array.filter\";\nvar 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\n interval.floor = function (date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function (date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function (date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function (date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function (start, stop, step) {\n var range = [],\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\n do {\n range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n } while (previous < start && start < stop);\n\n return range;\n };\n\n interval.filter = function (test) {\n return newInterval(function (date) {\n if (date >= date) while (floori(date), !test(date)) {\n date.setTime(date - 1);\n }\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\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n\n }\n }\n });\n };\n\n if (count) {\n interval.count = function (start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function (step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null : !(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\n return interval;\n}","import \"core-js/modules/es6.array.is-array\";\nimport 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}); // An optimized implementation for this simple case.\n\nyear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;","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\";\n\nfunction weekday(i) {\n return interval(function (date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\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 \"core-js/modules/es6.array.is-array\";\nimport interval from \"./interval.js\";\nvar millisecond = interval(function () {// noop\n}, function (date, step) {\n date.setTime(+date + step);\n}, function (start, end) {\n return end - start;\n}); // An optimized implementation for this simple case.\n\nmillisecond.every = function (k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function (date) {\n date.setTime(Math.floor(date / k) * k);\n }, function (date, step) {\n date.setTime(+date + step * k);\n }, function (start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;","import interval from \"./interval.js\";\nimport { durationWeek } from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function (date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function (start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\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 \"core-js/modules/es6.array.is-array\";\nimport 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}); // An optimized implementation for this simple case.\n\nutcYear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.regexp.constructor\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nimport { timeDay, timeSunday, timeMonday, timeThursday, timeYear, utcDay, utcSunday, utcMonday, utcThursday, utcYear } from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {\n y: y,\n m: m,\n d: d,\n H: 0,\n M: 0,\n S: 0,\n L: 0\n };\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 \"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 \"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 \"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 }; // These recursive directive definitions must be deferred.\n\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function (date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function (string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week,\n day;\n if (i != string.length) return null; // If a UNIX timestamp is specified, return it.\n\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)); // If this is utcParse, never use the local timezone.\n\n if (Z && !(\"Z\" in d)) d.Z = 0; // The am-pm flag is 0 for AM, and 1 for PM.\n\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12; // If the month was not specified, inherit from the quarter.\n\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0; // Convert day-of-week and week-of-year to day-of-year.\n\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n\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 } // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n\n\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n } // Otherwise, all fields are in local time.\n\n\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || (j = parse(d, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function format(specifier) {\n var f = newFormat(specifier += \"\", formats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n parse: function parse(specifier) {\n var p = newParse(specifier += \"\", false);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n },\n utcFormat: function utcFormat(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n utcParse: function utcParse(specifier) {\n var p = newParse(specifier += \"\", true);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n }\n };\n}\nvar pads = {\n \"-\": \"\",\n \"_\": \" \",\n \"0\": \"0\"\n},\n numberRe = /^\\s*\\d+/,\n // note: ignores next directive\npercentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {},\n i = -1,\n n = names.length;\n\n while (++i < n) {\n map[names[i].toLowerCase()] = i;\n }\n\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = day >= 4 || day === 0 ? timeThursday(d) : timeThursday.ceil(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\")) + pad(z / 60 | 0, \"0\", 2) + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = day >= 4 || day === 0 ? utcThursday(d) : utcThursday.ceil(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}","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 \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.is-array\";\nimport { 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;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(deinterpolate, reinterpolate),\n invert = scale.invert,\n domain = scale.domain;\n 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\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\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10; // 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\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\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function (y) {\n return new Date(invert(y));\n };\n\n scale.domain = function (_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function (interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function (count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function (interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step)) ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function () {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\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;","import \"core-js/modules/es6.regexp.match\";\nimport \"core-js/modules/es6.array.map\";\nexport 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;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)),\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}\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\";\n\nfunction cubehelix(hue) {\n return function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function (t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n return cubehelix;\n }(1);\n}\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\";\n\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}\n\nexport default ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\nexport var magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\nexport var inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\nexport var plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.set\";\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\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 * 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 */\n\nexport function addValueToArray(arr, value) {\n var result = [].concat(arr);\n\n if (result[0] > value) {\n result[0] = value;\n }\n\n if (result[result.length - 1] < value) {\n result[result.length - 1] = value;\n }\n\n return result;\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 */\n\nexport function transformValueToString(value) {\n return Object.prototype.toString.call(value) === '[object Date]' ? value.toDateString() : value;\n}","import \"core-js/modules/es6.regexp.match\";\nimport \"core-js/modules/es6.regexp.constructor\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.find\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.array.reduce\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.array.is-array\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\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}();\n\nvar _SCALE_FUNCTIONS;\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\n return arr2;\n } else {\n return Array.from(arr);\n }\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\n return obj;\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\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 * Linear scale name.\n * @type {string}\n * @const\n */\n\nvar LINEAR_SCALE_TYPE = 'linear';\n/**\n * Ordinal scale name.\n * @type {string}\n * @const\n */\n\nvar ORDINAL_SCALE_TYPE = 'ordinal';\n/**\n * Category scale.\n * @type {string}\n * @const\n */\n\nvar CATEGORY_SCALE_TYPE = 'category';\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 */\n\nvar LITERAL_SCALE_TYPE = 'literal';\n/**\n * Log scale name.\n * @type {string}\n * @const\n */\n\nvar LOG_SCALE_TYPE = 'log';\n/**\n * Time scale name.\n * @type {string}\n * @const\n */\n\nvar TIME_SCALE_TYPE = 'time';\n/**\n * Time UTC scale name.\n * @type {string}\n * @const\n */\n\nvar TIME_UTC_SCALE_TYPE = 'time-utc';\n/**\n * Scale functions that are supported in the library.\n * @type {Object}\n * @const\n */\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 * 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 * Title case a given string\n * @param {String} str Array of values.\n * @returns {String} titlecased string\n */\n\nfunction toTitleCase(str) {\n return '' + str[0].toUpperCase() + str.slice(1);\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 */\n\n\nexport function _getSmallestDistanceIndex(values, scaleObject) {\n var scaleFn = getScaleFnFromScaleObject(scaleObject);\n var result = 0;\n\n if (scaleFn) {\n var nextValue = void 0;\n var currentValue = scaleFn(values[0]);\n var distance = Infinity;\n var nextDistance = void 0;\n\n for (var i = 1; i < values.length; i++) {\n nextValue = scaleFn(values[i]);\n nextDistance = Math.abs(nextValue - currentValue);\n\n if (nextDistance < distance) {\n distance = nextDistance;\n result = i;\n }\n\n currentValue = nextValue;\n }\n }\n\n return result;\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\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\n var start = Math.min(lower, upper);\n var stop = Math.max(lower, upper);\n\n if (value < start + scale.padding() * scale.step()) {\n return scale.domain()[0];\n }\n\n if (value > stop - scale.padding() * scale.step()) {\n return scale.domain()[scale.domain().length - 1];\n }\n\n var index = Math.floor((value - start - scale.padding() * scale.step()) / scale.step());\n return scale.domain()[index];\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 */\n\n\nexport function getScaleFnFromScaleObject(scaleObject) {\n if (!scaleObject) {\n return null;\n }\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\n if (type === LITERAL_SCALE_TYPE) {\n return literalScale(range[0]);\n }\n\n var scale = SCALE_FUNCTIONS[type]().domain(modDomain).range(range);\n\n if (type === ORDINAL_SCALE_TYPE) {\n scale.padding(0.5);\n addInvertFunctionToOrdinalScaleObject(scale);\n }\n\n return scale;\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 */\n\nexport function getDomainByAccessor(allData, accessor, accessor0, type) {\n var domain = void 0; // Collect both attr and available attr0 values from the array of data.\n\n var values = allData.reduce(function (data, d) {\n var value = accessor(d);\n var value0 = accessor0(d);\n\n if (_isDefined(value)) {\n data.push(value);\n }\n\n if (_isDefined(value0)) {\n data.push(value0);\n }\n\n return data;\n }, []);\n\n if (!values.length) {\n return [];\n } // Create proper domain depending on the type of the scale.\n\n\n if (type !== ORDINAL_SCALE_TYPE && type !== CATEGORY_SCALE_TYPE) {\n domain = extent(values);\n } else {\n domain = set(values).values();\n }\n\n return domain;\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 */\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\n if (typeof value === 'undefined') {\n return null;\n }\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 * 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 */\n\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 * 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 */\n\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']; // 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 } // Pick up the domain from the properties and create a new one if it's not\n // available.\n\n\n if (typeof baseValue !== 'undefined') {\n domain = addValueToArray(domain, baseValue);\n } // Make sure that the minimum necessary properties exist.\n\n\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\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 * Compute left domain adjustment for the given values.\n * @param {Array} values Array of values.\n * @returns {number} Domain adjustment.\n * @private\n */\n\n\nfunction _computeLeftDomainAdjustment(values) {\n if (values.length > 1) {\n return (values[1] - values[0]) / 2;\n }\n\n if (values.length === 1) {\n return values[0] - 0.5;\n }\n\n return 0;\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 */\n\n\nfunction _computeRightDomainAdjustment(values) {\n if (values.length > 1) {\n return (values[values.length - 1] - values[values.length - 2]) / 2;\n }\n\n if (values.length === 1) {\n return values[0] - 0.5;\n }\n\n return 0;\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 */\n\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\n if (values.length === 1) {\n return Math.abs(scaleFn(domain[1]) - scaleFn(domain[0]));\n }\n\n return 0;\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 */\n\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\n return values;\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 */\n\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); // Fix time scale if a data has only one value.\n\n var values = _normalizeValues(data, uniqueValues, accessor0, type);\n\n var index = _getSmallestDistanceIndex(values, scaleObject);\n\n var adjustedDomain = [].concat(domain);\n adjustedDomain[0] -= _computeLeftDomainAdjustment(values);\n adjustedDomain[domain.length - 1] += _computeRightDomainAdjustment(values); // Fix log scale if it's too small.\n\n if (type === LOG_SCALE_TYPE && domain[0] <= 0) {\n adjustedDomain[0] = Math.min(domain[1] / 10, 1);\n }\n\n var adjustedScaleFn = getScaleFnFromScaleObject(_extends({}, scaleObject, {\n domain: adjustedDomain\n }));\n\n var distance = _computeScaleDistance(values, adjustedDomain, index, adjustedScaleFn);\n\n return {\n domain0: adjustedDomain[0],\n domainN: adjustedDomain[adjustedDomain.length - 1],\n distance: distance\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 */\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; // 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 * 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 */\n\n\nfunction _adjustContinuousScale(props, scaleObject) {\n var allSeriesData = props._allData,\n _props$_adjustWhat2 = props._adjustWhat,\n adjustWhat = _props$_adjustWhat2 === undefined ? [] : _props$_adjustWhat2; // 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; // Find the smallest left position of the domain, the largest right position\n // of the domain and the best distance for them.\n\n allSeriesData.forEach(function (data, index) {\n if (adjustWhat.indexOf(index) === -1) {\n return;\n }\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\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 * 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 */\n\n\nexport function _adjustCategoricalScale(scaleObject) {\n var scaleFn = getScaleFnFromScaleObject(scaleObject);\n var domain = scaleObject.domain,\n range = scaleObject.range;\n\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\n return scaleObject;\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 */\n\nexport function getScaleObjectFromProps(props, attr) {\n // Create the initial scale object.\n var scaleObject = _collectScaleObjectFromProps(props, attr);\n\n if (!scaleObject) {\n return null;\n } // Make sure if it's possible to add space to the scale object. If not,\n // return the object immediately.\n\n\n if (!_isScaleAdjustmentPossible(props, scaleObject)) {\n return scaleObject;\n }\n\n var type = scaleObject.type; // 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\n return _adjustContinuousScale(props, scaleObject);\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 */\n\nexport function getAttributeScale(props, attr) {\n var scaleObject = getScaleObjectFromProps(props, attr);\n return getScaleFnFromScaleObject(scaleObject);\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 */\n\nfunction _getAttrValue(d, accessor) {\n return accessor(d.data ? d.data : d);\n}\n\nfunction _isDefined(value) {\n return typeof value !== 'undefined';\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 */\n\n\nfunction _padDomain(domain, padding) {\n if (!domain) {\n return domain;\n }\n\n if (isNaN(parseFloat(domain[0])) || isNaN(parseFloat(domain[1]))) {\n return domain;\n }\n\n var _domain = _slicedToArray(domain, 2),\n min = _domain[0],\n max = _domain[1];\n\n var domainPadding = (max - min) * (padding * 0.01);\n return [min - domainPadding, max + domainPadding];\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 */\n\n\nexport function getAttributeFunctor(props, attr) {\n var scaleObject = getScaleObjectFromProps(props, attr);\n\n if (scaleObject) {\n var scaleFn = getScaleFnFromScaleObject(scaleObject);\n return function (d) {\n return scaleFn(_getAttrValue(d, scaleObject.accessor));\n };\n }\n\n return null;\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 */\n\nexport function getAttr0Functor(props, attr) {\n var scaleObject = getScaleObjectFromProps(props, attr);\n\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\n return scaleFn(_isDefined(value) ? value : baseValue);\n };\n }\n\n return null;\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 */\n\nexport function getAttributeValue(props, attr) {\n var scaleObject = getScaleObjectFromProps(props, attr);\n\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\n return props['_' + attr + 'Value'] || scaleObject.range[0];\n }\n\n return null;\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 */\n\nexport function getScalePropTypesByAttribute(attr) {\n var _ref2;\n\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 * 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 */\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; // Ex: _data\n\n var isUnderscoreSet = key.indexOf('_' + a) === 0; // EX: getX\n\n var usesGet = key.indexOf('get' + toTitleCase(a)) === 0;\n return isPlainSet || isUnderscoreSet || usesGet;\n });\n\n if (!attr) {\n return;\n }\n\n result[key] = props[key];\n });\n return result;\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 */\n\nexport function getMissingScaleProps(props, data, attributes) {\n var result = {}; // Make sure that the domain is set pad it if specified\n\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\n if (!props['get' + toTitleCase(attr) + '0']) {\n result['get' + toTitleCase(attr) + '0'] = function (d) {\n return d[attr + '0'];\n };\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\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 * Return a d3 scale that returns the literal value that was given to it\n * @returns {function} literal scale.\n */\n\nexport function literalScale(defaultValue) {\n function scale(d) {\n if (d === undefined) {\n return defaultValue;\n }\n\n return d;\n }\n\n function response() {\n return scale;\n }\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\n return null;\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\n if (domain && range && type) {\n return _extends({}, prev, _defineProperty({}, attr, SCALE_FUNCTIONS[type]().domain(domain).range(range)));\n }\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\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 */\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\n if (propIsNotOptional) {\n return acc;\n }\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 \"core-js/modules/es6.array.map\";\nimport { 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\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\n scale.domain = function (_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n\n scale.rangeRound = function (_) {\n return range = [+_[0], +_[1]], round = true, rescale();\n };\n\n scale.bandwidth = function () {\n return bandwidth;\n };\n\n scale.step = function () {\n return step;\n };\n\n scale.round = function (_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function (_) {\n return arguments.length ? (paddingInner = paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function (_) {\n return arguments.length ? (paddingInner = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function (_) {\n return arguments.length ? (paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingOuter;\n };\n\n scale.align = function (_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function () {\n return band().domain(domain()).range(range).round(round).paddingInner(paddingInner).paddingOuter(paddingOuter).align(align);\n };\n\n return rescale();\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function () {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band().paddingInner(1));\n}","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}","import \"core-js/modules/es6.array.find\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es6.object.define-property\";\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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';\n\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});\n\nvar defaultProps = {\n className: '',\n stack: false,\n style: {}\n};\n\nvar AbstractSeries = function (_PureComponent) {\n _inherits(AbstractSeries, _PureComponent);\n\n function AbstractSeries() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, AbstractSeries);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = AbstractSeries.__proto__ || Object.getPrototypeOf(AbstractSeries)).call.apply(_ref, [this].concat(args))), _this), _this._seriesClickHandler = function (event) {\n var onSeriesClick = _this.props.onSeriesClick;\n\n if (onSeriesClick) {\n onSeriesClick({\n event: event\n });\n }\n }, _this._seriesMouseOutHandler = function (event) {\n var onSeriesMouseOut = _this.props.onSeriesMouseOut;\n\n if (onSeriesMouseOut) {\n onSeriesMouseOut({\n event: event\n });\n }\n }, _this._seriesMouseOverHandler = function (event) {\n var onSeriesMouseOver = _this.props.onSeriesMouseOver;\n\n if (onSeriesMouseOver) {\n onSeriesMouseOver({\n event: event\n });\n }\n }, _this._seriesRightClickHandler = function (event) {\n var onSeriesRightClick = _this.props.onSeriesRightClick;\n\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\n if (onValueClick) {\n onValueClick(d, {\n event: event\n });\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\n if (onValueMouseOut) {\n onValueMouseOut(d, {\n event: event\n });\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\n if (onValueMouseOver) {\n onValueMouseOver(d, {\n event: event\n });\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\n if (onValueRightClick) {\n onValueRightClick(d, {\n event: event\n });\n }\n\n if (onSeriesRightClick) {\n onSeriesRightClick({\n event: event\n });\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\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\n if (!onNearestX && !onNearestXY || !data) {\n return;\n }\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 * Get the attr0 functor.\n * @param {string} attr Attribute name.\n * @returns {*} Functor.\n * @private\n */\n\n }, {\n key: '_getAttr0Functor',\n value: function _getAttr0Functor(attr) {\n return getAttr0Functor(this.props, attr);\n }\n /**\n * Get attribute functor.\n * @param {string} attr Attribute name\n * @returns {*} Functor.\n * @protected\n */\n\n }, {\n key: '_getAttributeFunctor',\n value: function _getAttributeFunctor(attr) {\n return getAttributeFunctor(this.props, attr);\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 }, {\n key: '_getAttributeValue',\n value: function _getAttributeValue(attr) {\n return getAttributeValue(this.props, attr);\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 }, {\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\n if (evt.type === 'touchmove') {\n x = evt.touches[0].pageX;\n y = evt.touches[0].pageY;\n }\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\n var coordinate = this._getXYCoordinateInContainer(event);\n\n var xScaleFn = this._getAttributeFunctor('x');\n\n data.forEach(function (item, i) {\n var currentCoordinate = xScaleFn(item);\n var newDistance = Math.abs(coordinate.x - currentCoordinate);\n\n if (newDistance < minDistance) {\n minDistance = newDistance;\n value = item;\n valueIndex = i;\n }\n });\n\n if (!value) {\n return;\n }\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\n var coordinate = this._getXYCoordinateInContainer(event);\n\n var xScaleFn = this._getAttributeFunctor('x');\n\n var yScaleFn = this._getAttributeFunctor('y'); // Create a voronoi with each node center points\n\n\n var voronoiInstance = voronoi().x(xScaleFn).y(yScaleFn);\n var foundPoint = voronoiInstance(data).find(coordinate.x, coordinate.y);\n var value = foundPoint.data;\n\n if (!value) {\n return;\n }\n\n onNearestXY(value, {\n innerX: foundPoint[0],\n innerY: foundPoint[1],\n index: foundPoint.index,\n event: event.nativeEvent\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 }], [{\n key: 'getParentConfig',\n\n /**\n * Get a default config for the parent.\n * @returns {Object} Empty config.\n */\n value: function getParentConfig() {\n return {};\n }\n /**\n * Tells the rest of the world that it requires SVG to work.\n * @returns {boolean} Result.\n */\n\n }, {\n key: 'requiresSVG',\n get: function get() {\n return true;\n }\n }]);\n\n return AbstractSeries;\n}(PureComponent);\n\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.\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/es6.array.index-of\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.array.reduce\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.some\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.set\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.array.filter\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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\n return obj;\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\n\nimport React from 'react';\nimport AbstractSeries from '../plot/series/abstract-series';\nimport { DISCRETE_COLOR_RANGE, DEFAULT_OPACITY } from '../theme';\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 */\n\nexport function isSeriesChild(child) {\n var prototype = child.type.prototype;\n return prototype instanceof AbstractSeries;\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 */\n\nexport function getSeriesChildren(children) {\n return React.Children.toArray(children).filter(function (child) {\n return child && isSeriesChild(child);\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 */\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\n if (!result[displayName]) {\n result[displayName] = {\n sameTypeTotal: 0,\n sameTypeIndex: 0,\n clusters: new Set()\n };\n }\n\n result[displayName].clusters.add(cluster);\n result[displayName].sameTypeTotal++;\n });\n return result;\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 */\n\n\nfunction seriesHasAngleRadius() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n if (!data) {\n return false;\n }\n\n return data.some(function (row) {\n return row.radius && row.angle;\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 */\n\n\nfunction prepareData(data) {\n if (!seriesHasAngleRadius(data)) {\n return data;\n }\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 * 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 */\n\n\nexport function getStackedData(children, attr) {\n var areSomeSeriesStacked = children.some(function (series) {\n return series && series.props.stack;\n }); // It stores the last segment position added to each bar, separated by cluster.\n\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\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\n if (!attr || !preppedData || !preppedData.length || areSomeSeriesStacked && !stack) {\n accumulator.push(preppedData);\n return accumulator;\n }\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\n if (!latestAttrPositions[cluster]) {\n latestAttrPositions[cluster] = {};\n }\n\n if (!latestAttrPositions[cluster][seriesType]) {\n latestAttrPositions[cluster][seriesType] = {};\n }\n\n var prevD = latestAttrPositions[cluster][seriesType][d[baseAttr]]; // It is the first segment of a bar.\n\n if (!prevD) {\n var _latestAttrPositions$;\n\n latestAttrPositions[cluster][seriesType][d[baseAttr]] = (_latestAttrPositions$ = {}, _defineProperty(_latestAttrPositions$, attr0, d[attr0]), _defineProperty(_latestAttrPositions$, attr, d[attr]), _latestAttrPositions$);\n return _extends({}, d);\n } // Calculate the position of the next segment in a bar.\n\n\n var nextD = _extends({}, d, (_extends2 = {}, _defineProperty(_extends2, attr0, prevD[attr]), _defineProperty(_extends2, attr, prevD[attr] + d[attr] - (d[attr0] || 0)), _extends2));\n\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 * 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 */\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\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\n if (child.props.cluster) {\n props.cluster = child.props.cluster; // Using Array.from() so we can use .indexOf\n\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\n result.push(props);\n });\n return result;\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 */\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; // 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\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;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n\n this._ = \"\";\n}\n\nfunction path() {\n return new Path();\n}\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; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x1,y1).\n\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon)) ; // 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 } // 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; // If the start tangent is not coincident with (x0,y0), line to.\n\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + +(y01 * x20 > x01 * y20) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function 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; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x0,y0).\n\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\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 } // Is this arc empty? We’re done.\n\n\n if (!r) return; // Does the angle go the wrong way? Flip the direction.\n\n if (da < 0) da = da % tau + tau; // Is this a complete circle? Draw two arcs to complete the circle.\n\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 } // 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\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0,\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} // Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\n\n\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; // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n\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}\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\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(); // Ensure that the outer radius is always larger than the inner radius.\n\n if (r1 < r0) r = r1, r1 = r0, r0 = r; // Is it a point?\n\n if (!(r1 > epsilon)) context.moveTo(0, 0); // 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\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\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; // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n\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\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10); // Apply rounded corners?\n\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; // Restrict the corner radius according to the sector angle.\n\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 } // Is the sector collapsed to a line?\n\n\n if (!(da1 > epsilon)) context.moveTo(x01, y01); // 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); // Have the corners merged?\n\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); // 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 } // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw); // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10); // 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); // Have the corners merged?\n\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); // 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 } // 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\n arc.centroid = function () {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function (_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function (_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function (_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function (_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function (_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function (_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function (_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function (_) {\n return arguments.length ? (context = _ == null ? null : _, arc) : context;\n };\n\n return arc;\n}","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es6.object.define-property\";\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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'];\n\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 * 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 */\n\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}\n\nvar ArcSeries = function (_AbstractSeries) {\n _inherits(ArcSeries, _AbstractSeries);\n\n function ArcSeries(props) {\n _classCallCheck(this, ArcSeries);\n\n var _this = _possibleConstructorReturn(this, (ArcSeries.__proto__ || Object.getPrototypeOf(ArcSeries)).call(this, props));\n\n var scaleProps = _this._getAllScaleProps(props);\n\n _this.state = {\n scaleProps: scaleProps\n };\n return _this;\n }\n\n _createClass(ArcSeries, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n this.setState({\n scaleProps: this._getAllScaleProps(nextProps)\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 }, {\n key: '_getAllScaleProps',\n value: function _getAllScaleProps(props) {\n var defaultScaleProps = this._getDefaultScaleProps(props);\n\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 * 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 }, {\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\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\n if (!data) {\n return null;\n }\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\n var scaleProps = this.state.scaleProps;\n var radiusDomain = scaleProps.radiusDomain; // 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'); // but it does have good color support!\n\n var fill = this._getAttributeFunctor('fill') || this._getAttributeFunctor('color');\n\n var stroke = this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color');\n\n var opacity = this._getAttributeFunctor('opacity');\n\n var x = this._getAttributeFunctor('x');\n\n var y = this._getAttributeFunctor('y');\n\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\n return ArcSeries;\n}(AbstractSeries);\n\nArcSeries.defaultProps = defaultProps;\nArcSeries.displayName = 'ArcSeries';\nexport default ArcSeries;","function Linear(context) {\n this._context = context;\n}\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\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\n case 1:\n this._point = 2;\n // proceed\n\n default:\n this._context.lineTo(x, y);\n\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\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\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\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function (_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function (_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function (_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function (_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function (_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}","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\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\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\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n\n output.lineEnd();\n output.areaEnd();\n }\n }\n\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function (_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function (_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function (_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function (_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function (_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function (_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 = area.lineY0 = function () {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function () {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function () {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function (_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function (_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function (_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}","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/es6.array.sort\";\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\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\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 } // Optionally sort the arcs by previously-computed values or by data.\n\n\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 }); // Compute the arcs! They are stored in the original data's order.\n\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function (_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function (_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function (_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function (_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function (_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function (_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}","import curveLinear from \"./linear.js\";\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\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\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\n l.curve = function (_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\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\n a.curve = function (_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\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\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\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\n link.source = function (_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function (_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function (_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function (_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function (_) {\n return arguments.length ? (context = _ == null ? null : _, link) : context;\n };\n\n return link;\n}\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}\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}\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}\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\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\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\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function (_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function (_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function (_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}","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}\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\n // proceed\n\n case 2:\n this._context.lineTo(this._x1, this._y1);\n\n break;\n }\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\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\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n\n this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6);\n\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\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\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\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\n this._context.closePath();\n\n break;\n }\n\n case 2:\n {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n\n this._context.closePath();\n\n break;\n }\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\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x2 = x, this._y2 = y;\n break;\n\n case 1:\n this._point = 2;\n this._x3 = x, this._y3 = y;\n break;\n\n case 2:\n this._point = 3;\n this._x4 = x, this._y4 = y;\n\n this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6);\n\n break;\n\n default:\n _point(this, x, y);\n\n break;\n }\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\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\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\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n\n case 1:\n this._point = 2;\n break;\n\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\n case 3:\n this._point = 4;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\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\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function lineStart() {\n this._x = [];\n this._y = [];\n\n this._basis.lineStart();\n },\n lineEnd: function lineEnd() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n\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\n this._x = this._y = null;\n\n this._basis.lineEnd();\n },\n point: function point(x, y) {\n this._x.push(+x);\n\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\n bundle.beta = function (beta) {\n return custom(+beta);\n };\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}\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\n break;\n\n case 3:\n _point(this, this._x1, this._y1);\n\n break;\n }\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\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\n case 1:\n this._point = 2;\n this._x1 = x, this._y1 = y;\n break;\n\n case 2:\n this._point = 3;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\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\n cardinal.tension = function (tension) {\n return custom(+tension);\n };\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\n this._context.closePath();\n\n break;\n }\n\n case 2:\n {\n this._context.lineTo(this._x3, this._y3);\n\n this._context.closePath();\n\n break;\n }\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\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x3 = x, this._y3 = y;\n break;\n\n case 1:\n this._point = 2;\n\n this._context.moveTo(this._x4 = x, this._y4 = y);\n\n break;\n\n case 2:\n this._point = 3;\n this._x5 = x, this._y5 = y;\n break;\n\n default:\n _point(this, x, y);\n\n break;\n }\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\n cardinal.tension = function (tension) {\n return custom(+tension);\n };\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\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n\n case 1:\n this._point = 2;\n break;\n\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\n case 3:\n this._point = 4;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\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\n cardinal.tension = function (tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);","import { epsilon } from \"../math.js\";\nimport { Cardinal } from \"./cardinal.js\";\n\nfunction _point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nexport { _point as point };\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\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\n break;\n\n case 3:\n this.point(this._x2, this._y2);\n break;\n }\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\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(alpha) {\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function (alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);","import { CardinalClosed } from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport { point as _point } from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function 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\n this._context.closePath();\n\n break;\n }\n\n case 2:\n {\n this._context.lineTo(this._x3, this._y3);\n\n this._context.closePath();\n\n break;\n }\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\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x3 = x, this._y3 = y;\n break;\n\n case 1:\n this._point = 2;\n\n this._context.moveTo(this._x4 = x, this._y4 = y);\n\n break;\n\n case 2:\n this._point = 3;\n this._x5 = x, this._y5 = y;\n break;\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(alpha) {\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function (alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);","import { CardinalOpen } from \"./cardinalOpen.js\";\nimport { point as _point } from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\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\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n\n case 1:\n this._point = 2;\n break;\n\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\n case 3:\n this._point = 4;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(alpha) {\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function (alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function 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}","import \"core-js/modules/es6.object.create\";\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\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.\n\n\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} // Calculate a one-sided slope.\n\n\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\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\".\n\n\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\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function 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\n break;\n\n case 3:\n _point(this, this._t0, slope2(this, this._t0));\n\n break;\n }\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\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\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n\n _point(this, slope2(this, t1 = slope3(this, x, y)), t1);\n\n break;\n\n default:\n _point(this, this._t0, t1 = slope3(this, x, y));\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n};\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function (x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function 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}\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\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || this._line !== 0 && n === 1) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function point(x, y) {\n this._x.push(+x);\n\n this._y.push(+y);\n }\n}; // See https://www.particleincell.com/2012/bezier-splines/ for derivation.\n\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\n for (i = 1; i < n - 1; ++i) {\n a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n }\n\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n\n for (i = 1; i < n; ++i) {\n m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n }\n\n a[n - 1] = r[n - 1] / b[n - 1];\n\n for (i = n - 2; i >= 0; --i) {\n a[i] = (r[i] - a[i + 1]) / b[i];\n }\n\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n\n for (i = 0; i < n - 1; ++i) {\n b[i] = 2 * x[i + 1] - a[i + 1];\n }\n\n return [a, b];\n}\n\nexport default function (context) {\n return new Natural(context);\n}","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\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\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\n case 1:\n this._point = 2;\n // proceed\n\n default:\n {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n\n this._context.lineTo(x1, this._y);\n\n this._context.lineTo(x1, y);\n }\n\n break;\n }\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\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\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\n while (--n >= 0) {\n o[n] = n;\n }\n\n return o;\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport { slice } from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nexport default function () {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n\n si.key = ki;\n }\n\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function (_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : keys;\n };\n\n stack.value = function (_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function (_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : order;\n };\n\n stack.offset = function (_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}","import none from \"./none.js\";\nexport default function (series, order) {\n if (!((n = series.length) > 0)) return;\n\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) {\n y += series[i][j][1] || 0;\n }\n\n if (y) for (i = 0; i < n; ++i) {\n series[i][j][1] /= y;\n }\n }\n\n none(series, order);\n}","export default function (series, order) {\n if (!((n = series.length) > 0)) return;\n\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\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) {\n y += series[i][j][1] || 0;\n }\n\n s0[j][1] += s0[j][0] = -y / 2;\n }\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\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\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\n s1 += sij0, s2 += s3 * sij0;\n }\n\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}","import \"core-js/modules/es6.array.sort\";\nimport \"core-js/modules/es6.array.map\";\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}\n\nfunction peak(series) {\n var i = -1,\n j = 0,\n n = series.length,\n vi,\n vj = -Infinity;\n\n while (++i < n) {\n if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n }\n\n return j;\n}","import \"core-js/modules/es6.array.sort\";\nimport \"core-js/modules/es6.array.map\";\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\n while (++i < n) {\n if (v = +series[i][1]) s += v;\n }\n\n return s;\n}","import ascending from \"./ascending.js\";\nexport default function (series) {\n return ascending(series).reverse();\n}","import \"core-js/modules/es6.array.map\";\nimport 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\n for (i = 0; i < n; ++i) {\n j = order[i];\n\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}","import none from \"./none.js\";\nexport default function (series) {\n return none(series).reverse();\n}","import \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.number.is-finite\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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';\n\nvar AreaSeries = function (_AbstractSeries) {\n _inherits(AreaSeries, _AbstractSeries);\n\n function AreaSeries() {\n _classCallCheck(this, AreaSeries);\n\n return _possibleConstructorReturn(this, (AreaSeries.__proto__ || Object.getPrototypeOf(AreaSeries)).apply(this, arguments));\n }\n\n _createClass(AreaSeries, [{\n key: '_renderArea',\n value: function _renderArea(data, x, y0, y, curve, getNull) {\n var area = d3Shape.area();\n\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\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\n if (this.props.nullAccessor) {\n warning('nullAccessor has been renamed to getNull', true);\n }\n\n if (!data) {\n return null;\n }\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\n var x = this._getAttributeFunctor('x');\n\n var y = this._getAttributeFunctor('y');\n\n var y0 = this._getAttr0Functor('y');\n\n var stroke = this._getAttributeValue('stroke') || this._getAttributeValue('color');\n\n var fill = this._getAttributeValue('fill') || this._getAttributeValue('color');\n\n var newOpacity = this._getAttributeValue('opacity');\n\n var opacity = Number.isFinite(newOpacity) ? newOpacity : DEFAULT_OPACITY;\n var getNull = this.props.nullAccessor || this.props.getNull;\n\n var d = this._renderArea(data, x, y0, y, curve, getNull);\n\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\n return AreaSeries;\n}(AbstractSeries);\n\nAreaSeries.displayName = 'AreaSeries';\nAreaSeries.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n getNull: function getNull() {\n return true;\n }\n});\nexport default AreaSeries;","import \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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\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};\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}\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;","import \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\n\nimport React from 'react';\n\nvar ChartLabel = function (_React$PureComponent) {\n _inherits(ChartLabel, _React$PureComponent);\n\n function ChartLabel() {\n _classCallCheck(this, ChartLabel);\n\n return _possibleConstructorReturn(this, (ChartLabel.__proto__ || Object.getPrototypeOf(ChartLabel)).apply(this, arguments));\n }\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\n return ChartLabel;\n}(React.PureComponent);\n\nChartLabel.displayName = 'ChartLabel';\nChartLabel.defaultProps = {\n className: '',\n includeMargin: true,\n text: '',\n xPercent: 0,\n yPercent: 0,\n style: {}\n};\nexport default ChartLabel;","import \"core-js/modules/es6.array.map\";\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 { 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 * 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 */\n\nexport function getTicksTotalFromSize(size) {\n if (size < 700) {\n if (size > 300) {\n return 10;\n }\n\n return 5;\n }\n\n return 20;\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 */\n\nexport function getTickValues(scale, tickTotal, tickValues) {\n return !tickValues ? scale.ticks ? scale.ticks(tickTotal) : scale.domain() : tickValues;\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 */\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\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 * 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 */\n\nexport function generatePoints(_ref) {\n var axisStart = _ref.axisStart,\n axisEnd = _ref.axisEnd,\n numberOfTicks = _ref.numberOfTicks,\n axisDomain = _ref.axisDomain;\n\n var _generateFit = generateFit(axisStart, axisEnd),\n left = _generateFit.left,\n right = _generateFit.right,\n slope = _generateFit.slope,\n offset = _generateFit.offset; // construct a linear band of points, then map them\n\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\n return {\n x: val,\n y: slope * val + offset,\n text: axisScale(val)\n };\n }).slice(0, numberOfTicks + 1)\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 */\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\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/es6.array.reduce\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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'];\n\nvar CircularGridLines = function (_PureComponent) {\n _inherits(CircularGridLines, _PureComponent);\n\n function CircularGridLines() {\n _classCallCheck(this, CircularGridLines);\n\n return _possibleConstructorReturn(this, (CircularGridLines.__proto__ || Object.getPrototypeOf(CircularGridLines)).apply(this, arguments));\n }\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\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\n var props = _extends({}, this._getDefaultProps(), this.props);\n\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\n if (rRange && (radius < rRange[0] || radius > rRange[1])) {\n return res;\n }\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\n return CircularGridLines;\n}(PureComponent);\n\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\n while (++i < n) {\n if (c = ringContains(ring, hole[i])) return c;\n }\n\n return 0;\n}\n\nfunction ringContains(ring, point) {\n var x = point[0],\n y = point[1],\n contains = -1;\n\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\n return contains;\n}\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}\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}\n\nfunction within(p, q, r) {\n return p <= q && q <= r || r <= q && q <= p;\n}","export default function () {}","import \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.sort\";\nimport \"core-js/modules/es6.array.is-array\";\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\n function contours(values) {\n var tz = threshold(values); // Convert number of thresholds into uniform thresholds.\n\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\n return tz.map(function (value) {\n return contour(values, value);\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\n\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 } // Marching squares with isolines stitched into rings.\n // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js\n\n\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; // Special case for the first row (y = -1, t2 = t3 = 0).\n\n x = y = -1;\n t1 = values[0] >= value;\n cases[t1 << 1].forEach(stitch);\n\n while (++x < dx - 1) {\n t0 = t1, t1 = values[x + 1] >= value;\n cases[t0 | t1 << 1].forEach(stitch);\n }\n\n cases[t1 << 0].forEach(stitch); // General case for the intermediate rows.\n\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\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\n cases[t1 | t2 << 3].forEach(stitch);\n } // Special case for the last row (y = dy - 1, t0 = t1 = 0).\n\n\n x = -1;\n t2 = values[y * dx] >= value;\n cases[t2 << 2].forEach(stitch);\n\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\n cases[t2 << 3].forEach(stitch);\n\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\n if (f = fragmentByEnd[startIndex]) {\n if (g = fragmentByStart[endIndex]) {\n delete fragmentByEnd[f.end];\n delete fragmentByStart[g.start];\n\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\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\n function index(point) {\n return point[0] * 2 + point[1] * (dx + 1) * 4;\n }\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\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\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\n contours.contour = contour;\n\n contours.size = function (_) {\n if (!arguments.length) return [dx, dy];\n\n var _0 = Math.ceil(_[0]),\n _1 = Math.ceil(_[1]);\n\n if (!(_0 > 0) || !(_1 > 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, contours;\n };\n\n contours.thresholds = function (_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), contours) : threshold;\n };\n\n contours.smooth = function (_) {\n return arguments.length ? (smooth = _ ? smoothLinear : noop, contours) : smooth === smoothLinear;\n };\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\n while (++i < n) {\n area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];\n }\n\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\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\n if (i >= r) {\n if (i >= w) {\n sr -= source.data[i - w + j * n];\n }\n\n target.data[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w);\n }\n }\n }\n} // TODO Optimize edge cases.\n// TODO Optimize index calculation.\n// TODO Optimize arguments.\n\nexport function blurY(source, target, r) {\n var n = source.width,\n m = source.height,\n w = (r << 1) + 1;\n\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\n if (j >= r) {\n if (j >= w) {\n sr -= source.data[i + (j - w) * n];\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/es6.array.map\";\nimport \"core-js/modules/es6.array.is-array\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.typed.float32-array\";\nimport { max, range, tickStep } from \"d3-array\";\nimport { slice } from \"./array\";\nimport { blurX, blurY } from \"./blur\";\nimport constant from \"./constant\";\nimport contours from \"./contours\";\n\nfunction defaultX(d) {\n return d[0];\n}\n\nfunction defaultY(d) {\n return d[1];\n}\n\nfunction defaultWeight() {\n return 1;\n}\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\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\n if (xi >= 0 && xi < n && yi >= 0 && yi < m) {\n values0[xi + yi * n] += wi;\n }\n }); // TODO Optimize.\n\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); // Convert number of thresholds into uniform thresholds.\n\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\n return contours().thresholds(tz).size([n, m])(values0).map(transform);\n }\n\n function transform(geometry) {\n geometry.value *= Math.pow(2, -2 * k); // Density in points per square pixel.\n\n geometry.coordinates.forEach(transformPolygon);\n return geometry;\n }\n\n function transformPolygon(coordinates) {\n coordinates.forEach(transformRing);\n }\n\n function transformRing(coordinates) {\n coordinates.forEach(transformPoint);\n } // TODO Optimize.\n\n\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\n function resize() {\n o = r * 3;\n n = dx + o * 2 >> k;\n m = dy + o * 2 >> k;\n return density;\n }\n\n density.x = function (_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), density) : x;\n };\n\n density.y = function (_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), density) : y;\n };\n\n density.weight = function (_) {\n return arguments.length ? (weight = typeof _ === \"function\" ? _ : constant(+_), density) : weight;\n };\n\n density.size = function (_) {\n if (!arguments.length) return [dx, dy];\n\n var _0 = Math.ceil(_[0]),\n _1 = Math.ceil(_[1]);\n\n if (!(_0 >= 0) && !(_0 >= 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, resize();\n };\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\n density.thresholds = function (_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), density) : threshold;\n };\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\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}\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\n while (++i < n) {\n streamGeometry(features[i].geometry, stream);\n }\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\n while (++i < n) {\n object = coordinates[i], stream.point(object[0], object[1], object[2]);\n }\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\n while (++i < n) {\n streamLine(coordinates[i], stream, 0);\n }\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\n while (++i < n) {\n streamPolygon(coordinates[i], stream);\n }\n },\n GeometryCollection: function GeometryCollection(object, stream) {\n var geometries = object.geometries,\n i = -1,\n n = geometries.length;\n\n while (++i < n) {\n streamGeometry(geometries[i], stream);\n }\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1,\n n = coordinates.length - closed,\n coordinate;\n stream.lineStart();\n\n while (++i < n) {\n coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n }\n\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1,\n n = coordinates.length;\n stream.polygonStart();\n\n while (++i < n) {\n streamLine(coordinates[i], stream, 1);\n }\n\n stream.polygonEnd();\n}\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/\nexport default function () {\n return new Adder();\n}\n\nfunction Adder() {\n this.reset();\n}\n\nAdder.prototype = {\n constructor: Adder,\n reset: function reset() {\n this.s = // rounded value\n this.t = 0; // exact error\n },\n add: function add(y) {\n _add(temp, y, this.t);\n\n _add(this, temp.s, this.s);\n\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();\n\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}","import \"core-js/modules/es6.math.sign\";\nexport 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};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaPointFirst(x, y) {\n areaStream.point = areaPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction areaPoint(x, y) {\n areaRingSum.add(y0 * x - x0 * y);\n x0 = x, y0 = y;\n}\n\nfunction areaRingEnd() {\n areaPoint(x00, y00);\n}\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};\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}\n\nexport default boundsStream;","import { sqrt } from \"../math.js\"; // 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};\n\nfunction centroidPoint(x, y) {\n X0 += x;\n Y0 += y;\n ++Z0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidPointFirstLine;\n}\n\nfunction centroidPointFirstLine(x, y) {\n centroidStream.point = centroidPointLine;\n centroidPoint(x0 = x, y0 = y);\n}\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}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingStart() {\n centroidStream.point = centroidPointFirstRing;\n}\n\nfunction centroidRingEnd() {\n centroidPointRing(x00, y00);\n}\n\nfunction centroidPointFirstRing(x, y) {\n centroidStream.point = centroidPointRing;\n centroidPoint(x00 = x0 = x, y00 = y0 = y);\n}\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}\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\n this._point = 1;\n break;\n }\n\n case 1:\n {\n this._context.lineTo(x, y);\n\n break;\n }\n\n default:\n {\n this._context.moveTo(x + this._radius, y);\n\n this._context.arc(x, y, this._radius, 0, tau);\n\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};\n\nfunction lengthPointFirst(x, y) {\n lengthStream.point = lengthPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction lengthPoint(x, y) {\n x0 -= x, y0 -= y;\n lengthSum.add(sqrt(x0 * x0 + y0 * y0));\n x0 = x, y0 = y;\n}\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\n this._point = 1;\n break;\n }\n\n case 1:\n {\n this._string.push(\"L\", x, \",\", y);\n\n break;\n }\n\n default:\n {\n if (this._circle == null) this._circle = circle(this._radius);\n\n this._string.push(\"M\", x, \",\", y, this._circle);\n\n break;\n }\n }\n },\n result: function result() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n\n this._string = [];\n return result;\n } else {\n return null;\n }\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\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\n return contextStream.result();\n }\n\n path.area = function (object) {\n stream(object, projectionStream(pathArea));\n return pathArea.result();\n };\n\n path.measure = function (object) {\n stream(object, projectionStream(pathMeasure));\n return pathMeasure.result();\n };\n\n path.bounds = function (object) {\n stream(object, projectionStream(pathBounds));\n return pathBounds.result();\n };\n\n path.centroid = function (object) {\n stream(object, projectionStream(pathCentroid));\n return pathCentroid.result();\n };\n\n path.projection = function (_) {\n return arguments.length ? (projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream, path) : projection;\n };\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\n path.pointRadius = function (_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n\n return path.projection(projection).context(context);\n}","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.reduce\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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';\n\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}\n\nvar ContourSeries = function (_AbstractSeries) {\n _inherits(ContourSeries, _AbstractSeries);\n\n function ContourSeries() {\n _classCallCheck(this, ContourSeries);\n\n return _possibleConstructorReturn(this, (ContourSeries.__proto__ || Object.getPrototypeOf(ContourSeries)).apply(this, arguments));\n }\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\n if (!data || !innerWidth || !innerHeight) {\n return null;\n }\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\n var x = this._getAttributeFunctor('x');\n\n var y = this._getAttributeFunctor('y');\n\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\n var _getDomain = getDomain(contouredData),\n min = _getDomain.min,\n max = _getDomain.max;\n\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\n return ContourSeries;\n}(AbstractSeries);\n\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\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\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\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\n return max;\n}","import \"core-js/modules/es6.array.filter\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.array.find\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { transformValueToString } from '../utils/data-utils';\nimport { getAttributeFunctor } from '../utils/scales-utils';\n/**\n * Format title by detault.\n * @param {Array} values List of values.\n * @returns {*} Formatted value or undefined.\n */\n\nfunction defaultTitleFormat(values) {\n var value = getFirstNonEmptyValue(values);\n\n if (value) {\n return {\n title: 'x',\n value: transformValueToString(value.x)\n };\n }\n}\n/**\n * Format items by default.\n * @param {Array} values Array of values.\n * @returns {*} Formatted list of items.\n */\n\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 * 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 */\n\n\nfunction getFirstNonEmptyValue(values) {\n return (values || []).find(function (v) {\n return Boolean(v);\n });\n}\n\nvar Crosshair = function (_PureComponent) {\n _inherits(Crosshair, _PureComponent);\n\n function Crosshair() {\n _classCallCheck(this, Crosshair);\n\n return _possibleConstructorReturn(this, (Crosshair.__proto__ || Object.getPrototypeOf(Crosshair)).apply(this, arguments));\n }\n\n _createClass(Crosshair, [{\n key: '_renderCrosshairItems',\n\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\n if (!items) {\n return null;\n }\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 * Render crosshair title.\n * @returns {*} Container with the crosshair title.\n * @private\n */\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\n if (!titleItem) {\n return null;\n }\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\n if (!value) {\n return null;\n }\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\n return Crosshair;\n}(PureComponent);\n\nCrosshair.displayName = 'Crosshair';\nexport default Crosshair;","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.array.is-array\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es6.object.define-property\";\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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\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\n return arr2;\n } else {\n return Array.from(arr);\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\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};\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\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\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; // ratio of inner polygon to outer polgyon\n\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\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\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}\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\n var aggStyle = _extends({}, style, customComponent.style || {});\n\n var innerComponent = customComponent.customComponent;\n\n if (!innerComponent && typeof defaultType === 'string') {\n return predefinedComponents(defaultType, size || propsSize, aggStyle);\n } // if default component is a function\n\n\n if (!innerComponent) {\n return defaultType(customComponent, positionInPixels, aggStyle);\n }\n\n if (typeof innerComponent === 'string') {\n return predefinedComponents(innerComponent || defaultType, size, aggStyle);\n } // if inner component is a function\n\n\n return innerComponent(customComponent, positionInPixels, aggStyle);\n}\n\nvar CustomSVGSeries = function (_AbstractSeries) {\n _inherits(CustomSVGSeries, _AbstractSeries);\n\n function CustomSVGSeries() {\n _classCallCheck(this, CustomSVGSeries);\n\n return _possibleConstructorReturn(this, (CustomSVGSeries.__proto__ || Object.getPrototypeOf(CustomSVGSeries)).apply(this, arguments));\n }\n\n _createClass(CustomSVGSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\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\n if (!data || !innerWidth || !innerHeight) {\n return null;\n }\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\n var x = this._getAttributeFunctor('x');\n\n var y = this._getAttributeFunctor('y');\n\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\n return CustomSVGSeries;\n}(AbstractSeries);\n\nCustomSVGSeries.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n animation: false,\n customComponent: 'circle',\n style: {},\n size: 2\n});\nexport default CustomSVGSeries;","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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\n\nimport React from 'react';\nimport { generatePoints, getAxisAngle } from '../../utils/axis-utils';\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 */\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\n var _generatePoints = generatePoints({\n axisStart: axisStart,\n axisEnd: axisEnd,\n numberOfTicks: numberOfTicks,\n axisDomain: axisDomain\n }),\n points = _generatePoints.points; // add a quarter rotation to make ticks orthogonal to axis\n\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\n var textProps = _extends({\n x: tickSize * Math.cos(tickAngle),\n y: tickSize * Math.sin(tickAngle),\n textAnchor: 'start'\n }, style.text);\n\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}","import \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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'];\n\nvar DecorativeAxis = function (_AbstractSeries) {\n _inherits(DecorativeAxis, _AbstractSeries);\n\n function DecorativeAxis() {\n _classCallCheck(this, DecorativeAxis);\n\n return _possibleConstructorReturn(this, (DecorativeAxis.__proto__ || Object.getPrototypeOf(DecorativeAxis)).apply(this, arguments));\n }\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\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\n var x = this._getAttributeFunctor('x');\n\n var y = this._getAttributeFunctor('y');\n\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\n return DecorativeAxis;\n}(AbstractSeries);\n\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.\nimport React from 'react';\nvar predefinedClassName = 'rv-gradient-defs';\n\nfunction GradientDefs(props) {\n var className = props.className;\n return React.createElement('defs', {\n className: predefinedClassName + ' ' + className\n }, props.children);\n}\n\nGradientDefs.displayName = 'GradientDefs';\nGradientDefs.requiresSVG = true;\nGradientDefs.defaultProps = {\n className: ''\n};\nexport default GradientDefs;","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\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\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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'];\n\nvar GridLines = function (_PureComponent) {\n _inherits(GridLines, _PureComponent);\n\n function GridLines() {\n _classCallCheck(this, GridLines);\n\n return _possibleConstructorReturn(this, (GridLines.__proto__ || Object.getPrototypeOf(GridLines)).apply(this, arguments));\n }\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\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\n var props = _extends({}, this._getDefaultProps(), this.props);\n\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\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\n return GridLines;\n}(PureComponent);\n\nGridLines.displayName = 'GridLines';\nGridLines.defaultProps = defaultProps;\nGridLines.requiresSVG = true;\nexport default GridLines;","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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';\n\nvar HeatmapSeries = function (_AbstractSeries) {\n _inherits(HeatmapSeries, _AbstractSeries);\n\n function HeatmapSeries() {\n _classCallCheck(this, HeatmapSeries);\n\n return _possibleConstructorReturn(this, (HeatmapSeries.__proto__ || Object.getPrototypeOf(HeatmapSeries)).apply(this, arguments));\n }\n\n _createClass(HeatmapSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\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\n if (!data) {\n return null;\n }\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\n var _rectStyle$style = _extends({\n rectStyle: {}\n }, style),\n rectStyle = _rectStyle$style.rectStyle;\n\n var x = this._getAttributeFunctor('x');\n\n var y = this._getAttributeFunctor('y');\n\n var opacity = this._getAttributeFunctor('opacity');\n\n var fill = this._getAttributeFunctor('fill') || this._getAttributeFunctor('color');\n\n var stroke = this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color');\n\n var xDistance = this._getScaleDistance('x');\n\n var yDistance = this._getScaleDistance('y');\n\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\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\n return HeatmapSeries;\n}(AbstractSeries);\n\nHeatmapSeries.displayName = 'HeatmapSeries';\nexport default HeatmapSeries;","import \"core-js/modules/es6.array.map\";\nvar thirdPi = Math.PI / 3,\n angles = [0, thirdPi, 2 * thirdPi, 3 * thirdPi, 4 * thirdPi, 5 * thirdPi];\n\nfunction pointX(d) {\n return d[0];\n}\n\nfunction pointY(d) {\n return d[1];\n}\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\n function hexbin(points) {\n var binsById = {},\n bins = [],\n i,\n n = points.length;\n\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\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\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\n return bins;\n }\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\n hexbin.hexagon = function (radius) {\n return \"m\" + hexagon(radius == null ? r : +radius).join(\"l\") + \"z\";\n };\n\n hexbin.centers = function () {\n var centers = [],\n j = Math.round(y0 / dy),\n i = Math.round(x0 / dx);\n\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\n return centers;\n };\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\n hexbin.x = function (_) {\n return arguments.length ? (x = _, hexbin) : x;\n };\n\n hexbin.y = function (_) {\n return arguments.length ? (y = _, hexbin) : y;\n };\n\n hexbin.radius = function (_) {\n return arguments.length ? (r = +_, dx = r * 2 * Math.sin(thirdPi), dy = r * 1.5, hexbin) : r;\n };\n\n hexbin.size = function (_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], hexbin) : [x1 - x0, y1 - y0];\n };\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\n return hexbin.radius(1);\n}","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.array.is-array\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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\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\n return arr2;\n } else {\n return Array.from(arr);\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\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';\n\nfunction getColorDomain(_ref, hexes) {\n var countDomain = _ref.countDomain;\n\n if (countDomain) {\n return countDomain;\n }\n\n return [0, Math.max.apply(Math, _toConsumableArray(hexes.map(function (row) {\n return row.length;\n })))];\n}\n\nvar HexbinSeries = function (_AbstractSeries) {\n _inherits(HexbinSeries, _AbstractSeries);\n\n function HexbinSeries() {\n _classCallCheck(this, HexbinSeries);\n\n return _possibleConstructorReturn(this, (HexbinSeries.__proto__ || Object.getPrototypeOf(HexbinSeries)).apply(this, arguments));\n }\n\n _createClass(HexbinSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\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\n if (!data) {\n return null;\n }\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\n var x = this._getAttributeFunctor('x');\n\n var y = this._getAttributeFunctor('y');\n\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\n return HexbinSeries;\n}(AbstractSeries);\n\nHexbinSeries.defaultProps = {\n radius: 20,\n colorRange: CONTINUOUS_COLOR_RANGE,\n xOffset: 0,\n yOffset: 0\n};\nHexbinSeries.displayName = 'HexbinSeries';\nexport default HexbinSeries;","import \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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\nimport React from 'react';\nimport AbstractSeries from './series/abstract-series';\nimport { getAttributeScale } from '../utils/scales-utils';\n\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}\n\nvar Highlight = function (_AbstractSeries) {\n _inherits(Highlight, _AbstractSeries);\n\n function Highlight() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Highlight);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = 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\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\n if (enableX && enableY) {\n return clickedOutsideDragX || clickedOutsideDragY;\n }\n\n if (enableX) {\n return clickedOutsideDragX;\n }\n\n if (enableY) {\n return clickedOutsideDragY;\n }\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'); // 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\n if (enableY) {\n return {\n bottom: yScale.invert(brushArea.bottom - marginTop),\n top: yScale.invert(brushArea.top - marginTop)\n };\n }\n\n if (enableX) {\n return {\n left: xScale.invert(brushArea.left - marginLeft),\n right: xScale.invert(brushArea.right - marginLeft)\n };\n }\n\n return {};\n }\n }, {\n key: 'startBrushing',\n value: function startBrushing(e) {\n var _this2 = this;\n\n var _props5 = this.props,\n onBrushStart = _props5.onBrushStart,\n onDragStart = _props5.onDragStart,\n drag = _props5.drag;\n var dragArea = this.state.dragArea;\n\n var _getLocs = getLocs(e.nativeEvent),\n xLoc = _getLocs.xLoc,\n yLoc = _getLocs.yLoc;\n\n var startArea = function startArea(dragging, resetDrag) {\n var emptyBrush = {\n bottom: yLoc,\n left: xLoc,\n right: xLoc,\n top: yLoc\n };\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\n var clickedOutsideDrag = this._clickedOutsideDrag(xLoc, yLoc);\n\n if (drag && !dragArea || !drag || clickedOutsideDrag) {\n startArea(false, clickedOutsideDrag);\n\n if (onBrushStart) {\n onBrushStart(e);\n }\n\n return;\n }\n\n if (drag && dragArea) {\n startArea(true, clickedOutsideDrag);\n\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; // Quickly short-circuit if the user isn't brushing in our component\n\n if (!brushing && !dragging) {\n return;\n }\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; // Invoke the callback with null if the selected area was < 5px\n\n var isNulled = noVertical || noHorizontal; // Clear the draw area\n\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\n if (brushing && onBrushEnd) {\n onBrushEnd(!isNulled ? this._convertAreaToCoordinates(brushArea) : null);\n }\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\n var _getLocs2 = getLocs(e.nativeEvent),\n xLoc = _getLocs2.xLoc,\n yLoc = _getLocs2.yLoc;\n\n if (brushing) {\n var brushArea = this._getDrawArea(xLoc, yLoc);\n\n this.setState({\n brushArea: brushArea\n });\n\n if (onBrush) {\n onBrush(this._convertAreaToCoordinates(brushArea));\n }\n }\n\n if (drag && dragging) {\n var _brushArea = this._getDragArea(xLoc, yLoc);\n\n this.setState({\n brushArea: _brushArea\n });\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\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\n if (highlightX) {\n var xScale = getAttributeScale(this.props, 'x');\n leftPos = xScale(highlightX);\n }\n\n var topPos = 0;\n\n if (highlightY) {\n var yScale = getAttributeScale(this.props, 'y');\n topPos = yScale(highlightY);\n }\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 } // preventDefault() so that mouse event emulation does not happen\n ,\n onTouchEnd: function onTouchEnd(e) {\n e.preventDefault();\n\n _this3.stopBrushing(e);\n },\n onTouchCancel: function onTouchCancel(e) {\n e.preventDefault();\n\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\n return Highlight;\n}(AbstractSeries);\n\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;","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { transformValueToString } from '../utils/data-utils';\nimport { getAttributeFunctor } from '../utils/scales-utils';\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 */\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 * For backwards support, retain the ORIENTATION prop constants\n */\n\nvar ORIENTATION = {\n BOTTOM_LEFT: 'bottomleft',\n BOTTOM_RIGHT: 'bottomright',\n TOP_LEFT: 'topleft',\n TOP_RIGHT: 'topright'\n};\n/**\n * Default format function for the value.\n * @param {Object} value Value.\n * @returns {Array} title-value pairs.\n */\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}\n\nvar Hint = function (_PureComponent) {\n _inherits(Hint, _PureComponent);\n\n function Hint() {\n _classCallCheck(this, Hint);\n\n return _possibleConstructorReturn(this, (Hint.__proto__ || Object.getPrototypeOf(Hint)).apply(this, arguments));\n }\n\n _createClass(Hint, [{\n key: '_getAlign',\n\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\n if (horizontal === ALIGN.AUTO) {\n align.horizontal = x > innerWidth / 2 ? ALIGN.LEFT : ALIGN.RIGHT;\n }\n\n if (vertical === ALIGN.AUTO) {\n align.vertical = y > innerHeight / 2 ? ALIGN.TOP : ALIGN.BOTTOM;\n }\n\n return align;\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 }, {\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 * 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 }, {\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 * 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 }, {\n key: '_getCSSBottom',\n value: function _getCSSBottom(y) {\n if (y === undefined || y === null) {\n return {\n bottom: 0\n };\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 * 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 }, {\n key: '_getCSSLeft',\n value: function _getCSSLeft(x) {\n if (x === undefined || x === null) {\n return {\n left: 0\n };\n }\n\n var marginLeft = this.props.marginLeft;\n return {\n left: marginLeft + x\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 }, {\n key: '_getCSSRight',\n value: function _getCSSRight(x) {\n if (x === undefined || x === null) {\n return {\n right: 0\n };\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 * 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 }, {\n key: '_getCSSTop',\n value: function _getCSSTop(y) {\n if (y === undefined || y === null) {\n return {\n top: 0\n };\n }\n\n var marginTop = this.props.marginTop;\n return {\n top: marginTop + y\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 }, {\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\n var align = this._getAlign(x, y);\n\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\n case ALIGN.RIGHT_EDGE:\n // this pins x to left edge\n return this._getCSSRight(null);\n\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\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\n case ALIGN.BOTTOM_EDGE:\n // this pins x to bottom edge\n return this._getCSSBottom(null);\n\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\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\n case ORIENTATION.BOTTOM_RIGHT:\n return {\n horizontal: ALIGN.RIGHT,\n vertical: ALIGN.BOTTOM\n };\n\n case ORIENTATION.TOP_LEFT:\n return {\n horizontal: ALIGN.LEFT,\n vertical: ALIGN.TOP\n };\n\n case ORIENTATION.TOP_RIGHT:\n return {\n horizontal: ALIGN.RIGHT,\n vertical: ALIGN.TOP\n };\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\n var _getPositionInfo2 = this._getPositionInfo(),\n position = _getPositionInfo2.position,\n positionClassName = _getPositionInfo2.positionClassName;\n\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\n return Hint;\n}(PureComponent);\n\nHint.displayName = 'Hint';\nHint.ORIENTATION = ORIENTATION;\nHint.ALIGN = ALIGN;\nexport default Hint;","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\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\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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';\n\nvar BarSeries = function (_AbstractSeries) {\n _inherits(BarSeries, _AbstractSeries);\n\n function BarSeries() {\n _classCallCheck(this, BarSeries);\n\n return _possibleConstructorReturn(this, (BarSeries.__proto__ || Object.getPrototypeOf(BarSeries)).apply(this, arguments));\n }\n\n _createClass(BarSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\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\n if (!data) {\n return null;\n }\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\n var _getStackParams = getStackParams(this.props),\n sameTypeTotal = _getStackParams.sameTypeTotal,\n sameTypeIndex = _getStackParams.sameTypeIndex;\n\n var distance = this._getScaleDistance(linePosAttr);\n\n var lineFunctor = this._getAttributeFunctor(linePosAttr);\n\n var valueFunctor = this._getAttributeFunctor(valuePosAttr);\n\n var value0Functor = this._getAttr0Functor(valuePosAttr);\n\n var fillFunctor = this._getAttributeFunctor('fill') || this._getAttributeFunctor('color');\n\n var strokeFunctor = this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color');\n\n var opacityFunctor = this._getAttributeFunctor('opacity');\n\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; // totalSpaceAvailable is the space we have available to draw all the\n // bars of a same 'linePosAttr' value (a.k.a. sameTypeTotal)\n\n\n var totalSpaceAvailable = halfSpace * 2;\n var totalSpaceCenter = lineFunctor(d); // totalSpaceStartingPoint is the first pixel were we can start drawing\n\n var totalSpaceStartingPoint = totalSpaceCenter - halfSpace; // spaceTakenByInterBarsPixels has the overhead space consumed by each bar of sameTypeTotal\n\n var spaceTakenByInterBarsPixels = (sameTypeTotal - 1) / sameTypeTotal; // spacePerBar is the space we have available to draw sameTypeIndex bar\n\n var spacePerBar = totalSpaceAvailable / sameTypeTotal - spaceTakenByInterBarsPixels; // barStartingPoint is the first pixel were we can start drawing sameTypeIndex bar\n\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\n return BarSeries;\n}(AbstractSeries);\n\nBarSeries.displayName = 'BarSeries';\nexport default BarSeries;","import \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\nimport React from 'react';\nimport AbstractSeries from './abstract-series';\nimport BarSeries from './bar-series';\n\nvar HorizontalBarSeries = function (_AbstractSeries) {\n _inherits(HorizontalBarSeries, _AbstractSeries);\n\n function HorizontalBarSeries() {\n _classCallCheck(this, HorizontalBarSeries);\n\n return _possibleConstructorReturn(this, (HorizontalBarSeries.__proto__ || Object.getPrototypeOf(HorizontalBarSeries)).apply(this, arguments));\n }\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\n return HorizontalBarSeries;\n}(AbstractSeries);\n\nHorizontalBarSeries.displayName = 'HorizontalBarSeries';\nexport default HorizontalBarSeries;","import \"core-js/modules/es6.array.fill\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\n\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';\n\nfunction getScaleDistance(props, attr) {\n var scaleObject = getScaleObjectFromProps(props, attr);\n return scaleObject ? scaleObject.distance : 0;\n}\n\nvar BarSeriesCanvas = function (_AbstractSeries) {\n _inherits(BarSeriesCanvas, _AbstractSeries);\n\n function BarSeriesCanvas() {\n _classCallCheck(this, BarSeriesCanvas);\n\n return _possibleConstructorReturn(this, (BarSeriesCanvas.__proto__ || Object.getPrototypeOf(BarSeriesCanvas)).apply(this, arguments));\n }\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\n if (!data || data.length === 0) {\n return;\n }\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; // totalSpaceAvailable is the space we have available to draw all the\n // bars of a same 'linePosAttr' value (a.k.a. sameTypeTotal)\n\n var totalSpaceAvailable = halfSpace * 2;\n\n var _getStackParams = getStackParams(props),\n sameTypeTotal = _getStackParams.sameTypeTotal,\n sameTypeIndex = _getStackParams.sameTypeIndex;\n\n data.forEach(function (row) {\n var totalSpaceCenter = line(row); // totalSpaceStartingPoint is the first pixel were we can start drawing\n\n var totalSpaceStartingPoint = totalSpaceCenter - halfSpace; // spaceTakenByInterBarsPixels has the overhead space consumed by each bar of sameTypeTotal\n\n var spaceTakenByInterBarsPixels = (sameTypeTotal - 1) / sameTypeTotal; // lineSize is the space we have available to draw sameTypeIndex bar\n\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; // linePos is the first pixel were we can start drawing sameTypeIndex bar\n\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\n return BarSeriesCanvas;\n}(AbstractSeries);\n\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;","import \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\n\nimport AbstractSeries from './abstract-series';\nimport BarSeries from './bar-series-canvas';\n\nvar HorizontalBarSeriesCanvas = function (_AbstractSeries) {\n _inherits(HorizontalBarSeriesCanvas, _AbstractSeries);\n\n function HorizontalBarSeriesCanvas() {\n _classCallCheck(this, HorizontalBarSeriesCanvas);\n\n return _possibleConstructorReturn(this, (HorizontalBarSeriesCanvas.__proto__ || Object.getPrototypeOf(HorizontalBarSeriesCanvas)).apply(this, arguments));\n }\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\n return HorizontalBarSeriesCanvas;\n}(AbstractSeries);\n\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.\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};\n\nfunction HorizontalGridLines(props) {\n return React.createElement(GridLines, props);\n}\n\nHorizontalGridLines.displayName = 'HorizontalGridLines';\nHorizontalGridLines.defaultProps = defaultProps;\nHorizontalGridLines.requiresSVG = true;\nexport default HorizontalGridLines;","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\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\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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';\n\nvar RectSeries = function (_AbstractSeries) {\n _inherits(RectSeries, _AbstractSeries);\n\n function RectSeries() {\n _classCallCheck(this, RectSeries);\n\n return _possibleConstructorReturn(this, (RectSeries.__proto__ || Object.getPrototypeOf(RectSeries)).apply(this, arguments));\n }\n\n _createClass(RectSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\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\n if (!data) {\n return null;\n }\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\n var lineFunctor = this._getAttributeFunctor(linePosAttr);\n\n var line0Functor = this._getAttr0Functor(linePosAttr);\n\n var valueFunctor = this._getAttributeFunctor(valuePosAttr);\n\n var value0Functor = this._getAttr0Functor(valuePosAttr);\n\n var fillFunctor = this._getAttributeFunctor('fill') || this._getAttributeFunctor('color');\n\n var strokeFunctor = this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color');\n\n var opacityFunctor = this._getAttributeFunctor('opacity');\n\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 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\n return RectSeries;\n}(AbstractSeries);\n\nRectSeries.displayName = 'RectSeries';\nexport default RectSeries;","import \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\nimport React from 'react';\nimport AbstractSeries from './abstract-series';\nimport RectSeries from './rect-series';\n\nvar HorizontalRectSeries = function (_AbstractSeries) {\n _inherits(HorizontalRectSeries, _AbstractSeries);\n\n function HorizontalRectSeries() {\n _classCallCheck(this, HorizontalRectSeries);\n\n return _possibleConstructorReturn(this, (HorizontalRectSeries.__proto__ || Object.getPrototypeOf(HorizontalRectSeries)).apply(this, arguments));\n }\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\n return HorizontalRectSeries;\n}(AbstractSeries);\n\nHorizontalRectSeries.displayName = 'HorizontalRectSeries';\nexport default HorizontalRectSeries;","import \"core-js/modules/es6.array.fill\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\n\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';\n\nvar RectSeriesCanvas = function (_AbstractSeries) {\n _inherits(RectSeriesCanvas, _AbstractSeries);\n\n function RectSeriesCanvas() {\n _classCallCheck(this, RectSeriesCanvas);\n\n return _possibleConstructorReturn(this, (RectSeriesCanvas.__proto__ || Object.getPrototypeOf(RectSeriesCanvas)).apply(this, arguments));\n }\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\n if (!data || data.length === 0) {\n return;\n }\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\n return RectSeriesCanvas;\n}(AbstractSeries);\n\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;","import \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\n\nimport AbstractSeries from './abstract-series';\nimport RectSeries from './rect-series-canvas';\n\nvar HorizontalRectSeriesCanvas = function (_AbstractSeries) {\n _inherits(HorizontalRectSeriesCanvas, _AbstractSeries);\n\n function HorizontalRectSeriesCanvas() {\n _classCallCheck(this, HorizontalRectSeriesCanvas);\n\n return _possibleConstructorReturn(this, (HorizontalRectSeriesCanvas.__proto__ || Object.getPrototypeOf(HorizontalRectSeriesCanvas)).apply(this, arguments));\n }\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\n return HorizontalRectSeriesCanvas;\n}(AbstractSeries);\n\nHorizontalRectSeriesCanvas.displayName = 'HorizontalRectSeriesCanvas';\nHorizontalRectSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default HorizontalRectSeriesCanvas;","import \"core-js/modules/es6.array.reduce\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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';\n\nvar getTextAnchor = function getTextAnchor(labelAnchorX, leftOfMiddle) {\n return labelAnchorX ? labelAnchorX : leftOfMiddle ? 'start' : 'end';\n};\n\nvar getDominantBaseline = function getDominantBaseline(labelAnchorY, aboveMiddle) {\n return labelAnchorY ? labelAnchorY : aboveMiddle ? 'text-before-edge' : 'text-after-edge';\n};\n\nvar LabelSeries = function (_AbstractSeries) {\n _inherits(LabelSeries, _AbstractSeries);\n\n function LabelSeries() {\n _classCallCheck(this, LabelSeries);\n\n return _possibleConstructorReturn(this, (LabelSeries.__proto__ || Object.getPrototypeOf(LabelSeries)).apply(this, arguments));\n }\n\n _createClass(LabelSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\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\n if (!data) {\n return null;\n }\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\n var xFunctor = this._getAttributeFunctor('x');\n\n var yFunctor = this._getAttributeFunctor('y');\n\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\n if (!getLabel(d)) {\n return res;\n }\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\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\n var textContent = getLabel(_data ? _data[i] : d);\n return res.concat([React.createElement('text', attrs, textContent)]);\n }, []));\n }\n }]);\n\n return LabelSeries;\n}(AbstractSeries);\n\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;","import \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.number.is-finite\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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};\n\nvar LineSeries = function (_AbstractSeries) {\n _inherits(LineSeries, _AbstractSeries);\n\n function LineSeries() {\n _classCallCheck(this, LineSeries);\n\n return _possibleConstructorReturn(this, (LineSeries.__proto__ || Object.getPrototypeOf(LineSeries)).apply(this, arguments));\n }\n\n _createClass(LineSeries, [{\n key: '_renderLine',\n value: function _renderLine(data, x, y, curve, getNull) {\n var line = d3Shape.line();\n\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\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\n if (this.props.nullAccessor) {\n warning('nullAccessor has been renamed to getNull', true);\n }\n\n if (!data) {\n return null;\n }\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\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\n var x = this._getAttributeFunctor('x');\n\n var y = this._getAttributeFunctor('y');\n\n var stroke = this._getAttributeValue('stroke') || this._getAttributeValue('color');\n\n var newOpacity = this._getAttributeValue('opacity');\n\n var opacity = Number.isFinite(newOpacity) ? newOpacity : DEFAULT_OPACITY;\n var getNull = this.props.nullAccessor || this.props.getNull;\n\n var d = this._renderLine(data, x, y, curve, getNull);\n\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\n return LineSeries;\n}(AbstractSeries);\n\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;","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.fill\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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;\n\nvar MarkSeries = function (_AbstractSeries) {\n _inherits(MarkSeries, _AbstractSeries);\n\n function MarkSeries() {\n _classCallCheck(this, MarkSeries);\n\n return _possibleConstructorReturn(this, (MarkSeries.__proto__ || Object.getPrototypeOf(MarkSeries)).apply(this, arguments));\n }\n\n _createClass(MarkSeries, [{\n key: '_renderCircle',\n value: function _renderCircle(d, i, strokeWidth, style, scalingFunctions) {\n var _this2 = this;\n\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\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\n if (this.props.nullAccessor) {\n warning('nullAccessor has been renamed to getNull', true);\n }\n\n var getNull = this.props.nullAccessor || this.props.getNull;\n\n if (!data) {\n return null;\n }\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\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\n return MarkSeries;\n}(AbstractSeries);\n\nMarkSeries.displayName = 'MarkSeries';\nMarkSeries.defaultProps = {\n getNull: function getNull() {\n return true;\n }\n};\nexport default MarkSeries;","import \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es6.object.define-property\";\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\nimport React from 'react';\nimport AbstractSeries from './abstract-series';\nimport LineSeries from './line-series';\nimport MarkSeries from './mark-series';\n\nvar LineMarkSeries = function (_AbstractSeries) {\n _inherits(LineMarkSeries, _AbstractSeries);\n\n function LineMarkSeries() {\n _classCallCheck(this, LineMarkSeries);\n\n return _possibleConstructorReturn(this, (LineMarkSeries.__proto__ || Object.getPrototypeOf(LineMarkSeries)).apply(this, arguments));\n }\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\n return LineMarkSeries;\n}(AbstractSeries);\n\nLineMarkSeries.displayName = 'LineMarkSeries';\nexport default LineMarkSeries;","import \"core-js/modules/es6.array.fill\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\n\nimport { rgb } from 'd3-color';\nimport { DEFAULT_SIZE, DEFAULT_OPACITY } from '../../theme';\nimport { getAttributeFunctor } from '../../utils/scales-utils';\nimport AbstractSeries from './abstract-series';\n\nvar MarkSeriesCanvas = function (_AbstractSeries) {\n _inherits(MarkSeriesCanvas, _AbstractSeries);\n\n function MarkSeriesCanvas() {\n _classCallCheck(this, MarkSeriesCanvas);\n\n return _possibleConstructorReturn(this, (MarkSeriesCanvas.__proto__ || Object.getPrototypeOf(MarkSeriesCanvas)).apply(this, arguments));\n }\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\n var size = getAttributeFunctor(props, 'size') || function (p) {\n return DEFAULT_SIZE;\n };\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\n return MarkSeriesCanvas;\n}(AbstractSeries);\n\nMarkSeriesCanvas.displayName = 'MarkSeriesCanvas';\nMarkSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default MarkSeriesCanvas;","import \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.number.is-finite\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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';\n\nvar LineSeriesCanvas = function (_AbstractSeries) {\n _inherits(LineSeriesCanvas, _AbstractSeries);\n\n function LineSeriesCanvas() {\n _classCallCheck(this, LineSeriesCanvas);\n\n return _possibleConstructorReturn(this, (LineSeriesCanvas.__proto__ || Object.getPrototypeOf(LineSeriesCanvas)).apply(this, arguments));\n }\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\n if (!data || data.length === 0) {\n return;\n }\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\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 ctx.beginPath();\n ctx.strokeStyle = 'rgba(' + strokeColor.r + ', ' + strokeColor.g + ', ' + strokeColor.b + ', ' + opacity + ')';\n ctx.lineWidth = strokeWidth;\n\n if (strokeDasharray) {\n ctx.setLineDash(strokeDasharray);\n }\n\n line.context(ctx)(data);\n ctx.stroke();\n ctx.closePath(); // set back to default\n\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\n return LineSeriesCanvas;\n}(AbstractSeries);\n\nLineSeriesCanvas.displayName = 'LineSeriesCanvas';\nLineSeriesCanvas.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n strokeWidth: 2\n});\nexport default LineSeriesCanvas;","import \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\n\nimport AbstractSeries from './abstract-series';\nimport MarkSeriesCanvas from './mark-series-canvas';\nimport LineSeriesCanvas from './line-series-canvas';\n\nvar LineMarkSeriesCanvas = function (_AbstractSeries) {\n _inherits(LineMarkSeriesCanvas, _AbstractSeries);\n\n function LineMarkSeriesCanvas() {\n _classCallCheck(this, LineMarkSeriesCanvas);\n\n return _possibleConstructorReturn(this, (LineMarkSeriesCanvas.__proto__ || Object.getPrototypeOf(LineMarkSeriesCanvas)).apply(this, arguments));\n }\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\n return LineMarkSeriesCanvas;\n}(AbstractSeries);\n\nLineMarkSeriesCanvas.displayName = 'LineMarkSeriesCanvas';\nLineMarkSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default LineMarkSeriesCanvas;","import \"core-js/modules/es6.array.reduce\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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';\n\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};\n\nvar PolygonSeries = function (_AbstractSeries) {\n _inherits(PolygonSeries, _AbstractSeries);\n\n function PolygonSeries() {\n _classCallCheck(this, PolygonSeries);\n\n return _possibleConstructorReturn(this, (PolygonSeries.__proto__ || Object.getPrototypeOf(PolygonSeries)).apply(this, arguments));\n }\n\n _createClass(PolygonSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\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\n if (!data) {\n return null;\n }\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\n var xFunctor = this._getAttributeFunctor('x');\n\n var yFunctor = this._getAttributeFunctor('y');\n\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\n return PolygonSeries;\n}(AbstractSeries);\n\nPolygonSeries.displayName = 'PolygonSeries';\nexport default PolygonSeries;","import \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\nimport React from 'react';\nimport AbstractSeries from './abstract-series';\nimport BarSeries from './bar-series';\n\nvar VerticalBarSeries = function (_AbstractSeries) {\n _inherits(VerticalBarSeries, _AbstractSeries);\n\n function VerticalBarSeries() {\n _classCallCheck(this, VerticalBarSeries);\n\n return _possibleConstructorReturn(this, (VerticalBarSeries.__proto__ || Object.getPrototypeOf(VerticalBarSeries)).apply(this, arguments));\n }\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\n return VerticalBarSeries;\n}(AbstractSeries);\n\nVerticalBarSeries.displayName = 'VerticalBarSeries';\nexport default VerticalBarSeries;","import \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\n\nimport AbstractSeries from './abstract-series';\nimport BarSeries from './bar-series-canvas';\n\nvar HorizontalBarSeriesCanvas = function (_AbstractSeries) {\n _inherits(HorizontalBarSeriesCanvas, _AbstractSeries);\n\n function HorizontalBarSeriesCanvas() {\n _classCallCheck(this, HorizontalBarSeriesCanvas);\n\n return _possibleConstructorReturn(this, (HorizontalBarSeriesCanvas.__proto__ || Object.getPrototypeOf(HorizontalBarSeriesCanvas)).apply(this, arguments));\n }\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\n return HorizontalBarSeriesCanvas;\n}(AbstractSeries);\n\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.\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};\n\nfunction VerticalGridLines(props) {\n return React.createElement(GridLines, props);\n}\n\nVerticalGridLines.displayName = 'VerticalGridLines';\nVerticalGridLines.defaultProps = defaultProps;\nVerticalGridLines.requiresSVG = true;\nexport default VerticalGridLines;","import \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\nimport React from 'react';\nimport AbstractSeries from './abstract-series';\nimport RectSeries from './rect-series';\n\nvar VerticalRectSeries = function (_AbstractSeries) {\n _inherits(VerticalRectSeries, _AbstractSeries);\n\n function VerticalRectSeries() {\n _classCallCheck(this, VerticalRectSeries);\n\n return _possibleConstructorReturn(this, (VerticalRectSeries.__proto__ || Object.getPrototypeOf(VerticalRectSeries)).apply(this, arguments));\n }\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\n return VerticalRectSeries;\n}(AbstractSeries);\n\nVerticalRectSeries.displayName = 'VerticalRectSeries';\nexport default VerticalRectSeries;","import \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\n\nimport AbstractSeries from './abstract-series';\nimport RectSeries from './rect-series-canvas';\n\nvar HorizontalRectSeriesCanvas = function (_AbstractSeries) {\n _inherits(HorizontalRectSeriesCanvas, _AbstractSeries);\n\n function HorizontalRectSeriesCanvas() {\n _classCallCheck(this, HorizontalRectSeriesCanvas);\n\n return _possibleConstructorReturn(this, (HorizontalRectSeriesCanvas.__proto__ || Object.getPrototypeOf(HorizontalRectSeriesCanvas)).apply(this, arguments));\n }\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\n return HorizontalRectSeriesCanvas;\n}(AbstractSeries);\n\nHorizontalRectSeriesCanvas.displayName = 'HorizontalRectSeriesCanvas';\nHorizontalRectSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default HorizontalRectSeriesCanvas;","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nimport React from 'react';\nimport { voronoi } from 'd3-voronoi';\nimport { getAttributeFunctor } from '../utils/scales-utils';\n\nvar NOOP = function NOOP(f) {\n return f;\n}; // Find the index of the node at coordinates of a touch point\n\n\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\n if (!target) {\n return -1;\n }\n\n var parentNode = target.parentNode;\n return Array.prototype.indexOf.call(parentNode.childNodes, target);\n}\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}\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; // 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)); // Create an array of polygons corresponding to the cells in voronoi\n\n var polygons = voronoiInstance.polygons(nodes); // Create helper function to handle special logic for touch events\n\n var handleTouchEvent = function handleTouchEvent(handler) {\n return function (evt) {\n evt.preventDefault();\n var index = getNodeIndex(evt);\n\n if (index > -1 && index < polygons.length) {\n var d = polygons[index];\n handler(d.data);\n }\n };\n };\n\n return React.createElement('g', {\n className: className + ' rv-voronoi',\n style: style // 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}\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;","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es6.object.define-property\";\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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 * Render whisker lines for a data point.\n * @param {Object} whiskerMarkProps All the properties of the whisker mark.\n * @private\n */\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\n var hasXWhiskers = positiveXVariance && cx + r < positiveXVariance;\n var hasYWhiskers = positiveYVariance && cy - r > positiveYVariance;\n\n if (!hasXWhiskers && !hasYWhiskers) {\n return null;\n }\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\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};\n\nvar WhiskerSeries = function (_AbstractSeries) {\n _inherits(WhiskerSeries, _AbstractSeries);\n\n function WhiskerSeries() {\n _classCallCheck(this, WhiskerSeries);\n\n return _possibleConstructorReturn(this, (WhiskerSeries.__proto__ || Object.getPrototypeOf(WhiskerSeries)).apply(this, arguments));\n }\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\n if (!data) {\n return null;\n }\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\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\n return WhiskerSeries;\n}(AbstractSeries);\n\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;","import \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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\n\nimport PropTypes from 'prop-types';\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 */\n\nexport function getInnerDimensions(props, defaultMargins) {\n var margin = props.margin,\n width = props.width,\n height = props.height;\n\n var marginProps = _extends({}, defaultMargins, typeof margin === 'number' ? {\n left: margin,\n right: margin,\n top: margin,\n bottom: margin\n } : margin);\n\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 * 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 */\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};","import \"core-js/modules/es6.array.find\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es6.object.define-property\";\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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 * 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 */\n\nfunction engageDrawLoop(ctx, height, width, layers) {\n var drawIteration = 0; // using setInterval because request animation frame goes too fast\n\n var drawCycle = setInterval(function () {\n if (!ctx) {\n clearInterval(drawCycle);\n return;\n }\n\n drawLayers(ctx, height, width, layers, drawIteration);\n\n if (drawIteration > MAX_DRAWS) {\n clearInterval(drawCycle);\n }\n\n drawIteration += 1;\n }, 1);\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 */\n\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; // 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 * 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 */\n\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}\n\nvar CanvasWrapper = function (_Component) {\n _inherits(CanvasWrapper, _Component);\n\n function CanvasWrapper() {\n _classCallCheck(this, CanvasWrapper);\n\n return _possibleConstructorReturn(this, (CanvasWrapper.__proto__ || Object.getPrototypeOf(CanvasWrapper)).apply(this, arguments));\n }\n\n _createClass(CanvasWrapper, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var ctx = this.canvas.getContext('2d');\n\n if (!ctx) {\n return;\n }\n\n var pixelRatio = this.props.pixelRatio;\n\n if (!ctx) {\n return;\n }\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 * 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 }, {\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\n if (!ctx) {\n return;\n }\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 : []); // if we don't need to be animating, dont! cut short\n\n if (!childrenShouldAnimate) {\n drawLayers(ctx, height, width, layers);\n return;\n }\n\n engageDrawLoop(ctx, height, width, layers);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\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\n return CanvasWrapper;\n}(Component);\n\nCanvasWrapper.displayName = 'CanvasWrapper';\nexport default CanvasWrapper;","import \"core-js/modules/es6.array.some\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.set\";\nimport \"core-js/modules/es6.array.filter\";\nimport \"core-js/modules/es6.array.reduce\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.array.is-array\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es6.object.define-property\";\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return arr2;\n } else {\n return Array.from(arr);\n }\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\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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 * 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 */\n\nfunction cleanseData(data) {\n return data.map(function (series) {\n if (!Array.isArray(series)) {\n return series;\n }\n\n return series.map(function (row) {\n return _extends({}, row, {\n parent: null\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 */\n\n\nfunction checkIfMixinsAreEqual(nextScaleMixins, scaleMixins, hasTreeStructure) {\n var newMixins = _extends({}, nextScaleMixins, {\n _allData: hasTreeStructure ? cleanseData(nextScaleMixins._allData) : nextScaleMixins._allData\n });\n\n var oldMixins = _extends({}, scaleMixins, {\n _allData: hasTreeStructure ? cleanseData(scaleMixins._allData) : scaleMixins._allData\n }); // it's hard to say if this function is reasonable?\n\n\n return equal(newMixins, oldMixins);\n}\n\nvar XYPlot = function (_React$Component) {\n _inherits(XYPlot, _React$Component);\n\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\n function XYPlot(props) {\n _classCallCheck(this, XYPlot);\n\n var _this = _possibleConstructorReturn(this, (XYPlot.__proto__ || Object.getPrototypeOf(XYPlot)).call(this, props));\n\n _initialiseProps.call(_this);\n\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\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\n var nextScaleMixins = this._getScaleMixins(nextData, nextProps);\n\n if (!checkIfMixinsAreEqual(nextScaleMixins, scaleMixins, nextProps.hasTreeStructure)) {\n this.setState({\n scaleMixins: nextScaleMixins,\n data: nextData\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 }, {\n key: '_getClonedChildComponents',\n\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\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\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\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 }, {\n key: '_getDefaultScaleProps',\n value: function _getDefaultScaleProps(props) {\n var _getInnerDimensions = getInnerDimensions(props, DEFAULT_MARGINS),\n innerWidth = _getInnerDimensions.innerWidth,\n innerHeight = _getInnerDimensions.innerHeight;\n\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 * 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 }, {\n key: '_getScaleMixins',\n value: function _getScaleMixins(data, props) {\n var _ref2;\n\n var filteredData = data.filter(function (d) {\n return d;\n });\n\n var allData = (_ref2 = []).concat.apply(_ref2, _toConsumableArray(filteredData));\n\n var defaultScaleProps = this._getDefaultScaleProps(props);\n\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\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\n if (isDomainAdjustmentNeeded) {\n adjustBy.add(attr);\n adjustWhat.add(index);\n }\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 * 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 }, {\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 * 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 }, {\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\n if (componentsToRender.length === 0) {\n return null;\n }\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\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\n var components = this._getClonedChildComponents();\n\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\n return XYPlot;\n}(React.Component);\n\nvar _initialiseProps = function _initialiseProps() {\n var _this3 = this;\n\n this._clickHandler = function (event) {\n var onClick = _this3.props.onClick;\n\n if (onClick) {\n onClick(event);\n }\n };\n\n this._doubleClickHandler = function (event) {\n var onDoubleClick = _this3.props.onDoubleClick;\n\n if (onDoubleClick) {\n onDoubleClick(event);\n }\n };\n\n this._mouseDownHandler = function (event) {\n var _props2 = _this3.props,\n onMouseDown = _props2.onMouseDown,\n children = _props2.children;\n\n if (onMouseDown) {\n onMouseDown(event);\n }\n\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n\n if (component && component.onParentMouseDown) {\n component.onParentMouseDown(event);\n }\n });\n };\n\n this._mouseEnterHandler = function (event) {\n var _props3 = _this3.props,\n onMouseEnter = _props3.onMouseEnter,\n children = _props3.children;\n\n if (onMouseEnter) {\n onMouseEnter(event);\n }\n\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n\n if (component && component.onParentMouseEnter) {\n component.onParentMouseEnter(event);\n }\n });\n };\n\n this._mouseLeaveHandler = function (event) {\n var _props4 = _this3.props,\n onMouseLeave = _props4.onMouseLeave,\n children = _props4.children;\n\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n\n if (component && component.onParentMouseLeave) {\n component.onParentMouseLeave(event);\n }\n });\n };\n\n this._mouseMoveHandler = function (event) {\n var _props5 = _this3.props,\n onMouseMove = _props5.onMouseMove,\n children = _props5.children;\n\n if (onMouseMove) {\n onMouseMove(event);\n }\n\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n\n if (component && component.onParentMouseMove) {\n component.onParentMouseMove(event);\n }\n });\n };\n\n this._mouseUpHandler = function (event) {\n var _props6 = _this3.props,\n onMouseUp = _props6.onMouseUp,\n children = _props6.children;\n\n if (onMouseUp) {\n onMouseUp(event);\n }\n\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n\n if (component && component.onParentMouseUp) {\n component.onParentMouseUp(event);\n }\n });\n };\n\n this._touchCancelHandler = function (event) {\n var onTouchCancel = _this3.props.onTouchCancel;\n\n if (onTouchCancel) {\n onTouchCancel(event);\n }\n };\n\n this._touchEndHandler = function (event) {\n var onTouchEnd = _this3.props.onTouchEnd;\n\n if (onTouchEnd) {\n onTouchEnd(event);\n }\n };\n\n this._touchMoveHandler = function (event) {\n var _props7 = _this3.props,\n onTouchMove = _props7.onTouchMove,\n children = _props7.children;\n\n if (onTouchMove) {\n onTouchMove(event);\n }\n\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n\n if (component && component.onParentTouchMove) {\n component.onParentTouchMove(event);\n }\n });\n };\n\n this._touchStartHandler = function (event) {\n var _props8 = _this3.props,\n onTouchStart = _props8.onTouchStart,\n children = _props8.children;\n\n if (onTouchStart) {\n onTouchStart(event);\n }\n\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n\n if (component && component.onParentTouchStart) {\n component.onParentTouchStart(event);\n }\n });\n };\n\n this._wheelHandler = function (event) {\n var onWheel = _this3.props.onWheel;\n\n if (onWheel) {\n onWheel(event);\n }\n };\n};\n\nXYPlot.displayName = 'XYPlot';\nexport default XYPlot;","import \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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\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};\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\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\n return React.createElement('line', _extends({}, lineProps, {\n className: 'rv-xy-plot__axis__line',\n style: style\n }));\n}\n\nAxisLine.defaultProps = defaultProps;\nAxisLine.displayName = 'AxisLine';\nexport default AxisLine;","import \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.string.includes\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\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\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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};\n\nfunction _getTickFormatFn(scale, tickTotal, tickFormat) {\n return !tickFormat ? scale.tickFormat ? scale.tickFormat(tickTotal) : function (v) {\n return v;\n } : tickFormat;\n}\n\nvar AxisTicks = function (_React$Component) {\n _inherits(AxisTicks, _React$Component);\n\n function AxisTicks() {\n _classCallCheck(this, AxisTicks);\n\n return _possibleConstructorReturn(this, (AxisTicks.__proto__ || Object.getPrototypeOf(AxisTicks)).apply(this, arguments));\n }\n\n _createClass(AxisTicks, [{\n key: '_areTicksWrapped',\n\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\n return function (pos) {\n return {\n transform: 'translate(' + pos + ', 0)'\n };\n };\n }\n /**\n * Get attributes for the label of the tick.\n * @returns {Object} Object with properties.\n * @private\n */\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; // Assign the text orientation inside the label of the tick mark.\n\n var textAnchor = void 0;\n\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 } // The label's position is translated to the given padding and then the\n // label is rotated to the given angle.\n\n\n var isVertical = this._isAxisVertical();\n\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 + ')' : ''); // Set the vertical offset of the label according to the position of\n // the axis.\n\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 * Get the props of the tick line.\n * @returns {Object} Props.\n * @private\n */\n\n }, {\n key: '_getTickLineProps',\n value: function _getTickLineProps() {\n var _ref;\n\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\n var isVertical = this._isAxisVertical();\n\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 * Gets if the axis is vertical.\n * @returns {boolean} True if vertical.\n * @private\n */\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\n var tickFormatFn = _getTickFormatFn(scale, tickTotal, tickFormat);\n\n var translateFn = this._getTickContainerPropsGetterFn();\n\n var pathProps = this._getTickLineProps();\n\n var textProps = this._getTickLabelProps();\n\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\n return AxisTicks;\n}(React.Component);\n\nAxisTicks.defaultProps = defaultProps;\nAxisTicks.displayName = 'AxisTicks';\nAxisTicks.requiresSVG = true;\nexport default AxisTicks;","import \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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\n return obj;\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\n\nimport React from 'react';\nimport { ORIENTATION } from '../../utils/axis-utils'; // Assuming that 16px = 1em\n\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 * 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 */\n\nvar transformation = function transformation(width, height) {\n var _ref;\n\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};\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}\n\nAxisTitle.displayName = 'AxisTitle';\nAxisTitle.defaultProps = defaultProps;\nexport default AxisTitle;","import \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.array.filter\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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';\n\nvar Axis = function (_PureComponent) {\n _inherits(Axis, _PureComponent);\n\n function Axis() {\n _classCallCheck(this, Axis);\n\n return _possibleConstructorReturn(this, (Axis.__proto__ || Object.getPrototypeOf(Axis)).apply(this, arguments));\n }\n\n _createClass(Axis, [{\n key: '_getDefaultAxisProps',\n\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\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\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\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\n var props = _extends({}, this._getDefaultAxisProps(), this.props);\n\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\n if (on0) {\n var scale = getAttributeScale(props, attrAxis);\n\n if (isVertical) {\n leftPos = scale(0);\n } else {\n topPos = marginTop + scale(0);\n }\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\n return Axis;\n}(PureComponent);\n\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.\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};\n\nfunction XAxis(props) {\n return React.createElement(Axis, props);\n}\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.\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};\n\nfunction YAxis(props) {\n return React.createElement(Axis, props);\n}\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.\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};\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\n if (midColor) {\n colors.push(midColor);\n }\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}\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.\nimport React from 'react';\nvar defaultProps = {\n circlesTotal: 10,\n className: '',\n endSize: 20,\n startSize: 2\n};\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\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 })); // Add the separator in order to justify the content (otherwise the tags\n // will be stacked together without any margins around).\n\n circles.push(' ');\n }\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}\n\nContinuousSizeLegend.displayName = 'ContinuousSizeLegend';\nContinuousSizeLegend.defaultProps = defaultProps;\nexport default ContinuousSizeLegend;","import \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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\n\nimport React from 'react';\nvar STROKE_STYLES = {\n dashed: '6, 2',\n solid: null\n};\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\n if (disabled) {\n className += ' disabled';\n }\n\n if (onClick) {\n className += ' clickable';\n }\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}\n\nDiscreteColorLegendItem.defaultProps = {\n disabled: false,\n strokeStyle: 'solid'\n};\nDiscreteColorLegendItem.displayName = 'DiscreteColorLegendItem';\nexport default DiscreteColorLegendItem;","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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\n\nimport React from 'react';\nimport DiscreteColorLegendItem from './discrete-color-legend-item';\nimport { DISCRETE_COLOR_RANGE } from '../theme';\n\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}\n\nDiscreteColorLegend.displayName = 'DiscreteColorLegendItem';\nDiscreteColorLegend.defaultProps = {\n className: '',\n colors: DISCRETE_COLOR_RANGE,\n orientation: 'vertical'\n};\nexport default DiscreteColorLegend;","import \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.array.filter\";\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 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};\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}\n\nSearchableDiscreteColorLegend.defaultProps = defaultProps;\nSearchableDiscreteColorLegend.displayName = 'SearchableDiscreteColorLegend';\nexport default SearchableDiscreteColorLegend;","import \"core-js/modules/es6.array.reduce\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es6.object.define-property\";\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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 */\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\n var domainTickFormat = function domainTickFormat(t) {\n return domain.tickFormat ? domain.tickFormat(t) : tickFormat(t);\n };\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 * 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 */\n\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 * 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 */\n\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 }, {}); // 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; // 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]; // filter value after being scale back from pixel space is also in [0, 1]\n\n if (filter && (yVal < filter.min || yVal > filter.max)) {\n withinFilteredRange = false;\n }\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\n if (!withinFilteredRange) {\n lineProps.style = _extends({}, lineProps.style, style.deselectedLineStyle);\n }\n\n return showMarks ? React.createElement(LineMarkSeries, lineProps) : React.createElement(LineSeries, lineProps);\n });\n}\n\nvar ParallelCoordinates = function (_Component) {\n _inherits(ParallelCoordinates, _Component);\n\n function ParallelCoordinates() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, ParallelCoordinates);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = ParallelCoordinates.__proto__ || Object.getPrototypeOf(ParallelCoordinates)).call.apply(_ref2, [this].concat(args))), _this), _this.state = {\n brushFilters: {}\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(ParallelCoordinates, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\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\n var _getInnerDimensions = getInnerDimensions(this.props, DEFAULT_MARGINS),\n marginLeft = _getInnerDimensions.marginLeft,\n marginRight = _getInnerDimensions.marginRight;\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 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\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\n return ParallelCoordinates;\n}(Component);\n\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/es6.array.fill\";\nimport \"core-js/modules/es6.array.reduce\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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\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 */\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\n var domainTickFormat = function domainTickFormat(t) {\n if (hideInnerMostValues && t === sortedDomain[0]) {\n return '';\n }\n\n return domain.tickFormat ? domain.tickFormat(t) : tickFormat(t);\n };\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 * 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 */\n\n\nfunction getCoordinate(axisEndPoint) {\n var epsilon = 10e-13;\n\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\n return axisEndPoint;\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 */\n\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 * 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 */\n\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]; // error handling if point doesn't exist\n\n var angle = index / domains.length * Math.PI * 2 + startingAngle; // dont let the radius become negative\n\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 * 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 */\n\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\n if (!onValueMouseOver) {\n return;\n }\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]; // error handling if point doesn't exist\n\n var angle = index / domains.length * Math.PI * 2 + startingAngle; // dont let the radius become negative\n\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}\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}\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/es6.array.reduce\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.sort\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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\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 * 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 */\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}\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; // 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\n var updatedAngle = -1 * centeredAngle + Math.PI / 2;\n var newLabels = [];\n\n if (getLabel(row)) {\n newLabels.push({\n angle: updatedAngle,\n radius: radius * labelsRadiusMultiplier,\n label: getLabel(row)\n });\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\n return res.concat(newLabels);\n }, []); // could add force direction here to make sure the labels dont overlap\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 */\n\n\nfunction getMaxRadius(width, height) {\n return Math.min(width, height) / 2 - DEFAULT_RADIUS_MARGIN;\n}\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\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\n if (radius) {\n arcProps.radiusDomain = [0, 1];\n arcProps.radiusRange = [innerRadius || 0, radius];\n arcProps.radiusType = 'linear';\n }\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}\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\";\n\nfunction targetDepth(d) {\n return d.target.depth;\n}\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/es6.array.sort\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.array.for-each\";\nimport { ascending, min, sum } from \"d3-array\";\nimport { map, nest } from \"d3-collection\";\nimport { justify } from \"./align\";\nimport constant from \"./constant\";\n\nfunction ascendingSourceBreadth(a, b) {\n return ascendingBreadth(a.source, b.source) || a.index - b.index;\n}\n\nfunction ascendingTargetBreadth(a, b) {\n return ascendingBreadth(a.target, b.target) || a.index - b.index;\n}\n\nfunction ascendingBreadth(a, b) {\n return a.y0 - b.y0;\n}\n\nfunction value(d) {\n return d.value;\n}\n\nfunction nodeCenter(node) {\n return (node.y0 + node.y1) / 2;\n}\n\nfunction weightedSource(link) {\n return nodeCenter(link.source) * link.value;\n}\n\nfunction weightedTarget(link) {\n return nodeCenter(link.target) * link.value;\n}\n\nfunction defaultId(d) {\n return d.index;\n}\n\nfunction defaultNodes(graph) {\n return graph.nodes;\n}\n\nfunction defaultLinks(graph) {\n return graph.links;\n}\n\nfunction find(nodeById, id) {\n var node = nodeById.get(id);\n if (!node) throw new Error(\"missing: \" + id);\n return node;\n}\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\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\n sankey.update = function (graph) {\n computeLinkBreadths(graph);\n return graph;\n };\n\n sankey.nodeId = function (_) {\n return arguments.length ? (id = typeof _ === \"function\" ? _ : constant(_), sankey) : id;\n };\n\n sankey.nodeAlign = function (_) {\n return arguments.length ? (align = typeof _ === \"function\" ? _ : constant(_), sankey) : align;\n };\n\n sankey.nodeWidth = function (_) {\n return arguments.length ? (dx = +_, sankey) : dx;\n };\n\n sankey.nodePadding = function (_) {\n return arguments.length ? (py = +_, sankey) : py;\n };\n\n sankey.nodes = function (_) {\n return arguments.length ? (nodes = typeof _ === \"function\" ? _ : constant(_), sankey) : nodes;\n };\n\n sankey.links = function (_) {\n return arguments.length ? (links = typeof _ === \"function\" ? _ : constant(_), sankey) : links;\n };\n\n sankey.size = function (_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankey) : [x1 - x0, y1 - y0];\n };\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\n sankey.iterations = function (_) {\n return arguments.length ? (iterations = +_, sankey) : iterations;\n }; // Populate the sourceLinks and targetLinks for each node.\n // Also, if the source and target are not objects, assume they are indices.\n\n\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 } // Compute the value (size) of each node by summing the associated links.\n\n\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 } // 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\n\n function computeNodeDepths(graph) {\n var nodes, next, x;\n\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\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\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\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 initializeNodeBreadth();\n resolveCollisions();\n\n for (var alpha = 1, n = iterations; n > 0; --n) {\n relaxRightToLeft(alpha *= 0.99);\n resolveCollisions();\n relaxLeftToRight(alpha);\n resolveCollisions();\n }\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\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\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\n function resolveCollisions() {\n columns.forEach(function (nodes) {\n var node,\n dy,\n y = y0,\n n = nodes.length,\n i; // Push any overlapping nodes down.\n\n nodes.sort(ascendingBreadth);\n\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 } // If the bottommost node goes outside the bounds, push it back up.\n\n\n dy = y - py - y1;\n\n if (dy > 0) {\n y = node.y0 -= dy, node.y1 -= dy; // Push any overlapping nodes back up.\n\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\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\n return sankey;\n}","import { linkHorizontal } from \"d3-shape\";\n\nfunction horizontalSource(d) {\n return [d.source.x1, d.y0];\n}\n\nfunction horizontalTarget(d) {\n return [d.target.x0, d.y1];\n}\n\nexport default function () {\n return linkHorizontal().source(horizontalSource).target(horizontalTarget);\n}","import \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.number.is-finite\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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\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;\n\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\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\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}\n\nSankeyLink.displayName = 'SankeyLink';\nSankeyLink.requiresSVG = true;\nexport default SankeyLink;","import \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.array.is-array\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return arr2;\n } else {\n return Array.from(arr);\n }\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';\n\nvar NOOP = function NOOP(f) {\n return f;\n};\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};\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\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\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}\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\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\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\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\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\n partition.round = function (x) {\n return arguments.length ? (round = !!x, partition) : round;\n };\n\n partition.size = function (x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];\n };\n\n partition.padding = function (x) {\n return arguments.length ? (padding = +x, partition) : padding;\n };\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) {\n sum += children[i].value;\n }\n node.value = sum;\n}\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\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\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\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n\n do {\n node.height = height;\n } 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\n do {\n current = next.reverse(), next = [];\n\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\n return this;\n}","export default function (callback) {\n var node = this,\n nodes = [node],\n next = [],\n children,\n i,\n 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\n while (node = next.pop()) {\n callback(node);\n }\n\n return this;\n}","export default function (callback) {\n var node = this,\n nodes = [node],\n children,\n i;\n\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\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\n while (--i >= 0) {\n sum += children[i].value;\n }\n\n node.value = sum;\n });\n}","import \"core-js/modules/es6.array.sort\";\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\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n\n var k = nodes.length;\n\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n\n return nodes;\n}\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\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n\n return c;\n}","export default function () {\n var node = this,\n nodes = [node];\n\n while (node = node.parent) {\n nodes.push(node);\n }\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/es6.array.filter\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.reduce\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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\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 * 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 */\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\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 * 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 */\n\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}\n\nvar NOOP = function NOOP() {};\n\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\n var hofBuilder = function hofBuilder(f) {\n return function (e, i) {\n return f ? f(mappedData[e.index], i) : NOOP;\n };\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}\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\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\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0; // Find the next non-empty node.\n\n do {\n sumValue = nodes[i1++].value;\n } while (!sumValue && i1 < n);\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); // Keep adding nodes while the aspect ratio maintains or improves.\n\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\n if (newRatio > minRatio) {\n sumValue -= nodeValue;\n break;\n }\n\n minRatio = newRatio;\n } // Position and record the row orientation.\n\n\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\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\n squarify.ratio = function (x) {\n return custom((x = +x) > 1 ? x : 1);\n };\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\n while (++j < m) {\n row = rows[j], nodes = row.children;\n\n for (i = row.value = 0, n = nodes.length; i < n; ++i) {\n row.value += nodes[i].value;\n }\n\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\n resquarify.ratio = function (x) {\n return custom((x = +x) > 1 ? x : 1);\n };\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\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m];\n array[m] = array[i];\n array[i] = t;\n }\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\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\n return e;\n}\n\nfunction extendBasis(B, p) {\n var i, j;\n if (enclosesWeakAll(p, B)) return [p]; // If we get here then B must have at least one element.\n\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 } // If we get here then B must have at least two elements.\n\n\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 } // If we get here then something is very wrong.\n\n\n throw new Error();\n}\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}\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}\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\n return true;\n}\n\nfunction encloseBasis(B) {\n switch (B.length) {\n case 1:\n return encloseBasis1(B[0]);\n\n case 2:\n return encloseBasis2(B[0], B[1]);\n\n case 3:\n return encloseBasis3(B[0], B[1], B[2]);\n }\n}\n\nfunction encloseBasis1(a) {\n return {\n x: a.x,\n y: a.y,\n r: a.r\n };\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}\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\";\n\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\n if (d2) {\n a2 = a.r + c.r, a2 *= a2;\n b2 = b.r + c.r, b2 *= b2;\n\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}\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}\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}\n\nfunction Node(circle) {\n this._ = circle;\n this.next = null;\n this.previous = null;\n}\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; // Place the first circle.\n\n a = circles[0], a.x = 0, a.y = 0;\n if (!(n > 1)) return a.r; // Place the second circle.\n\n b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n if (!(n > 2)) return a.r + b.r; // Place the third circle.\n\n place(b, a, c = circles[2]); // Initialize the front-chain using the first three circles a, b and c.\n\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; // Attempt to place each remaining circle…\n\n pack: for (i = 3; i < n; ++i) {\n place(a._, b._, c = circles[i]), c = new Node(c); // 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\n j = b.next, k = a.previous, sj = b._.r, sk = a._.r;\n\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\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\n sk += k._.r, k = k.previous;\n }\n } while (j !== k.next); // Success! Insert the new circle c between a and b.\n\n\n c.previous = a, c.next = b, a.next = b.previous = b = c; // Compute the new closest circle pair to the centroid.\n\n aa = score(a);\n\n while ((c = c.next) !== b) {\n if ((ca = score(c)) < aa) {\n a = c, aa = ca;\n }\n }\n\n b = a.next;\n } // Compute the enclosing circle of the front chain.\n\n\n a = [b._], c = b;\n\n while ((c = c.next) !== b) {\n a.push(c._);\n }\n\n c = enclose(a); // Translate the circles to put the enclosing circle around the origin.\n\n for (i = 0; i < n; ++i) {\n a = circles[i], a.x -= c.x, a.y -= c.y;\n }\n\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\";\n\nfunction defaultRadius(d) {\n return Math.sqrt(d.value);\n}\n\nexport default function () {\n var radius = null,\n dx = 1,\n dy = 1,\n padding = constantZero;\n\n function pack(root) {\n root.x = dx / 2, root.y = dy / 2;\n\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\n return root;\n }\n\n pack.radius = function (x) {\n return arguments.length ? (radius = optional(x), pack) : radius;\n };\n\n pack.size = function (x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];\n };\n\n pack.padding = function (x) {\n return arguments.length ? (padding = typeof x === \"function\" ? x : constant(+x), pack) : padding;\n };\n\n return pack;\n}\n\nfunction radiusLeaf(radius) {\n return function (node) {\n if (!node.children) {\n node.r = Math.max(0, +radius(node) || 0);\n }\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) {\n children[i].r += r;\n }\n e = packEnclose(children);\n if (r) for (i = 0; i < n; ++i) {\n children[i].r -= r;\n }\n node.r = e + r;\n }\n };\n}\n\nfunction translateChild(k) {\n return function (node) {\n var parent = node.parent;\n node.r *= k;\n\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\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\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\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\n treemap.round = function (x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function (x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function (x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function (x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function (x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function (x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function (x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function (x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function (x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function (x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}","import \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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\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'];\n\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\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\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\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\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}\n\nexport default TreemapLeaf;","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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\n\nimport React from 'react';\nimport TreemapLeaf from './treemap-leaf';\n\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\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\n return React.createElement(TreemapLeaf, _extends({}, nodeProps, {\n key: 'leaf-' + index\n }));\n }));\n}\n\nTreemapDOM.displayName = 'TreemapDOM';\nexport default TreemapDOM;","import \"core-js/modules/es6.array.reduce\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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;\n\nvar TreemapSVG = function (_React$Component) {\n _inherits(TreemapSVG, _React$Component);\n\n function TreemapSVG() {\n _classCallCheck(this, TreemapSVG);\n\n return _possibleConstructorReturn(this, (TreemapSVG.__proto__ || Object.getPrototypeOf(TreemapSVG)).apply(this, arguments));\n }\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\n var _nodes$reduce = nodes.reduce(function (acc, node, index) {\n if (!index && hideRootNode) {\n return acc;\n }\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\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\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\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\n var labels = nodes.reduce(function (acc, node) {\n if (!node.data.title) {\n return acc;\n }\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\n return TreemapSVG;\n}(React.Component);\n\nTreemapSVG.displayName = 'TreemapSVG';\nexport default TreemapSVG;","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.sort\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es6.object.define-property\";\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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};\n\nvar NOOP = function NOOP(d) {\n return d;\n};\n\nvar ATTRIBUTES = ['opacity', 'color'];\nvar DEFAULT_MARGINS = {\n left: 40,\n right: 10,\n top: 10,\n bottom: 40\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 */\n\nfunction _getScaleFns(props) {\n var data = props.data;\n var allData = data.children || []; // Adding _allData property to the object to reuse the existing\n // getAttributeFunctor function.\n\n var compatibleProps = _extends({}, props, getMissingScaleProps(props, allData, ATTRIBUTES), {\n _allData: allData\n });\n\n return {\n opacity: getAttributeFunctor(compatibleProps, 'opacity'),\n color: getAttributeFunctor(compatibleProps, 'color')\n };\n}\n\nvar Treemap = function (_React$Component) {\n _inherits(Treemap, _React$Component);\n\n function Treemap(props) {\n _classCallCheck(this, Treemap);\n\n var _this = _possibleConstructorReturn(this, (Treemap.__proto__ || Object.getPrototypeOf(Treemap)).call(this, props));\n\n _this.state = _extends({\n scales: _getScaleFns(props)\n }, getInnerDimensions(props, props.margin));\n return _this;\n }\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 * Create the list of nodes to render.\n * @returns {Array} Array of nodes.\n * @private\n */\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\n if (!data) {\n return [];\n }\n\n if (mode === 'partition' || mode === 'partition-pivot') {\n var partitionFunction = partition().size(mode === 'partition-pivot' ? [innerHeight, innerWidth] : [innerWidth, innerHeight]).padding(padding);\n\n var _structuredInput = hierarchy(data).sum(getSize).sort(function (a, b) {\n return sortFunction(a, b, getSize);\n });\n\n var mappedNodes = partitionFunction(_structuredInput).descendants();\n\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\n return mappedNodes;\n }\n\n if (mode === 'circlePack') {\n var packingFunction = pack().size([innerWidth, innerHeight]).padding(padding);\n\n var _structuredInput2 = hierarchy(data).sum(getSize).sort(function (a, b) {\n return sortFunction(a, b, getSize);\n });\n\n return packingFunction(_structuredInput2).descendants();\n }\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\n var nodes = this._getNodesToRender();\n\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\n return Treemap;\n}(React.Component);\n\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\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\n for (sums[0] = sum = i = 0; i < n; ++i) {\n sums[i + 1] = sum += nodes[i].value;\n }\n\n partition(0, n, parent.value, x0, y0, x1, y1);\n\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\n var valueOffset = sums[i],\n valueTarget = value / 2 + valueOffset,\n k = i + 1,\n hi = j - 1;\n\n while (k < hi) {\n var mid = k + hi >>> 1;\n if (sums[mid] < valueTarget) k = mid + 1;else hi = mid;\n }\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\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}","import \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.object.set-prototype-of\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.assign\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\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\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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\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} // 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\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'; // As a performance enhancement, we want to only listen once\n\nvar resizeSubscribers = [];\nvar DEBOUNCE_DURATION = 100;\nvar timeoutId = null;\n/**\n * Calls each subscriber, debounced to the\n */\n\nfunction debounceEmitResize() {\n window.clearTimeout(timeoutId);\n timeoutId = window.setTimeout(emitResize, DEBOUNCE_DURATION);\n}\n/**\n * Calls each subscriber once syncronously.\n */\n\n\nfunction emitResize() {\n resizeSubscribers.forEach(function (cb) {\n return cb();\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 */\n\n\nfunction subscribeToDebouncedResize(cb) {\n resizeSubscribers.push(cb); // if we go from zero to one Flexible components instances, add the listener\n\n if (resizeSubscribers.length === 1) {\n window.addEventListener('resize', debounceEmitResize);\n }\n\n return function unsubscribe() {\n removeSubscriber(cb); // if we have no Flexible components, remove the listener\n\n if (resizeSubscribers.length === 0) {\n window.clearTimeout(timeoutId);\n window.removeEventListener('resize', debounceEmitResize);\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 */\n\n\nfunction removeSubscriber(cb) {\n var index = resizeSubscribers.indexOf(cb);\n\n if (index > -1) {\n resizeSubscribers.splice(index, 1);\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 */\n\n\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\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\n\nfunction makeFlexible(Component, isWidthFlexible, isHeightFlexible) {\n var ResultClass = function (_React$Component) {\n _inherits(ResultClass, _React$Component);\n\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\n return otherPropTypes;\n }\n }]);\n\n function ResultClass(props) {\n _classCallCheck(this, ResultClass);\n\n var _this = _possibleConstructorReturn(this, (ResultClass.__proto__ || Object.getPrototypeOf(ResultClass)).call(this, props));\n\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\n _this.setState(_extends({}, newHeight, newWidth));\n };\n\n _this.state = {\n height: 0,\n width: 0\n };\n return _this;\n }\n /**\n * Get the width of the container and assign the width.\n * @private\n */\n\n\n _createClass(ResultClass, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this._onResize();\n\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\n var _state = this.state,\n height = _state.height,\n width = _state.width;\n\n var props = _extends({}, this.props, {\n animation: height === 0 && width === 0 ? null : this.props.animation\n });\n\n var updatedDimensions = _extends({}, isHeightFlexible ? {\n height: height\n } : {}, isWidthFlexible ? {\n width: width\n } : {});\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\n return ResultClass;\n }(React.Component);\n\n ResultClass.displayName = 'Flexible' + getDisplayName(Component);\n return ResultClass;\n}\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\nrender() {\nswitch(this.props.data.Type){\ncase \"Bar_line\":\ncase \"Bar\":\ncase \"Line\":\n\n// let GraphData\n\n\n\nfor (let data of this.props.data.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\nreturn (\n
\n
{this.props.data.title}
\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\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 for(let slice of this.props.data.Data){\n Data.push({angle:slice.angle,color:slice.color,name:slice.Label,sub:slice.sublabel})\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 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 \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nexport var getMainLayoutClassName = function getMainLayoutClassName(layout) {\n switch (layout) {\n case 'stacked':\n return 'rhap_stacked';\n\n case 'stacked-reverse':\n return 'rhap_stacked-reverse';\n\n case 'horizontal':\n return 'rhap_horizontal';\n\n case 'horizontal-reverse':\n return 'rhap_horizontal-reverse';\n\n default:\n return 'rhap_stacked';\n }\n};\nexport var getPosX = function getPosX(event) {\n if (event instanceof MouseEvent) {\n return event.clientX;\n } else {\n return event.touches[0].clientX;\n }\n};\n\nvar addHeadingZero = function addHeadingZero(num) {\n return num > 9 ? num.toString() : \"0\" + num;\n};\n\nexport var getDisplayTimeBySeconds = function getDisplayTimeBySeconds(seconds, totalSeconds, timeFormat) {\n if (!isFinite(seconds)) {\n return null;\n }\n\n var min = Math.floor(seconds / 60);\n var minStr = addHeadingZero(min);\n var secStr = addHeadingZero(Math.floor(seconds % 60));\n var minStrForHour = addHeadingZero(Math.floor(min % 60));\n var hourStr = Math.floor(min / 60);\n var mmSs = minStr + \":\" + secStr;\n var hhMmSs = hourStr + \":\" + minStrForHour + \":\" + secStr;\n\n if (timeFormat === 'auto') {\n if (totalSeconds >= 3600) {\n return hhMmSs;\n } else {\n return mmSs;\n }\n } else if (timeFormat === 'mm:ss') {\n return mmSs;\n } else if (timeFormat === 'hh:mm:ss') {\n return hhMmSs;\n }\n};\nexport function throttle(func, limit) {\n var inThrottle = false;\n return function (arg) {\n if (!inThrottle) {\n func(arg);\n inThrottle = true;\n setTimeout(function () {\n return inThrottle = false;\n }, limit);\n }\n };\n}","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.array.index-of\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport React, { Component, forwardRef } from 'react';\nimport { getPosX, throttle } from './utils';\n\nvar ProgressBar = function (_Component) {\n _inheritsLoose(ProgressBar, _Component);\n\n function ProgressBar() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"audio\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"timeOnMouseMove\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"hasAddedAudioEventListener\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"downloadProgressAnimationTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isDraggingProgress: false,\n currentTimePos: '0%',\n hasDownloadProgressAnimation: false,\n downloadProgressArr: [],\n waitingForSeekCallback: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getCurrentProgress\", function (event) {\n var _this$props = _this.props,\n audio = _this$props.audio,\n progressBar = _this$props.progressBar;\n var isSingleFileProgressiveDownload = audio.src.indexOf('blob:') !== 0 && typeof _this.props.srcDuration === 'undefined';\n\n if (isSingleFileProgressiveDownload && (!audio.src || !isFinite(audio.currentTime) || !progressBar.current)) {\n return {\n currentTime: 0,\n currentTimePos: '0%'\n };\n }\n\n var progressBarRect = progressBar.current.getBoundingClientRect();\n var maxRelativePos = progressBarRect.width;\n var relativePos = getPosX(event) - progressBarRect.left;\n\n if (relativePos < 0) {\n relativePos = 0;\n } else if (relativePos > maxRelativePos) {\n relativePos = maxRelativePos;\n }\n\n var duration = _this.getDuration();\n\n var currentTime = duration * relativePos / maxRelativePos;\n return {\n currentTime: currentTime,\n currentTimePos: (relativePos / maxRelativePos * 100).toFixed(2) + \"%\"\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleContextMenu\", function (event) {\n event.preventDefault();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMouseDownOrTouchStartProgressBar\", function (event) {\n event.stopPropagation();\n\n var _this$getCurrentProgr = _this.getCurrentProgress(event.nativeEvent),\n currentTime = _this$getCurrentProgr.currentTime,\n currentTimePos = _this$getCurrentProgr.currentTimePos;\n\n if (isFinite(currentTime)) {\n _this.timeOnMouseMove = currentTime;\n\n _this.setState({\n isDraggingProgress: true,\n currentTimePos: currentTimePos\n });\n\n if (event.nativeEvent instanceof MouseEvent) {\n window.addEventListener('mousemove', _this.handleWindowMouseOrTouchMove);\n window.addEventListener('mouseup', _this.handleWindowMouseOrTouchUp);\n } else {\n window.addEventListener('touchmove', _this.handleWindowMouseOrTouchMove);\n window.addEventListener('touchend', _this.handleWindowMouseOrTouchUp);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleWindowMouseOrTouchMove\", function (event) {\n event.preventDefault();\n event.stopPropagation();\n var windowSelection = window.getSelection();\n\n if (windowSelection && windowSelection.type === 'Range') {\n windowSelection.empty();\n }\n\n var isDraggingProgress = _this.state.isDraggingProgress;\n\n if (isDraggingProgress) {\n var _this$getCurrentProgr2 = _this.getCurrentProgress(event),\n currentTime = _this$getCurrentProgr2.currentTime,\n currentTimePos = _this$getCurrentProgr2.currentTimePos;\n\n _this.timeOnMouseMove = currentTime;\n\n _this.setState({\n currentTimePos: currentTimePos\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleWindowMouseOrTouchUp\", function (event) {\n event.stopPropagation();\n var newTime = _this.timeOnMouseMove;\n var onSeek = _this.props.onSeek;\n\n if (onSeek) {\n _this.setState({\n isDraggingProgress: false,\n waitingForSeekCallback: true\n }, function () {\n onSeek(_this.props.audio, newTime).then(function () {\n return _this.setState({\n waitingForSeekCallback: false\n });\n });\n });\n } else {\n if (isFinite(newTime)) {\n _this.props.audio.currentTime = newTime;\n }\n\n _this.setState({\n isDraggingProgress: false\n });\n }\n\n if (event instanceof MouseEvent) {\n window.removeEventListener('mousemove', _this.handleWindowMouseOrTouchMove);\n window.removeEventListener('mouseup', _this.handleWindowMouseOrTouchUp);\n } else {\n window.removeEventListener('touchmove', _this.handleWindowMouseOrTouchMove);\n window.removeEventListener('touchend', _this.handleWindowMouseOrTouchUp);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleAudioTimeUpdate\", throttle(function (e) {\n var isDraggingProgress = _this.state.isDraggingProgress;\n var audio = e.target;\n if (isDraggingProgress || _this.state.waitingForSeekCallback === true) return;\n var currentTime = audio.currentTime;\n\n var duration = _this.getDuration();\n\n _this.setState({\n currentTimePos: (currentTime / duration * 100 || 0).toFixed(2) + \"%\"\n });\n }, _this.props.progressUpdateInterval));\n\n _defineProperty(_assertThisInitialized(_this), \"handleAudioDownloadProgressUpdate\", function (e) {\n var audio = e.target;\n\n var duration = _this.getDuration();\n\n var downloadProgressArr = [];\n\n for (var i = 0; i < audio.buffered.length; i++) {\n var bufferedStart = audio.buffered.start(i);\n var bufferedEnd = audio.buffered.end(i);\n downloadProgressArr.push({\n left: (Math.round(100 / duration * bufferedStart) || 0) + \"%\",\n width: (Math.round(100 / duration * (bufferedEnd - bufferedStart)) || 0) + \"%\"\n });\n }\n\n clearTimeout(_this.downloadProgressAnimationTimer);\n\n _this.setState({\n downloadProgressArr: downloadProgressArr,\n hasDownloadProgressAnimation: true\n });\n\n _this.downloadProgressAnimationTimer = setTimeout(function () {\n _this.setState({\n hasDownloadProgressAnimation: false\n });\n }, 200);\n });\n\n return _this;\n }\n\n var _proto = ProgressBar.prototype;\n\n _proto.getDuration = function getDuration() {\n var _this$props2 = this.props,\n audio = _this$props2.audio,\n srcDuration = _this$props2.srcDuration;\n return typeof srcDuration === 'undefined' ? audio.duration : srcDuration;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var audio = this.props.audio;\n\n if (audio && !this.hasAddedAudioEventListener) {\n this.audio = audio;\n this.hasAddedAudioEventListener = true;\n audio.addEventListener('timeupdate', this.handleAudioTimeUpdate);\n audio.addEventListener('progress', this.handleAudioDownloadProgressUpdate);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.audio && this.hasAddedAudioEventListener) {\n this.audio.removeEventListener('timeupdate', this.handleAudioTimeUpdate);\n this.audio.removeEventListener('progress', this.handleAudioDownloadProgressUpdate);\n }\n\n clearTimeout(this.downloadProgressAnimationTimer);\n };\n\n _proto.render = function render() {\n var _this$props3 = this.props,\n showDownloadProgress = _this$props3.showDownloadProgress,\n showFilledProgress = _this$props3.showFilledProgress,\n progressBar = _this$props3.progressBar;\n var _this$state = this.state,\n currentTimePos = _this$state.currentTimePos,\n downloadProgressArr = _this$state.downloadProgressArr,\n hasDownloadProgressAnimation = _this$state.hasDownloadProgressAnimation;\n return React.createElement(\"div\", {\n className: \"rhap_progress-container\",\n ref: progressBar,\n \"aria-label\": \"Audio Progress Control\",\n role: \"progressbar\",\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100,\n \"aria-valuenow\": Number(currentTimePos.split('%')[0]),\n tabIndex: 0,\n onMouseDown: this.handleMouseDownOrTouchStartProgressBar,\n onTouchStart: this.handleMouseDownOrTouchStartProgressBar,\n onContextMenu: this.handleContextMenu\n }, React.createElement(\"div\", {\n className: \"rhap_progress-bar \" + (showDownloadProgress ? 'rhap_progress-bar-show-download' : '')\n }, React.createElement(\"div\", {\n className: \"rhap_progress-indicator\",\n style: {\n left: currentTimePos\n }\n }), showFilledProgress && React.createElement(\"div\", {\n className: \"rhap_progress-filled\",\n style: {\n width: currentTimePos\n }\n }), showDownloadProgress && downloadProgressArr.map(function (_ref, i) {\n var left = _ref.left,\n width = _ref.width;\n return React.createElement(\"div\", {\n key: i,\n className: \"rhap_download-progress\",\n style: {\n left: left,\n width: width,\n transitionDuration: hasDownloadProgressAnimation ? '.2s' : '0s'\n }\n });\n })));\n };\n\n return ProgressBar;\n}(Component);\n\nvar ProgressBarForwardRef = function ProgressBarForwardRef(props, ref) {\n return React.createElement(ProgressBar, _extends({}, props, {\n progressBar: ref\n }));\n};\n\nexport default forwardRef(ProgressBarForwardRef);\nexport { ProgressBar, ProgressBarForwardRef };","export var RHAP_UI;\n\n(function (RHAP_UI) {\n RHAP_UI[\"CURRENT_TIME\"] = \"CURRENT_TIME\";\n RHAP_UI[\"CURRENT_LEFT_TIME\"] = \"CURRENT_LEFT_TIME\";\n RHAP_UI[\"PROGRESS_BAR\"] = \"PROGRESS_BAR\";\n RHAP_UI[\"DURATION\"] = \"DURATION\";\n RHAP_UI[\"ADDITIONAL_CONTROLS\"] = \"ADDITIONAL_CONTROLS\";\n RHAP_UI[\"MAIN_CONTROLS\"] = \"MAIN_CONTROLS\";\n RHAP_UI[\"VOLUME_CONTROLS\"] = \"VOLUME_CONTROLS\";\n RHAP_UI[\"LOOP\"] = \"LOOP\";\n RHAP_UI[\"VOLUME\"] = \"VOLUME\";\n})(RHAP_UI || (RHAP_UI = {}));","import _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport { PureComponent } from 'react';\nimport { getDisplayTimeBySeconds } from './utils';\n\nvar CurrentTime = function (_PureComponent) {\n _inheritsLoose(CurrentTime, _PureComponent);\n\n function CurrentTime() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _PureComponent.call.apply(_PureComponent, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"audio\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"hasAddedAudioEventListener\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n currentTime: _this.props.defaultCurrentTime\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleAudioCurrentTimeChange\", function (e) {\n var audio = e.target;\n var _this$props = _this.props,\n isLeftTime = _this$props.isLeftTime,\n timeFormat = _this$props.timeFormat,\n defaultCurrentTime = _this$props.defaultCurrentTime;\n\n _this.setState({\n currentTime: getDisplayTimeBySeconds(isLeftTime ? audio.duration - audio.currentTime : audio.currentTime, audio.duration, timeFormat) || defaultCurrentTime\n });\n });\n\n return _this;\n }\n\n var _proto = CurrentTime.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var audio = this.props.audio;\n\n if (audio && !this.hasAddedAudioEventListener) {\n this.audio = audio;\n this.hasAddedAudioEventListener = true;\n audio.addEventListener('timeupdate', this.handleAudioCurrentTimeChange);\n audio.addEventListener('loadedmetadata', this.handleAudioCurrentTimeChange);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.audio && this.hasAddedAudioEventListener) {\n this.audio.removeEventListener('timeupdate', this.handleAudioCurrentTimeChange);\n this.audio.removeEventListener('loadedmetadata', this.handleAudioCurrentTimeChange);\n }\n };\n\n _proto.render = function render() {\n return this.state.currentTime;\n };\n\n return CurrentTime;\n}(PureComponent);\n\nexport default CurrentTime;","import _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport { PureComponent } from 'react';\nimport { getDisplayTimeBySeconds } from './utils';\n\nvar Duration = function (_PureComponent) {\n _inheritsLoose(Duration, _PureComponent);\n\n function Duration() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _PureComponent.call.apply(_PureComponent, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"audio\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"hasAddedAudioEventListener\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n duration: _this.props.defaultDuration\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleAudioDurationChange\", function (e) {\n var audio = e.target;\n var _this$props = _this.props,\n timeFormat = _this$props.timeFormat,\n defaultDuration = _this$props.defaultDuration;\n\n _this.setState({\n duration: getDisplayTimeBySeconds(audio.duration, audio.duration, timeFormat) || defaultDuration\n });\n });\n\n return _this;\n }\n\n var _proto = Duration.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var audio = this.props.audio;\n\n if (audio && !this.hasAddedAudioEventListener) {\n this.audio = audio;\n this.hasAddedAudioEventListener = true;\n audio.addEventListener('durationchange', this.handleAudioDurationChange);\n audio.addEventListener('abort', this.handleAudioDurationChange);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.audio && this.hasAddedAudioEventListener) {\n this.audio.removeEventListener('durationchange', this.handleAudioDurationChange);\n this.audio.removeEventListener('abort', this.handleAudioDurationChange);\n }\n };\n\n _proto.render = function render() {\n return this.state.duration;\n };\n\n return Duration;\n}(PureComponent);\n\nexport default Duration;","import \"core-js/modules/es6.number.constructor\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport React, { Component, createRef } from 'react';\nimport { getPosX } from './utils';\n\nvar VolumeControls = function (_Component) {\n _inheritsLoose(VolumeControls, _Component);\n\n function VolumeControls() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"audio\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"hasAddedAudioEventListener\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"volumeBar\", createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"volumeAnimationTimer\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"lastVolume\", _this.props.volume);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n currentVolumePos: (_this.lastVolume / 1 * 100 || 0).toFixed(2) + \"%\",\n hasVolumeAnimation: false,\n isDraggingVolume: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getCurrentVolume\", function (event) {\n var audio = _this.props.audio;\n\n if (!_this.volumeBar.current) {\n return {\n currentVolume: audio.volume,\n currentVolumePos: _this.state.currentVolumePos\n };\n }\n\n var volumeBarRect = _this.volumeBar.current.getBoundingClientRect();\n\n var maxRelativePos = volumeBarRect.width;\n var relativePos = getPosX(event) - volumeBarRect.left;\n var currentVolume;\n var currentVolumePos;\n\n if (relativePos < 0) {\n currentVolume = 0;\n currentVolumePos = '0%';\n } else if (relativePos > volumeBarRect.width) {\n currentVolume = 1;\n currentVolumePos = '100%';\n } else {\n currentVolume = relativePos / maxRelativePos;\n currentVolumePos = relativePos / maxRelativePos * 100 + \"%\";\n }\n\n return {\n currentVolume: currentVolume,\n currentVolumePos: currentVolumePos\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleContextMenu\", function (event) {\n event.preventDefault();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickVolumeButton\", function () {\n var audio = _this.props.audio;\n\n if (audio.volume > 0) {\n _this.lastVolume = audio.volume;\n audio.volume = 0;\n } else {\n audio.volume = _this.lastVolume;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleVolumnControlMouseOrTouchDown\", function (event) {\n event.stopPropagation();\n var audio = _this.props.audio;\n\n var _this$getCurrentVolum = _this.getCurrentVolume(event.nativeEvent),\n currentVolume = _this$getCurrentVolum.currentVolume,\n currentVolumePos = _this$getCurrentVolum.currentVolumePos;\n\n audio.volume = currentVolume;\n\n _this.setState({\n isDraggingVolume: true,\n currentVolumePos: currentVolumePos\n });\n\n if (event.nativeEvent instanceof MouseEvent) {\n window.addEventListener('mousemove', _this.handleWindowMouseOrTouchMove);\n window.addEventListener('mouseup', _this.handleWindowMouseOrTouchUp);\n } else {\n window.addEventListener('touchmove', _this.handleWindowMouseOrTouchMove);\n window.addEventListener('touchend', _this.handleWindowMouseOrTouchUp);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleWindowMouseOrTouchMove\", function (event) {\n event.preventDefault();\n event.stopPropagation();\n var audio = _this.props.audio;\n var windowSelection = window.getSelection();\n\n if (windowSelection && windowSelection.type === 'Range') {\n windowSelection.empty();\n }\n\n var isDraggingVolume = _this.state.isDraggingVolume;\n\n if (isDraggingVolume) {\n var _this$getCurrentVolum2 = _this.getCurrentVolume(event),\n currentVolume = _this$getCurrentVolum2.currentVolume,\n currentVolumePos = _this$getCurrentVolum2.currentVolumePos;\n\n audio.volume = currentVolume;\n\n _this.setState({\n currentVolumePos: currentVolumePos\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleWindowMouseOrTouchUp\", function (event) {\n event.stopPropagation();\n\n _this.setState({\n isDraggingVolume: false\n });\n\n if (event instanceof MouseEvent) {\n window.removeEventListener('mousemove', _this.handleWindowMouseOrTouchMove);\n window.removeEventListener('mouseup', _this.handleWindowMouseOrTouchUp);\n } else {\n window.removeEventListener('touchmove', _this.handleWindowMouseOrTouchMove);\n window.removeEventListener('touchend', _this.handleWindowMouseOrTouchUp);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleAudioVolumeChange\", function (e) {\n var isDraggingVolume = _this.state.isDraggingVolume;\n var _ref = e.target,\n volume = _ref.volume;\n\n if (_this.lastVolume > 0 && volume === 0 || _this.lastVolume === 0 && volume > 0) {\n _this.props.onMuteChange();\n }\n\n _this.lastVolume = volume;\n if (isDraggingVolume) return;\n\n _this.setState({\n hasVolumeAnimation: true,\n currentVolumePos: (volume / 1 * 100 || 0).toFixed(2) + \"%\"\n });\n\n clearTimeout(_this.volumeAnimationTimer);\n _this.volumeAnimationTimer = setTimeout(function () {\n _this.setState({\n hasVolumeAnimation: false\n });\n }, 100);\n });\n\n return _this;\n }\n\n var _proto = VolumeControls.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var audio = this.props.audio;\n\n if (audio && !this.hasAddedAudioEventListener) {\n this.audio = audio;\n this.hasAddedAudioEventListener = true;\n audio.addEventListener('volumechange', this.handleAudioVolumeChange);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.audio && this.hasAddedAudioEventListener) {\n this.audio.removeEventListener('volumechange', this.handleAudioVolumeChange);\n }\n\n clearTimeout(this.volumeAnimationTimer);\n };\n\n _proto.render = function render() {\n var audio = this.props.audio;\n var _this$state = this.state,\n currentVolumePos = _this$state.currentVolumePos,\n hasVolumeAnimation = _this$state.hasVolumeAnimation;\n\n var _ref2 = audio || {},\n volume = _ref2.volume;\n\n return React.createElement(\"div\", {\n ref: this.volumeBar,\n onMouseDown: this.handleVolumnControlMouseOrTouchDown,\n onTouchStart: this.handleVolumnControlMouseOrTouchDown,\n onContextMenu: this.handleContextMenu,\n role: \"progressbar\",\n \"aria-label\": \"volume Control\",\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100,\n \"aria-valuenow\": Number((volume * 100).toFixed(0)),\n tabIndex: 0,\n className: \"rhap_volume-bar-area\"\n }, React.createElement(\"div\", {\n className: \"rhap_volume-bar\"\n }, React.createElement(\"div\", {\n className: \"rhap_volume-indicator\",\n style: {\n left: currentVolumePos,\n transitionDuration: hasVolumeAnimation ? '.1s' : '0s'\n }\n })));\n };\n\n return VolumeControls;\n}(Component);\n\nexport default VolumeControls;","import \"core-js/modules/es6.array.map\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport React, { Component, cloneElement, isValidElement, createRef } from 'react';\nimport { Icon } from '@iconify/react';\nimport playCircle from '@iconify/icons-mdi/play-circle';\nimport pauseCircle from '@iconify/icons-mdi/pause-circle';\nimport skipPrevious from '@iconify/icons-mdi/skip-previous';\nimport skipNext from '@iconify/icons-mdi/skip-next';\nimport fastForward from '@iconify/icons-mdi/fast-forward';\nimport rewind from '@iconify/icons-mdi/rewind';\nimport volumeHigh from '@iconify/icons-mdi/volume-high';\nimport volumeMute from '@iconify/icons-mdi/volume-mute';\nimport repeat from '@iconify/icons-mdi/repeat';\nimport repeatOff from '@iconify/icons-mdi/repeat-off';\nimport ProgressBar from './ProgressBar';\nimport CurrentTime from './CurrentTime';\nimport Duration from './Duration';\nimport VolumeBar from './VolumeBar';\nimport { RHAP_UI } from './constants';\nimport { throttle, getMainLayoutClassName, getDisplayTimeBySeconds } from './utils';\n\nvar H5AudioPlayer = function (_Component) {\n _inheritsLoose(H5AudioPlayer, _Component);\n\n function H5AudioPlayer() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"audio\", createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"progressBar\", createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"container\", createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"lastVolume\", _this.props.volume);\n\n _defineProperty(_assertThisInitialized(_this), \"listenTracker\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"volumeAnimationTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"downloadProgressAnimationTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"togglePlay\", function (e) {\n e.stopPropagation();\n var audio = _this.audio.current;\n\n if (audio.paused && audio.src) {\n _this.playAudioPromise();\n } else if (!audio.paused) {\n audio.pause();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"playAudioPromise\", function () {\n _this.audio.current.play().then(null)[\"catch\"](function (err) {\n var onPlayError = _this.props.onPlayError;\n onPlayError && onPlayError(new Error(err));\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"isPlaying\", function () {\n var audio = _this.audio.current;\n if (!audio) return false;\n return !audio.paused && !audio.ended;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handlePlay\", function (e) {\n _this.forceUpdate();\n\n _this.props.onPlay && _this.props.onPlay(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handlePause\", function (e) {\n if (!_this.audio) return;\n\n _this.forceUpdate();\n\n _this.props.onPause && _this.props.onPause(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleAbort\", function (e) {\n _this.props.onAbort && _this.props.onAbort(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickVolumeButton\", function () {\n var audio = _this.audio.current;\n\n if (audio.volume > 0) {\n _this.lastVolume = audio.volume;\n audio.volume = 0;\n } else {\n audio.volume = _this.lastVolume;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMuteChange\", function () {\n _this.forceUpdate();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickLoopButton\", function () {\n _this.audio.current.loop = !_this.audio.current.loop;\n\n _this.forceUpdate();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickRewind\", function () {\n var _this$props = _this.props,\n progressJumpSteps = _this$props.progressJumpSteps,\n progressJumpStep = _this$props.progressJumpStep;\n var jumpStep = progressJumpSteps.backward || progressJumpStep;\n\n _this.setJumpTime(-jumpStep);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickForward\", function () {\n var _this$props2 = _this.props,\n progressJumpSteps = _this$props2.progressJumpSteps,\n progressJumpStep = _this$props2.progressJumpStep;\n var jumpStep = progressJumpSteps.forward || progressJumpStep;\n\n _this.setJumpTime(jumpStep);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setJumpTime\", function (time) {\n var audio = _this.audio.current;\n var duration = audio.duration,\n prevTime = audio.currentTime;\n if (!isFinite(duration) || !isFinite(prevTime)) return;\n var currentTime = prevTime + time / 1000;\n\n if (currentTime < 0) {\n audio.currentTime = 0;\n currentTime = 0;\n } else if (currentTime > duration) {\n audio.currentTime = duration;\n currentTime = duration;\n } else {\n audio.currentTime = currentTime;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setJumpVolume\", function (volume) {\n var newVolume = _this.audio.current.volume + volume;\n if (newVolume < 0) newVolume = 0;else if (newVolume > 1) newVolume = 1;\n _this.audio.current.volume = newVolume;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleKeyDown\", function (e) {\n switch (e.keyCode) {\n case 32:\n if (e.target === _this.container.current || e.target === _this.progressBar.current) {\n e.preventDefault();\n\n _this.togglePlay(e);\n }\n\n break;\n\n case 37:\n _this.handleClickRewind();\n\n break;\n\n case 39:\n _this.handleClickForward();\n\n break;\n\n case 38:\n e.preventDefault();\n\n _this.setJumpVolume(_this.props.volumeJumpStep);\n\n break;\n\n case 40:\n e.preventDefault();\n\n _this.setJumpVolume(-_this.props.volumeJumpStep);\n\n break;\n\n case 76:\n _this.handleClickLoopButton();\n\n break;\n\n case 77:\n _this.handleClickVolumeButton();\n\n break;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderUIModules\", function (modules) {\n return modules.map(function (comp, i) {\n return _this.renderUIModule(comp, i);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderUIModule\", function (comp, key) {\n var _this$props3 = _this.props,\n defaultCurrentTime = _this$props3.defaultCurrentTime,\n progressUpdateInterval = _this$props3.progressUpdateInterval,\n showDownloadProgress = _this$props3.showDownloadProgress,\n showFilledProgress = _this$props3.showFilledProgress,\n defaultDuration = _this$props3.defaultDuration,\n customIcons = _this$props3.customIcons,\n showSkipControls = _this$props3.showSkipControls,\n onClickPrevious = _this$props3.onClickPrevious,\n onClickNext = _this$props3.onClickNext,\n showJumpControls = _this$props3.showJumpControls,\n customAdditionalControls = _this$props3.customAdditionalControls,\n customVolumeControls = _this$props3.customVolumeControls,\n muted = _this$props3.muted,\n timeFormat = _this$props3.timeFormat,\n volumeProp = _this$props3.volume,\n loopProp = _this$props3.loop,\n mse = _this$props3.mse;\n\n switch (comp) {\n case RHAP_UI.CURRENT_TIME:\n return React.createElement(\"div\", {\n key: key,\n id: \"rhap_current-time\",\n className: \"rhap_time rhap_current-time\"\n }, React.createElement(CurrentTime, {\n audio: _this.audio.current,\n isLeftTime: false,\n defaultCurrentTime: defaultCurrentTime,\n timeFormat: timeFormat\n }));\n\n case RHAP_UI.CURRENT_LEFT_TIME:\n return React.createElement(\"div\", {\n key: key,\n id: \"rhap_current-left-time\",\n className: \"rhap_time rhap_current-left-time\"\n }, React.createElement(CurrentTime, {\n audio: _this.audio.current,\n isLeftTime: true,\n defaultCurrentTime: defaultCurrentTime,\n timeFormat: timeFormat\n }));\n\n case RHAP_UI.PROGRESS_BAR:\n return React.createElement(ProgressBar, {\n key: key,\n ref: _this.progressBar,\n audio: _this.audio.current,\n progressUpdateInterval: progressUpdateInterval,\n showDownloadProgress: showDownloadProgress,\n showFilledProgress: showFilledProgress,\n onSeek: mse && mse.onSeek,\n srcDuration: mse && mse.srcDuration\n });\n\n case RHAP_UI.DURATION:\n return React.createElement(\"div\", {\n key: key,\n className: \"rhap_time rhap_total-time\"\n }, mse && mse.srcDuration ? getDisplayTimeBySeconds(mse.srcDuration, mse.srcDuration, _this.props.timeFormat) : React.createElement(Duration, {\n audio: _this.audio.current,\n defaultDuration: defaultDuration,\n timeFormat: timeFormat\n }));\n\n case RHAP_UI.ADDITIONAL_CONTROLS:\n return React.createElement(\"div\", {\n key: key,\n className: \"rhap_additional-controls\"\n }, _this.renderUIModules(customAdditionalControls));\n\n case RHAP_UI.MAIN_CONTROLS:\n {\n var isPlaying = _this.isPlaying();\n\n var actionIcon;\n\n if (isPlaying) {\n actionIcon = customIcons.pause ? customIcons.pause : React.createElement(Icon, {\n icon: pauseCircle\n });\n } else {\n actionIcon = customIcons.play ? customIcons.play : React.createElement(Icon, {\n icon: playCircle\n });\n }\n\n return React.createElement(\"div\", {\n key: key,\n className: \"rhap_main-controls\"\n }, showSkipControls && React.createElement(\"button\", {\n \"aria-label\": \"Previous\",\n className: \"rhap_button-clear rhap_main-controls-button rhap_skip-button\",\n type: \"button\",\n onClick: onClickPrevious\n }, customIcons.previous ? customIcons.previous : React.createElement(Icon, {\n icon: skipPrevious\n })), showJumpControls && React.createElement(\"button\", {\n \"aria-label\": \"Rewind\",\n className: \"rhap_button-clear rhap_main-controls-button rhap_rewind-button\",\n type: \"button\",\n onClick: _this.handleClickRewind\n }, customIcons.rewind ? customIcons.rewind : React.createElement(Icon, {\n icon: rewind\n })), React.createElement(\"button\", {\n \"aria-label\": isPlaying ? 'Pause' : 'Play',\n className: \"rhap_button-clear rhap_main-controls-button rhap_play-pause-button\",\n type: \"button\",\n onClick: _this.togglePlay\n }, actionIcon), showJumpControls && React.createElement(\"button\", {\n \"aria-label\": \"Forward\",\n className: \"rhap_button-clear rhap_main-controls-button rhap_forward-button\",\n type: \"button\",\n onClick: _this.handleClickForward\n }, customIcons.forward ? customIcons.forward : React.createElement(Icon, {\n icon: fastForward\n })), showSkipControls && React.createElement(\"button\", {\n \"aria-label\": \"Skip\",\n className: \"rhap_button-clear rhap_main-controls-button rhap_skip-button\",\n type: \"button\",\n onClick: onClickNext\n }, customIcons.next ? customIcons.next : React.createElement(Icon, {\n icon: skipNext\n })));\n }\n\n case RHAP_UI.VOLUME_CONTROLS:\n return React.createElement(\"div\", {\n key: key,\n className: \"rhap_volume-controls\"\n }, _this.renderUIModules(customVolumeControls));\n\n case RHAP_UI.LOOP:\n {\n var loop = _this.audio.current ? _this.audio.current.loop : loopProp;\n var loopIcon;\n\n if (loop) {\n loopIcon = customIcons.loop ? customIcons.loop : React.createElement(Icon, {\n icon: repeat\n });\n } else {\n loopIcon = customIcons.loopOff ? customIcons.loopOff : React.createElement(Icon, {\n icon: repeatOff\n });\n }\n\n return React.createElement(\"button\", {\n key: key,\n \"aria-label\": loop ? 'Enable Loop' : 'Disable Loop',\n className: \"rhap_button-clear rhap_repeat-button\",\n type: \"button\",\n onClick: _this.handleClickLoopButton\n }, loopIcon);\n }\n\n case RHAP_UI.VOLUME:\n {\n var _ref = _this.audio.current || {},\n _ref$volume = _ref.volume,\n volume = _ref$volume === void 0 ? muted ? 0 : volumeProp : _ref$volume;\n\n var volumeIcon;\n\n if (volume) {\n volumeIcon = customIcons.volume ? customIcons.volume : React.createElement(Icon, {\n icon: volumeHigh\n });\n } else {\n volumeIcon = customIcons.volume ? customIcons.volumeMute : React.createElement(Icon, {\n icon: volumeMute\n });\n }\n\n return React.createElement(\"div\", {\n key: key,\n className: \"rhap_volume-container\"\n }, React.createElement(\"button\", {\n \"aria-label\": volume ? 'Mute' : 'Unmute',\n onClick: _this.handleClickVolumeButton,\n type: \"button\",\n className: \"rhap_button-clear rhap_volume-button\"\n }, volumeIcon), React.createElement(VolumeBar, {\n audio: _this.audio.current,\n volume: volume,\n onMuteChange: _this.handleMuteChange\n }));\n }\n\n default:\n if (!isValidElement(comp)) {\n return null;\n }\n\n return comp.key ? comp : cloneElement(comp, {\n key: key\n });\n }\n });\n\n return _this;\n }\n\n var _proto = H5AudioPlayer.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n this.forceUpdate();\n var audio = this.audio.current;\n\n if (this.props.muted) {\n audio.volume = 0;\n } else {\n audio.volume = this.lastVolume;\n }\n\n audio.addEventListener('error', function (e) {\n _this2.props.onError && _this2.props.onError(e);\n });\n audio.addEventListener('canplay', function (e) {\n _this2.props.onCanPlay && _this2.props.onCanPlay(e);\n });\n audio.addEventListener('canplaythrough', function (e) {\n _this2.props.onCanPlayThrough && _this2.props.onCanPlayThrough(e);\n });\n audio.addEventListener('play', this.handlePlay);\n audio.addEventListener('abort', this.handleAbort);\n audio.addEventListener('ended', function (e) {\n _this2.props.onEnded && _this2.props.onEnded(e);\n });\n audio.addEventListener('pause', this.handlePause);\n audio.addEventListener('timeupdate', throttle(function (e) {\n _this2.props.onListen && _this2.props.onListen(e);\n }, this.props.listenInterval));\n audio.addEventListener('volumechange', function (e) {\n _this2.props.onVolumeChange && _this2.props.onVolumeChange(e);\n });\n audio.addEventListener('encrypted', function (e) {\n var mse = _this2.props.mse;\n mse && mse.onEcrypted && mse.onEcrypted(e);\n });\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props4 = this.props,\n src = _this$props4.src,\n autoPlayAfterSrcChange = _this$props4.autoPlayAfterSrcChange;\n\n if (prevProps.src !== src) {\n if (autoPlayAfterSrcChange) {\n this.playAudioPromise();\n } else {\n this.forceUpdate();\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var audio = this.audio.current;\n\n if (audio) {\n audio.removeEventListener('play', this.handlePlay);\n audio.removeEventListener('pause', this.handlePause);\n audio.removeEventListener('abort', this.handleAbort);\n audio.removeAttribute('src');\n audio.load();\n }\n };\n\n _proto.render = function render() {\n var _this$props5 = this.props,\n className = _this$props5.className,\n src = _this$props5.src,\n loopProp = _this$props5.loop,\n preload = _this$props5.preload,\n autoPlay = _this$props5.autoPlay,\n crossOrigin = _this$props5.crossOrigin,\n mediaGroup = _this$props5.mediaGroup,\n header = _this$props5.header,\n footer = _this$props5.footer,\n layout = _this$props5.layout,\n customProgressBarSection = _this$props5.customProgressBarSection,\n customControlsSection = _this$props5.customControlsSection,\n children = _this$props5.children,\n style = _this$props5.style;\n var loop = this.audio.current ? this.audio.current.loop : loopProp;\n return React.createElement(\"div\", {\n role: \"group\",\n tabIndex: 0,\n \"aria-label\": \"Audio Player\",\n className: \"rhap_container \" + className,\n onKeyDown: this.handleKeyDown,\n ref: this.container,\n style: style\n }, React.createElement(\"audio\", {\n src: src,\n controls: false,\n loop: loop,\n autoPlay: autoPlay,\n preload: preload,\n crossOrigin: crossOrigin,\n mediaGroup: mediaGroup,\n ref: this.audio\n }, children), header && React.createElement(\"div\", {\n className: \"rhap_header\"\n }, header), React.createElement(\"div\", {\n className: \"rhap_main \" + getMainLayoutClassName(layout)\n }, React.createElement(\"div\", {\n className: \"rhap_progress-section\"\n }, this.renderUIModules(customProgressBarSection)), React.createElement(\"div\", {\n className: \"rhap_controls-section\"\n }, this.renderUIModules(customControlsSection))), footer && React.createElement(\"div\", {\n className: \"rhap_footer\"\n }, footer));\n };\n\n return H5AudioPlayer;\n}(Component);\n\n_defineProperty(H5AudioPlayer, \"defaultProps\", {\n autoPlay: false,\n autoPlayAfterSrcChange: true,\n listenInterval: 1000,\n progressJumpStep: 5000,\n progressJumpSteps: {},\n volumeJumpStep: 0.1,\n loop: false,\n muted: false,\n preload: 'auto',\n progressUpdateInterval: 20,\n defaultCurrentTime: '--:--',\n defaultDuration: '--:--',\n timeFormat: 'auto',\n volume: 1,\n className: '',\n showJumpControls: true,\n showSkipControls: false,\n showDownloadProgress: true,\n showFilledProgress: true,\n customIcons: {},\n customProgressBarSection: [RHAP_UI.CURRENT_TIME, RHAP_UI.PROGRESS_BAR, RHAP_UI.DURATION],\n customControlsSection: [RHAP_UI.ADDITIONAL_CONTROLS, RHAP_UI.MAIN_CONTROLS, RHAP_UI.VOLUME_CONTROLS],\n customAdditionalControls: [RHAP_UI.LOOP],\n customVolumeControls: [RHAP_UI.VOLUME],\n layout: 'stacked'\n});\n\nexport default H5AudioPlayer;\nexport { RHAP_UI };","import React from 'react';\n\nimport ReactMarkdown from \"react-markdown\"\nimport StrapiImage from \"../components/StrapiImage.js\"\nimport Graph from \"../components/graph.js\"\nimport Video from \"./WistiaEmbed.js\"\nimport AudioPlayer from 'react-h5-audio-player';\nimport 'react-h5-audio-player/lib/styles.css';\nimport withLocation from \"./withLocation\"\n\nconst ArticleContent = props => {\n\n let Location = props.location.pathname\n\n if(props.data.Content !== null){\n if(props.data.Type === \"Pullout\"){\n return(
)\n }else{\n return()\n }\n }else if(props.data.Image !== null){\n return(\n\n
\n \n
{props.data.caption}
\n
)\n }else if(props.data.graph !== null){\n return()\n }else if(props.data.wistia_id !== null){\n return(