{"version":3,"file":"static/js/main.5609fc7c.js","mappings":"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","sources":["../node_modules/classnames/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/warning/warning.js","../../node_modules/call-bind/callBound.js","../../node_modules/call-bind/index.js","../../node_modules/deep-equal/index.js","../../node_modules/define-properties/index.js","../../node_modules/function-bind/implementation.js","../../node_modules/function-bind/index.js","../../node_modules/functions-have-names/index.js","../../node_modules/get-intrinsic/index.js","../../node_modules/global/window.js","../../node_modules/has-property-descriptors/index.js","../../node_modules/has-symbols/index.js","../../node_modules/has-symbols/shams.js","../../node_modules/has-tostringtag/shams.js","../../node_modules/has/src/index.js","../../node_modules/is-arguments/index.js","../../node_modules/is-date-object/index.js","../../node_modules/is-regex/index.js","../../node_modules/object-assign/index.js","../../node_modules/object-is/implementation.js","../../node_modules/object-is/index.js","../../node_modules/object-is/polyfill.js","../../node_modules/object-is/shim.js","../../node_modules/object-keys/implementation.js","../../node_modules/object-keys/index.js","../../node_modules/object-keys/isArguments.js","../../node_modules/performance-now/lib/performance-now.js","../../node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/prop-types/index.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/raf/index.js","../../node_modules/raf/node_modules/performance-now/src/performance-now.coffee","../../node_modules/react-motion/lib/Motion.js","../../node_modules/react-motion/lib/StaggeredMotion.js","../../node_modules/react-motion/lib/TransitionMotion.js","../../node_modules/react-motion/lib/mapToZero.js","../../node_modules/react-motion/lib/mergeDiff.js","../../node_modules/react-motion/lib/presets.js","../../node_modules/react-motion/lib/react-motion.js","../../node_modules/react-motion/lib/reorderKeys.js","../../node_modules/react-motion/lib/shouldStopAnimation.js","../../node_modules/react-motion/lib/spring.js","../../node_modules/react-motion/lib/stepper.js","../../node_modules/react-motion/lib/stripStyle.js","../../node_modules/react/cjs/react.production.min.js","../../node_modules/react/index.js","../../node_modules/regexp.prototype.flags/implementation.js","../../node_modules/regexp.prototype.flags/index.js","../../node_modules/regexp.prototype.flags/polyfill.js","../../node_modules/regexp.prototype.flags/shim.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../../packages/react-router/lib/context.ts","../../packages/react-router/lib/router.ts","../../packages/react-router/lib/hooks.tsx","../../packages/react-router/lib/components.tsx","../../packages/react-router-dom/index.tsx","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","components/Contact.js","components/Privacy.js","components/Counter.js","components/PastProjects.js","components/ProgressLog.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","components/FetchData.js","../../node_modules/d3-time/src/interval.js","../../node_modules/d3-time/src/duration.js","../../node_modules/d3-time/src/utcWeek.js","../../node_modules/d3-time/src/utcDay.js","../../node_modules/d3-time/src/week.js","../../node_modules/d3-time/src/day.js","../../node_modules/d3-time/src/year.js","../../node_modules/d3-time/src/utcYear.js","../../node_modules/d3-time-format/src/locale.js","../../node_modules/d3-time-format/src/defaultLocale.js","../../node_modules/d3-voronoi/src/constant.js","../../node_modules/d3-voronoi/src/point.js","../../node_modules/d3-voronoi/src/RedBlackTree.js","../../node_modules/d3-voronoi/src/Edge.js","../../node_modules/d3-voronoi/src/Cell.js","../../node_modules/d3-voronoi/src/Circle.js","../../node_modules/d3-voronoi/src/Beach.js","../../node_modules/d3-voronoi/src/Diagram.js","../../node_modules/d3-voronoi/src/voronoi.js","../../node_modules/d3-color/src/define.js","../../node_modules/d3-color/src/color.js","../../node_modules/d3-interpolate/src/basis.js","../../node_modules/d3-interpolate/src/constant.js","../../node_modules/d3-interpolate/src/color.js","../../node_modules/d3-interpolate/src/rgb.js","../../node_modules/d3-interpolate/src/basisClosed.js","../../node_modules/d3-interpolate/src/array.js","../../node_modules/d3-interpolate/src/date.js","../../node_modules/d3-interpolate/src/number.js","../../node_modules/d3-interpolate/src/object.js","../../node_modules/d3-interpolate/src/string.js","../../node_modules/d3-interpolate/src/numberArray.js","../../node_modules/d3-interpolate/src/value.js","../../node_modules/react-vis/es/animation.js","../../node_modules/d3-array/src/ascending.js","../../node_modules/d3-array/src/bisector.js","../../node_modules/d3-array/src/bisect.js","../../node_modules/d3-array/src/extent.js","../../node_modules/d3-array/src/array.js","../../node_modules/d3-array/src/ticks.js","../../node_modules/d3-array/src/threshold/sturges.js","../../node_modules/d3-array/src/min.js","../../node_modules/d3-array/src/range.js","../../node_modules/d3-array/src/sum.js","../../node_modules/d3-collection/src/map.js","../../node_modules/d3-collection/src/nest.js","../../node_modules/d3-collection/src/set.js","../../node_modules/d3-scale/src/array.js","../../node_modules/d3-scale/src/ordinal.js","../../node_modules/d3-scale/src/band.js","../../node_modules/d3-interpolate/src/round.js","../../node_modules/d3-scale/src/constant.js","../../node_modules/d3-scale/src/number.js","../../node_modules/d3-scale/src/continuous.js","../../node_modules/d3-format/src/formatSpecifier.js","../../node_modules/d3-format/src/formatPrefixAuto.js","../../node_modules/d3-format/src/formatDecimal.js","../../node_modules/d3-format/src/exponent.js","../../node_modules/d3-format/src/formatRounded.js","../../node_modules/d3-format/src/formatTypes.js","../../node_modules/d3-format/src/identity.js","../../node_modules/d3-format/src/locale.js","../../node_modules/d3-format/src/defaultLocale.js","../../node_modules/d3-format/src/formatGroup.js","../../node_modules/d3-format/src/formatNumerals.js","../../node_modules/d3-format/src/formatTrim.js","../../node_modules/d3-scale/src/tickFormat.js","../../node_modules/d3-format/src/precisionPrefix.js","../../node_modules/d3-format/src/precisionRound.js","../../node_modules/d3-format/src/precisionFixed.js","../../node_modules/d3-scale/src/linear.js","../../node_modules/d3-scale/src/nice.js","../../node_modules/d3-scale/src/log.js","../../node_modules/d3-scale/src/pow.js","../../node_modules/d3-time/src/month.js","../../node_modules/d3-time/src/hour.js","../../node_modules/d3-time/src/minute.js","../../node_modules/d3-time/src/second.js","../../node_modules/d3-time/src/millisecond.js","../../node_modules/d3-scale/src/time.js","../../node_modules/d3-time/src/utcMonth.js","../../node_modules/d3-time/src/utcHour.js","../../node_modules/d3-time/src/utcMinute.js","../../node_modules/d3-scale/src/colors.js","../../node_modules/d3-scale/src/category10.js","../../node_modules/d3-scale/src/category20b.js","../../node_modules/d3-scale/src/category20c.js","../../node_modules/d3-scale/src/category20.js","../../node_modules/d3-color/src/math.js","../../node_modules/d3-color/src/cubehelix.js","../../node_modules/d3-interpolate/src/cubehelix.js","../../node_modules/d3-scale/src/cubehelix.js","../../node_modules/d3-scale/src/rainbow.js","../../node_modules/d3-scale/src/viridis.js","../../node_modules/react-vis/es/utils/react-utils.js","../../node_modules/react-vis/es/utils/data-utils.js","../../node_modules/react-vis/es/utils/scales-utils.js","../../node_modules/d3-scale/src/utcTime.js","../../node_modules/react-vis/es/plot/series/abstract-series.js","../../node_modules/react-vis/es/theme.js","../../node_modules/react-vis/es/utils/series-utils.js","../../node_modules/d3-path/src/path.js","../../node_modules/d3-shape/src/constant.js","../../node_modules/d3-shape/src/math.js","../../node_modules/d3-shape/src/arc.js","../../node_modules/react-vis/es/plot/series/arc-series.js","../../node_modules/d3-shape/src/curve/linear.js","../../node_modules/d3-shape/src/point.js","../../node_modules/d3-shape/src/line.js","../../node_modules/d3-shape/src/area.js","../../node_modules/d3-shape/src/descending.js","../../node_modules/d3-shape/src/identity.js","../../node_modules/d3-shape/src/pie.js","../../node_modules/d3-shape/src/curve/radial.js","../../node_modules/d3-shape/src/lineRadial.js","../../node_modules/d3-shape/src/areaRadial.js","../../node_modules/d3-shape/src/pointRadial.js","../../node_modules/d3-shape/src/array.js","../../node_modules/d3-shape/src/link/index.js","../../node_modules/d3-shape/src/symbol/circle.js","../../node_modules/d3-shape/src/symbol/cross.js","../../node_modules/d3-shape/src/symbol/diamond.js","../../node_modules/d3-shape/src/symbol/star.js","../../node_modules/d3-shape/src/symbol/square.js","../../node_modules/d3-shape/src/symbol/triangle.js","../../node_modules/d3-shape/src/symbol/wye.js","../../node_modules/d3-shape/src/symbol.js","../../node_modules/d3-shape/src/noop.js","../../node_modules/d3-shape/src/curve/basis.js","../../node_modules/d3-shape/src/curve/basisClosed.js","../../node_modules/d3-shape/src/curve/basisOpen.js","../../node_modules/d3-shape/src/curve/bundle.js","../../node_modules/d3-shape/src/curve/cardinal.js","../../node_modules/d3-shape/src/curve/cardinalClosed.js","../../node_modules/d3-shape/src/curve/cardinalOpen.js","../../node_modules/d3-shape/src/curve/catmullRom.js","../../node_modules/d3-shape/src/curve/catmullRomClosed.js","../../node_modules/d3-shape/src/curve/catmullRomOpen.js","../../node_modules/d3-shape/src/curve/linearClosed.js","../../node_modules/d3-shape/src/curve/monotone.js","../../node_modules/d3-shape/src/curve/natural.js","../../node_modules/d3-shape/src/curve/step.js","../../node_modules/d3-shape/src/offset/none.js","../../node_modules/d3-shape/src/order/none.js","../../node_modules/d3-shape/src/stack.js","../../node_modules/d3-shape/src/offset/expand.js","../../node_modules/d3-shape/src/offset/diverging.js","../../node_modules/d3-shape/src/offset/silhouette.js","../../node_modules/d3-shape/src/offset/wiggle.js","../../node_modules/d3-shape/src/order/appearance.js","../../node_modules/d3-shape/src/order/ascending.js","../../node_modules/d3-shape/src/order/descending.js","../../node_modules/d3-shape/src/order/insideOut.js","../../node_modules/d3-shape/src/order/reverse.js","../../node_modules/react-vis/es/plot/series/area-series.js","../../node_modules/react-vis/es/plot/borders.js","../../node_modules/react-vis/es/plot/chart-label.js","../../node_modules/react-vis/es/utils/axis-utils.js","../../node_modules/react-vis/es/plot/circular-grid-lines.js","../../node_modules/d3-contour/src/array.js","../../node_modules/d3-contour/src/ascending.js","../../node_modules/d3-contour/src/constant.js","../../node_modules/d3-contour/src/contains.js","../../node_modules/d3-contour/src/noop.js","../../node_modules/d3-contour/src/contours.js","../../node_modules/d3-contour/src/area.js","../../node_modules/d3-contour/src/blur.js","../../node_modules/d3-contour/src/density.js","../../node_modules/d3-array/src/max.js","../../node_modules/d3-geo/src/identity.js","../../node_modules/d3-geo/src/stream.js","../../node_modules/d3-geo/src/adder.js","../../node_modules/d3-geo/src/math.js","../../node_modules/d3-geo/src/noop.js","../../node_modules/d3-geo/src/path/area.js","../../node_modules/d3-geo/src/path/bounds.js","../../node_modules/d3-geo/src/path/centroid.js","../../node_modules/d3-geo/src/path/context.js","../../node_modules/d3-geo/src/path/measure.js","../../node_modules/d3-geo/src/path/string.js","../../node_modules/react-vis/es/plot/series/contour-series.js","../../node_modules/d3-geo/src/path/index.js","../../node_modules/react-vis/es/plot/crosshair.js","../../node_modules/react-vis/es/plot/series/custom-svg-series.js","../../node_modules/react-vis/es/plot/axis/decorative-axis-ticks.js","../../node_modules/react-vis/es/plot/axis/decorative-axis.js","../../node_modules/react-vis/es/plot/gradient-defs.js","../../node_modules/react-vis/es/plot/grid-lines.js","../../node_modules/react-vis/es/plot/series/heatmap-series.js","../../node_modules/d3-hexbin/src/hexbin.js","../../node_modules/react-vis/es/plot/series/hexbin-series.js","../../node_modules/react-vis/es/plot/highlight.js","../../node_modules/react-vis/es/plot/hint.js","../../node_modules/react-vis/es/plot/series/bar-series.js","../../node_modules/react-vis/es/plot/series/horizontal-bar-series.js","../../node_modules/react-vis/es/plot/series/bar-series-canvas.js","../../node_modules/react-vis/es/plot/series/horizontal-bar-series-canvas.js","../../node_modules/react-vis/es/plot/horizontal-grid-lines.js","../../node_modules/react-vis/es/plot/series/rect-series.js","../../node_modules/react-vis/es/plot/series/horizontal-rect-series.js","../../node_modules/react-vis/es/plot/series/rect-series-canvas.js","../../node_modules/react-vis/es/plot/series/horizontal-rect-series-canvas.js","../../node_modules/react-vis/es/plot/series/label-series.js","../../node_modules/react-vis/es/plot/series/line-series.js","../../node_modules/react-vis/es/plot/series/mark-series.js","../../node_modules/react-vis/es/plot/series/line-mark-series.js","../../node_modules/react-vis/es/plot/series/mark-series-canvas.js","../../node_modules/react-vis/es/plot/series/line-series-canvas.js","../../node_modules/react-vis/es/plot/series/line-mark-series-canvas.js","../../node_modules/react-vis/es/plot/series/polygon-series.js","../../node_modules/react-vis/es/plot/series/vertical-bar-series.js","../../node_modules/react-vis/es/plot/series/vertical-bar-series-canvas.js","../../node_modules/react-vis/es/plot/vertical-grid-lines.js","../../node_modules/react-vis/es/plot/series/vertical-rect-series.js","../../node_modules/react-vis/es/plot/series/vertical-rect-series-canvas.js","../../node_modules/react-vis/es/plot/voronoi.js","../../node_modules/react-vis/es/plot/series/whisker-series.js","../../node_modules/react-vis/es/utils/chart-utils.js","../../node_modules/react-vis/es/plot/series/canvas-wrapper.js","../../node_modules/react-vis/es/plot/xy-plot.js","../../node_modules/react-vis/es/plot/axis/axis-line.js","../../node_modules/react-vis/es/plot/axis/axis-ticks.js","../../node_modules/react-vis/es/plot/axis/axis-title.js","../../node_modules/react-vis/es/plot/axis/axis.js","../../node_modules/react-vis/es/plot/axis/x-axis.js","../../node_modules/react-vis/es/plot/axis/y-axis.js","../../node_modules/react-vis/es/legends/continuous-color-legend.js","../../node_modules/react-vis/es/legends/continuous-size-legend.js","../../node_modules/react-vis/es/legends/discrete-color-legend-item.js","../../node_modules/react-vis/es/legends/discrete-color-legend.js","../../node_modules/react-vis/es/legends/searchable-discrete-color-legend.js","../../node_modules/react-vis/es/parallel-coordinates/index.js","../../node_modules/react-vis/es/radar-chart/index.js","../../node_modules/react-vis/es/radial-chart/index.js","../../node_modules/d3-sankey/src/align.js","../../node_modules/d3-sankey/src/constant.js","../../node_modules/d3-sankey/src/sankey.js","../../node_modules/d3-sankey/src/sankeyLinkHorizontal.js","../../node_modules/react-vis/es/sankey/sankey-link.js","../../node_modules/react-vis/es/sankey/index.js","../../node_modules/d3-hierarchy/src/treemap/round.js","../../node_modules/d3-hierarchy/src/treemap/dice.js","../../node_modules/d3-hierarchy/src/partition.js","../../node_modules/d3-hierarchy/src/hierarchy/count.js","../../node_modules/d3-hierarchy/src/hierarchy/index.js","../../node_modules/d3-hierarchy/src/hierarchy/each.js","../../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../../node_modules/d3-hierarchy/src/hierarchy/sum.js","../../node_modules/d3-hierarchy/src/hierarchy/sort.js","../../node_modules/d3-hierarchy/src/hierarchy/path.js","../../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../../node_modules/d3-hierarchy/src/hierarchy/descendants.js","../../node_modules/d3-hierarchy/src/hierarchy/leaves.js","../../node_modules/d3-hierarchy/src/hierarchy/links.js","../../node_modules/react-vis/es/sunburst/index.js","../../node_modules/d3-hierarchy/src/treemap/slice.js","../../node_modules/d3-hierarchy/src/treemap/squarify.js","../../node_modules/d3-hierarchy/src/treemap/resquarify.js","../../node_modules/d3-hierarchy/src/array.js","../../node_modules/d3-hierarchy/src/pack/enclose.js","../../node_modules/d3-hierarchy/src/pack/siblings.js","../../node_modules/d3-hierarchy/src/accessors.js","../../node_modules/d3-hierarchy/src/constant.js","../../node_modules/d3-hierarchy/src/pack/index.js","../../node_modules/react-vis/es/treemap/treemap-leaf.js","../../node_modules/react-vis/es/treemap/treemap-dom.js","../../node_modules/react-vis/es/treemap/treemap-svg.js","../../node_modules/react-vis/es/treemap/index.js","../../node_modules/d3-hierarchy/src/treemap/sliceDice.js","../../node_modules/d3-hierarchy/src/treemap/binary.js","../../node_modules/d3-hierarchy/src/treemap/index.js","../../node_modules/react-vis/es/make-vis-flexible.js","components/DisplayData.js","components/Home.js","AppRoutes.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/react-popper/lib/esm/Manager.js","../node_modules/react-popper/lib/esm/utils.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/react-popper/lib/esm/usePopper.js","../node_modules/react-popper/lib/esm/Popper.js","../node_modules/react-popper/lib/esm/Reference.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/reactstrap/src/utils.js","../node_modules/reactstrap/src/Container.js","../node_modules/reactstrap/src/Row.js","../node_modules/reactstrap/src/Col.js","../node_modules/reactstrap/src/Navbar.js","../node_modules/reactstrap/src/NavbarBrand.js","../node_modules/reactstrap/src/NavbarText.js","../node_modules/reactstrap/src/NavbarToggler.js","../node_modules/reactstrap/src/Nav.js","../node_modules/reactstrap/src/NavItem.js","../node_modules/reactstrap/src/NavLink.js","../node_modules/reactstrap/src/Breadcrumb.js","../node_modules/reactstrap/src/BreadcrumbItem.js","../node_modules/reactstrap/src/CloseButton.js","../node_modules/reactstrap/src/Button.js","../node_modules/reactstrap/src/ButtonToggle.js","../node_modules/reactstrap/src/DropdownContext.js","../node_modules/reactstrap/src/Dropdown.js","../node_modules/reactstrap/src/ButtonDropdown.js","../node_modules/reactstrap/src/ButtonGroup.js","../node_modules/reactstrap/src/ButtonToolbar.js","../node_modules/reactstrap/src/DropdownItem.js","../node_modules/reactstrap/src/DropdownMenu.js","../node_modules/reactstrap/src/DropdownToggle.js","../node_modules/reactstrap/src/Fade.js","../node_modules/reactstrap/src/AccordionContext.js","../node_modules/reactstrap/src/Accordion.js","../node_modules/reactstrap/src/UncontrolledAccordion.js","../node_modules/reactstrap/src/AccordionHeader.js","../node_modules/reactstrap/src/AccordionItem.js","../node_modules/reactstrap/src/Collapse.js","../node_modules/reactstrap/src/AccordionBody.js","../node_modules/reactstrap/src/Badge.js","../node_modules/reactstrap/src/Card.js","../node_modules/reactstrap/src/CardGroup.js","../node_modules/reactstrap/src/CardDeck.js","../node_modules/reactstrap/src/CardColumns.js","../node_modules/reactstrap/src/CardBody.js","../node_modules/reactstrap/src/CardLink.js","../node_modules/reactstrap/src/CardFooter.js","../node_modules/reactstrap/src/CardHeader.js","../node_modules/reactstrap/src/CardImg.js","../node_modules/reactstrap/src/CardImgOverlay.js","../node_modules/reactstrap/src/CarouselItem.js","../node_modules/reactstrap/src/CarouselContext.js","../node_modules/reactstrap/src/Carousel.js","../node_modules/reactstrap/src/CarouselControl.js","../node_modules/reactstrap/src/CarouselIndicators.js","../node_modules/reactstrap/src/CarouselCaption.js","../node_modules/reactstrap/src/UncontrolledCarousel.js","../node_modules/reactstrap/src/CardSubtitle.js","../node_modules/reactstrap/src/CardText.js","../node_modules/reactstrap/src/CardTitle.js","../node_modules/reactstrap/src/PopperContent.js","../node_modules/reactstrap/src/PopperTargetHelper.js","../node_modules/reactstrap/src/TooltipPopoverWrapper.js","../node_modules/reactstrap/src/Popover.js","../node_modules/reactstrap/src/UncontrolledPopover.js","../node_modules/reactstrap/src/PopoverHeader.js","../node_modules/reactstrap/src/PopoverBody.js","../node_modules/reactstrap/src/Progress.js","../node_modules/reactstrap/src/Portal.js","../node_modules/reactstrap/src/Modal.js","../node_modules/reactstrap/src/ModalHeader.js","../node_modules/reactstrap/src/ModalBody.js","../node_modules/reactstrap/src/ModalFooter.js","../node_modules/reactstrap/src/Tooltip.js","../node_modules/reactstrap/src/Table.js","../node_modules/reactstrap/src/ListGroup.js","../node_modules/reactstrap/src/Form.js","../node_modules/reactstrap/src/FormFeedback.js","../node_modules/reactstrap/src/FormGroup.js","../node_modules/reactstrap/src/FormText.js","../node_modules/reactstrap/src/Input.js","../node_modules/reactstrap/src/InputGroup.js","../node_modules/reactstrap/src/InputGroupText.js","../node_modules/reactstrap/src/Label.js","../node_modules/reactstrap/src/Media.js","../node_modules/reactstrap/src/Offcanvas.js","../node_modules/reactstrap/src/OffcanvasBody.js","../node_modules/reactstrap/src/OffcanvasHeader.js","../node_modules/reactstrap/src/Pagination.js","../node_modules/reactstrap/src/PaginationItem.js","../node_modules/reactstrap/src/PaginationLink.js","../node_modules/reactstrap/src/TabContext.js","../node_modules/reactstrap/src/TabContent.js","../node_modules/reactstrap/src/TabPane.js","../node_modules/reactstrap/src/Alert.js","../node_modules/reactstrap/src/Toast.js","../node_modules/reactstrap/src/ToastBody.js","../node_modules/reactstrap/src/ToastHeader.js","../node_modules/reactstrap/src/ListGroupItem.js","../node_modules/reactstrap/src/ListGroupItemHeading.js","../node_modules/reactstrap/src/ListGroupItemText.js","../node_modules/reactstrap/src/List.js","../node_modules/reactstrap/src/ListInlineItem.js","../node_modules/reactstrap/src/UncontrolledAlert.js","../node_modules/reactstrap/src/UncontrolledButtonDropdown.js","../node_modules/reactstrap/src/UncontrolledCollapse.js","../node_modules/reactstrap/src/UncontrolledDropdown.js","../node_modules/reactstrap/src/UncontrolledTooltip.js","../node_modules/reactstrap/src/Spinner.js","../node_modules/reactstrap/src/Placeholder.js","../node_modules/reactstrap/src/PlaceholderButton.js","../node_modules/reactstrap/src/polyfill.js","components/NavMenu.js","components/Footer.js","components/Layout.js","components/ScrollToTop.js","App.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","serviceWorkerRegistration.js","reportWebVitals.js","index.js"],"sourcesContent":["/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","var objectKeys = require('object-keys');\nvar isArguments = require('is-arguments');\nvar is = require('object-is');\nvar isRegex = require('is-regex');\nvar flags = require('regexp.prototype.flags');\nvar isDate = require('is-date-object');\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n var opts = options || {};\n\n // 7.1. All identical values are equivalent, as determined by ===.\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n }\n\n // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n if (!actual || !expected || (typeof actual !== 'object' && typeof expected !== 'object')) {\n return opts.strict ? is(actual, expected) : actual == expected;\n }\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 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 if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n /* eslint max-statements: [2, 50] */\n var i, key;\n if (typeof a !== typeof b) { return false; }\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) { return false; }\n\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) { return false; }\n\n if (isArguments(a) !== isArguments(b)) { return false; }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n if (aIsRegex !== bIsRegex) { return false; }\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 if (aIsBuffer !== bIsBuffer) { return false; }\n if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n if (a.length !== b.length) { return false; }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) { return false; }\n }\n return true;\n }\n\n if (typeof a !== typeof b) { return false; }\n\n try {\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n } catch (e) { // happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) { return false; }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) { return false; }\n }\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) { return false; }\n }\n\n return true;\n}\n\nmodule.exports = deepEqual;\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value; // eslint-disable-line no-param-reassign\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\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 if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\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 Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar functionsHaveNames = function functionsHaveNames() {\n\treturn typeof function f() {}.name === 'string';\n};\n\nvar gOPD = Object.getOwnPropertyDescriptor;\nif (gOPD) {\n\ttry {\n\t\tgOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\tgOPD = null;\n\t}\n}\n\nfunctionsHaveNames.functionsHaveConfigurableNames = function functionsHaveConfigurableNames() {\n\tif (!functionsHaveNames() || !gOPD) {\n\t\treturn false;\n\t}\n\tvar desc = gOPD(function () {}, 'name');\n\treturn !!desc && !!desc.configurable;\n};\n\nvar $bind = Function.prototype.bind;\n\nfunctionsHaveNames.boundFunctionsHaveNames = function boundFunctionsHaveNames() {\n\treturn functionsHaveNames() && typeof $bind === 'function' && function f() {}.bind().name !== '';\n};\n\nmodule.exports = functionsHaveNames;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\ntry {\n\tnull.error; // eslint-disable-line no-unused-expressions\n} catch (e) {\n\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\tvar errorProto = getProto(getProto(e));\n\tINTRINSICS['%Error.prototype%'] = errorProto;\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","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;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateGetDayCall(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n","'use strict';\n\nvar callBound = require('call-bind/callBound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n\thas = callBound('Object.prototype.hasOwnProperty');\n\t$exec = callBound('RegExp.prototype.exec');\n\tisRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\tbadStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\n\nmodule.exports = hasToStringTag\n\t// eslint-disable-next-line consistent-return\n\t? function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar descriptor = gOPD(value, 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t$exec(value, badStringifier);\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t}\n\t: function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\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 hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n loadTime = getNanoSeconds();\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","if performance? and performance.now\n module.exports = -> performance.now()\nelse if process? and process.hrtime\n module.exports = -> (getNanoSeconds() - nodeLoadTime) / 1e6\n hrtime = process.hrtime\n getNanoSeconds = ->\n hr = hrtime()\n hr[0] * 1e9 + hr[1]\n moduleLoadTime = getNanoSeconds()\n upTime = process.uptime() * 1e9\n nodeLoadTime = moduleLoadTime - upTime\nelse if Date.now\n module.exports = -> Date.now() - loadTime\n loadTime = Date.now()\nelse\n module.exports = -> new Date().getTime() - loadTime\n loadTime = new Date().getTime()\n","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _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 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 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({ currentStyle: currentStyle, currentVelocity: currentVelocity, lastIdealStyle: lastIdealStyle, lastIdealVelocity: lastIdealVelocity });\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 if (_shouldStopAnimation2['default'](_this.state.currentStyle, propsStyle, _this.state.currentVelocity)) {\n if (_this.wasAnimating && _this.props.onRest) {\n _this.props.onRest();\n }\n\n // no need to cancel animationID here; shouldn't have any in flight\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 var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta;\n // more than 10 frames? prolly switched browser tab. Restart\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 _this.startAnimationIfNecessary();\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 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 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 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\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;\n // the amount we're looped over above\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 var currentVelocity = _mapToZero2['default'](currentStyle);\n return {\n currentStyle: currentStyle,\n currentVelocity: currentVelocity,\n lastIdealStyle: currentStyle,\n lastIdealVelocity: currentVelocity\n };\n };\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 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 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 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'];\n\n// after checking for unreadPropStyle != null, we manually go set the\n// non-interpolating values (those that are a number, without a spring\n// config)","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _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 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 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\n var someDirty = false;\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 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 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({ currentStyles: currentStyles, currentVelocities: currentVelocities, lastIdealStyles: lastIdealStyles, lastIdealVelocities: lastIdealVelocities });\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);\n\n // check if we need to animate in the first place\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 var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta;\n // more than 10 frames? prolly switched browser tab. Restart\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 _this.startAnimationIfNecessary();\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 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 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 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\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;\n // the amount we're looped over above\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\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 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 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'];\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// after checking for unreadPropStyles != null, we manually go set the\n// non-interpolating values (those that are a number, without a spring\n// config)","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _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;\n\n// 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\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 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 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 return { key: mergedPropsStyle.key, data: mergedPropsStyle.data, style: plainStyles[i] };\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 }\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 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}\n\n// core key merging logic\n\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\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\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 if (leavingStyle == null) {\n didLeave({ key: oldMergedPropsStyle.key, data: oldMergedPropsStyle.data });\n return null;\n }\n if (_shouldStopAnimation2['default'](oldCurrentStyles[oldIndex], leavingStyle, oldCurrentVelocities[oldIndex])) {\n didLeave({ key: oldMergedPropsStyle.key, data: oldMergedPropsStyle.data });\n return null;\n }\n return { key: oldMergedPropsStyle.key, data: oldMergedPropsStyle.data, style: leavingStyle };\n });\n\n var newCurrentStyles = [];\n var newCurrentVelocities = [];\n var newLastIdealStyles = [];\n var newLastIdealVelocities = [];\n for (var i = 0; i < newMergedPropsStyles.length; i++) {\n var newMergedPropsStyleCell = newMergedPropsStyles[i];\n var foundOldIndex = null;\n for (var j = 0; j < oldMergedPropsStyles.length; j++) {\n if (oldMergedPropsStyles[j].key === newMergedPropsStyleCell.key) {\n foundOldIndex = j;\n break;\n }\n }\n // TODO: key search code\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 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 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 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 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 }\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 _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 }\n\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 // 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;\n\n // check if we need to animate in the first place\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 var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta;\n // more than 10 frames? prolly switched browser tab. Restart\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 _this.startAnimationIfNecessary();\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 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 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\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;\n // the amount we're looped over above\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\n var destStyles = typeof styles === 'function' ? styles(defaultStyles) : styles;\n\n // 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 var oldMergedPropsStyles = undefined;\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 return defaultStyleCell;\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(\n // 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];\n // oldLastIdealVelocities really\n\n return {\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities,\n mergedPropsStyles: mergedPropsStyles\n };\n };\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 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 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 if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\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'];\n\n// 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\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\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// 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 for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n ret[key] = 0;\n }\n }\n return ret;\n}\n\nmodule.exports = exports['default'];","\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\n// - c and a must both be before b\n// - b before d\n// - ordering between a and c ambiguous\n\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\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\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\n var prevKeyIndex = {};\n for (var i = 0; i < prev.length; i++) {\n prevKeyIndex[prev[i].key] = i;\n }\n var nextKeyIndex = {};\n for (var i = 0; i < next.length; i++) {\n nextKeyIndex[next[i].key] = i;\n }\n\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 var ret = [];\n for (var i = 0; i < next.length; i++) {\n ret[i] = next[i];\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 if (fill != null) {\n ret.push(fill);\n }\n }\n }\n\n // now all the items all present. Core sorting logic to have the right order\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\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 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 }\n // pluggable. default to: next bigger than prev\n return 1;\n }\n // prevOrderA, nextOrderB\n for (var i = 0; i < next.length; i++) {\n var pivot = next[i].key;\n if (!Object.prototype.hasOwnProperty.call(prevKeyIndex, pivot)) {\n continue;\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 }\n // pluggable. default to: next bigger than prev\n return -1;\n });\n}\n\nmodule.exports = exports['default'];\n// to loop through and find a key's index each time), but I no longer care","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = {\n noWobble: { stiffness: 170, damping: 26 }, // the default, if nothing provided\n gentle: { stiffness: 120, damping: 14 },\n wobbly: { stiffness: 180, damping: 12 },\n stiff: { stiffness: 210, damping: 20 }\n};\nmodule.exports = exports[\"default\"];","'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; }\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);\n\n// deprecated, dummy warning function\n\nvar _reorderKeys = require('./reorderKeys');\n\nexports.reorderKeys = _interopRequire(_reorderKeys);","'use strict';\n\nexports.__esModule = true;\nexports['default'] = reorderKeys;\n\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'];","\n\n// 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;\n // stepper will have already taken care of rounding precision errors, so\n // won't have such thing as 0.9999 !=== 1\n if (currentStyle[key] !== styleValue) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports['default'] = spring;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\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, { val: val });\n}\n\nmodule.exports = exports['default'];","\n\n// 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;\n\nvar reusedTuple = [0, 0];\n\nfunction stepper(secondPerFrame, x, v, destX, k, b, precision) {\n // Spring stiffness, in kg / s^2\n\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);\n\n // Damping, in kg / s\n var Fdamper = -b * v;\n\n // 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 var a = Fspring + Fdamper;\n\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\"];\n// array reference around.","\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\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = stripStyle;\n\nfunction stripStyle(style) {\n var ret = {};\n for (var key in style) {\n if (!Object.prototype.hasOwnProperty.call(style, key)) {\n continue;\n }\n ret[key] = typeof style[key] === 'number' ? style[key] : style[key].val;\n }\n return ret;\n}\n\nmodule.exports = exports['default'];","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : 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 return _extends.apply(this, arguments);\n}","import * as React from \"react\";\nimport type { History, Location } from \"history\";\nimport { Action as NavigationType } from \"history\";\n\nimport type { RouteMatch } from \"./router\";\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport type Navigator = Pick;\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\ninterface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n","import type { Location, Path, To } from \"history\";\nimport { parsePath } from \"history\";\n\nexport function invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n\nexport function warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nconst alreadyWarned: Record = {};\nexport function warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n\ntype ParamParseFailed = { failed: true };\n\ntype ParamParseSegment =\n // Check here if there exists a forward slash in the string.\n Segment extends `${infer LeftSegment}/${infer RightSegment}`\n ? // If there is a forward slash, then attempt to parse each side of the\n // forward slash.\n ParamParseSegment extends infer LeftResult\n ? ParamParseSegment extends infer RightResult\n ? LeftResult extends string\n ? // If the left side is successfully parsed as a param, then check if\n // the right side can be successfully parsed as well. If both sides\n // can be parsed, then the result is a union of the two sides\n // (read: \"foo\" | \"bar\").\n RightResult extends string\n ? LeftResult | RightResult\n : LeftResult\n : // If the left side is not successfully parsed as a param, then check\n // if only the right side can be successfully parse as a param. If it\n // can, then the result is just right, else it's a failure.\n RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If the left side didn't parse into a param, then just check the right\n // side.\n ParamParseSegment extends infer RightResult\n ? RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If there's no forward slash, then check if this segment starts with a\n // colon. If it does, then this is a dynamic segment, so the result is\n // just the remainder of the string. Otherwise, it's a failure.\n Segment extends `:${infer Remaining}`\n ? Remaining\n : ParamParseFailed;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n ParamParseSegment extends string\n ? ParamParseSegment\n : string;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport interface RouteObject {\n caseSensitive?: boolean;\n children?: RouteObject[];\n element?: React.ReactNode;\n index?: boolean;\n path?: string;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/api#generatepath\n */\nexport function generatePath(path: string, params: Params = {}): string {\n return path\n .replace(/:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/\\/*\\*$/, (_) =>\n params[\"*\"] == null ? \"\" : params[\"*\"].replace(/^\\/*/, \"/\")\n );\n}\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface RouteMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObject;\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchroutes\n */\nexport function matchRoutes(\n routes: RouteObject[],\n locationArg: Partial | string,\n basename = \"/\"\n): RouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], pathname);\n }\n\n return matches;\n}\n\ninterface RouteMeta {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObject;\n}\n\ninterface RouteBranch {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes(\n routes: RouteObject[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n routes.forEach((route, index) => {\n let meta: RouteMeta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({ path, score: computeScore(path, route.index), routesMeta });\n });\n\n return branches;\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(\n branch: RouteBranch,\n pathname: string\n): RouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: RouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchpath\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else {\n regexpSource += end\n ? \"\\\\/*$\" // When matching to the end, ignore trailing slashes\n : // Otherwise, match a word boundary or a proceeding /. The word boundary restricts\n // parent routes to matching only their own words and nothing more, e.g. parent\n // route \"/home\" should not match \"/home2\".\n // Additionally, allow paths starting with `.`, `-`, `~`, and url-encoded entities,\n // but do not consume the character in the matched path so they can match against\n // nested paths.\n \"(?:(?=[.~-]|%[0-9A-F]{2})|\\\\b|\\\\/|$)\";\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/api#resolvepath\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string\n): Path {\n let to = typeof toArg === \"string\" ? parsePath(toArg) : toArg;\n let toPathname = toArg === \"\" || to.pathname === \"\" ? \"/\" : to.pathname;\n\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n let from: string;\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original to value had one.\n if (\n toPathname &&\n toPathname !== \"/\" &&\n toPathname.endsWith(\"/\") &&\n !path.pathname.endsWith(\"/\")\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n let nextChar = pathname.charAt(basename.length);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\n\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\nconst normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\nconst normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n","import * as React from \"react\";\nimport type { Location, Path, To } from \"history\";\nimport { Action as NavigationType, parsePath } from \"history\";\n\nimport { LocationContext, NavigationContext, RouteContext } from \"./context\";\nimport type {\n ParamParseKey,\n Params,\n PathMatch,\n PathPattern,\n RouteMatch,\n RouteObject,\n} from \"./router\";\nimport {\n getToPathname,\n invariant,\n joinPaths,\n matchPath,\n matchRoutes,\n resolveTo,\n warning,\n warningOnce,\n} from \"./router\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\nexport function useHref(to: To): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to);\n\n let joinedPathname = pathname;\n if (basename !== \"/\") {\n let toPathname = getToPathname(to);\n let endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname =\n pathname === \"/\"\n ? basename + (endsWithSlash ? \"/\" : \"\")\n : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname\n );\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/api#useoutletcontext\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\nexport function useResolvedPath(to: To): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname),\n [to, routePathnamesJson, locationPathname]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n return _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([parentPathnameBase, match.pathnameBase]),\n })\n ),\n parentMatches\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = []\n): React.ReactElement | null {\n if (matches == null) return null;\n\n return matches.reduceRight((outlet, match, index) => {\n return (\n \n );\n }, null as React.ReactElement | null);\n}\n","import * as React from \"react\";\nimport type { InitialEntry, Location, MemoryHistory, To } from \"history\";\nimport {\n Action as NavigationType,\n createMemoryHistory,\n parsePath,\n} from \"history\";\n\nimport { LocationContext, NavigationContext, Navigator } from \"./context\";\nimport {\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\nimport type { RouteMatch, RouteObject } from \"./router\";\nimport { invariant, normalizePathname, stripBasename, warning } from \"./router\";\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({ initialEntries, initialIndex });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\nexport function Navigate({ to, replace, state }: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n ` may be used only in the context of a component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n ` must not be used on the initial render in a . ` +\n `This is a no-op, but you should modify your code so the is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let navigate = useNavigate();\n React.useEffect(() => {\n navigate(to, { replace, state });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface RouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: boolean;\n path?: string;\n}\n\nexport interface PathRouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: false;\n path: string;\n}\n\nexport interface LayoutRouteProps {\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n}\n\nexport interface IndexRouteProps {\n element?: React.ReactNode | null;\n index: true;\n}\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\nexport function Route(\n _props: PathRouteProps | LayoutRouteProps | IndexRouteProps\n): React.ReactElement | null {\n invariant(\n false,\n `A is only ever to be used as the child of element, ` +\n `never rendered directly. Please wrap your in a .`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a directly. Instead, you'll render a\n * router that is more specific to your environment such as a \n * in web browsers or a for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a inside another .` +\n ` You should never have more than one in your app.`\n );\n\n let basename = normalizePathname(basenameProp);\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let location = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n };\n }, [basename, pathname, search, hash, state, key]);\n\n warning(\n location != null,\n ` is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the won't render anything.`\n );\n\n if (location == null) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial | string;\n}\n\n/**\n * A container for a nested tree of elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `` element or an array of them. Used internally by\n * `` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a component. All component children of must be a or `\n );\n\n let route: RouteObject = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type { BrowserHistory, HashHistory, History } from \"history\";\nimport { createBrowserHistory, createHashHistory } from \"history\";\nimport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n resolvePath,\n renderMatches,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n} from \"react-router\";\nimport type { To } from \"react-router\";\n\nfunction warning(cond: boolean, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// RE-EXPORTS\n////////////////////////////////////////////////////////////////////////////////\n\n// Note: Keep in sync with react-router exports!\nexport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n renderMatches,\n resolvePath,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n};\n\nexport { NavigationType } from \"react-router\";\nexport type {\n Hash,\n Location,\n Path,\n To,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigator,\n OutletProps,\n Params,\n PathMatch,\n RouteMatch,\n RouteObject,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n Pathname,\n Search,\n RoutesProps,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n} from \"react-router\";\n\n////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nfunction isModifiedEvent(event: React.MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport interface LinkProps\n extends Omit, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n to: To;\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nexport const Link = React.forwardRef(\n function LinkWithRef(\n { onClick, reloadDocument, replace = false, state, target, to, ...rest },\n ref\n ) {\n let href = useHref(to);\n let internalOnClick = useLinkClickHandler(to, { replace, state, target });\n function handleClick(\n event: React.MouseEvent\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented && !reloadDocument) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n \n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit {\n children?:\n | React.ReactNode\n | ((props: { isActive: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?: string | ((props: { isActive: boolean }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: { isActive: boolean }) => React.CSSProperties);\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let location = useLocation();\n let path = useResolvedPath(to);\n\n let locationPathname = location.pathname;\n let toPathname = path.pathname;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\" ? styleProp({ isActive }) : styleProp;\n\n return (\n \n {typeof children === \"function\" ? children({ isActive }) : children}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Handles the click behavior for router `` components. This is useful if\n * you need to create custom `` components with the same click behavior we\n * use in our exported ``.\n */\nexport function useLinkClickHandler(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n } = {}\n): (event: React.MouseEvent) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to);\n\n return React.useCallback(\n (event: React.MouseEvent) => {\n if (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular will do a replace instead of\n // a push, so do the same here.\n let replace =\n !!replaceProp || createPath(location) === createPath(path);\n\n navigate(to, { replace, state });\n }\n },\n [location, navigate, path, replaceProp, state, target, to]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(defaultInit?: URLSearchParamsInit) {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (\n nextInit: URLSearchParamsInit,\n navigateOptions?: { replace?: boolean; state?: any }\n ) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n },\n [navigate]\n );\n\n return [searchParams, setSearchParams] as const;\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import React, { Component } from 'react';\r\n\r\n\r\nexport class Contact extends Component {\r\n static displayName = Contact.name;\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n

.... site in progress

\r\n \r\n

BigBoss@dhncode.dev

\r\n
\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\n\r\n\r\nexport class Privacy extends Component {\r\n static displayName = Privacy.name;\r\n\r\n render() {\r\n return (\r\n\r\n
\r\n

I collect no data... only my own...

\r\n

This site does not collect, manage or store any user data.

\r\n

The DateCalc 30-90-360 App does not collect, manage or store any user data.

\r\n
\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\n\r\n\r\nexport class Counter extends Component {\r\n static displayName = Counter.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { currentCount: 1 };\r\n this.incrementCounter = this.incrementCounter.bind(this);\r\n this.decrementCounter = this.decrementCounter.bind(this);\r\n \r\n }\r\n\r\n incrementCounter() {\r\n this.setState({\r\n currentCount: this.state.currentCount + 1\r\n });\r\n }\r\n\r\n decrementCounter() {\r\n if (this.state.currentCount > 1) {\r\n this.setState({\r\n currentCount: this.state.currentCount - 1\r\n });\r\n }\r\n else {\r\n this.setState({\r\n currentCount: this.state.currentCount + 0\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n\r\n \r\n\r\n

# Data: {this.state.currentCount}

\r\n\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n","import React, { Component } from 'react';\r\nimport qrDateCalc from './images/qrcodeDateCalc.png';\r\n\r\nexport class PastProjects extends Component {\r\n static displayName = PastProjects.name;\r\n\r\n render() {\r\n return (\r\n\r\n
\r\n\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport weatherpiProto from './images/weatherpiProto.png';\r\nimport piData from './images/raspberrydata.mp4';\r\n\r\n\r\n\r\n\r\nexport class ProgressLog extends Component {\r\n static displayName = ProgressLog.name;\r\n\r\n render() {\r\n return (\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n

13/6-23 Status:

\r\n

Finally got multi plot ReactVis chart working... had made a stupid mistake of using { } instead of [] when building array of X Y pairs in my async fetch.

\r\n

Took me embarrasingly long to realize my error was not in my static or render as the network console showed a logically dataset in Edge

\r\n

Chart still looks awfall visually, but building blocks are getting there...

\r\n

Sensor finally arrived from adafruit, but have to fix car first in order to get home...

\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n

31/5-23 Status:

\r\n

Back from vacation, caught up on backloaded work

\r\n

Still waiting for sensors...

\r\n \r\n\r\n
\r\n\r\n
\r\n

12/5-23 Status:

\r\n

ChartJS...React-chartjs-2...Rechart....React-vis....VIctory.. CanvasJS...

\r\n

Did not expect getting stuck on the chart...

\r\n
    \r\n
  • React-chartjs-2
  • \r\n
      \r\n
    • Wasted a \"week\" trying to get react-chartjs-2 to work.
    • \r\n
    • Stuck on react-dom error, and npm package folder disappearing after builds, and an error referancing chartjs.tsx
    • \r\n
    • Examples on webpage all written in .tsx files made me more confused ... do not like giving up, but this was poor time management
    • \r\n
    \r\n\r\n\r\n
  • CanvasJS
  • \r\n
      \r\n
    • Commercial licensing...30day free trial, but wanted to test something without npm due to my issue with react-chartjs-2
    • \r\n
    • Very straight forward compared to react-chartjs-2, took 30 minutes to get a chart with Pi data...
    • \r\n \r\n\r\n\r\n \r\n
    \r\n\r\n
  • React-Vis
  • \r\n
      \r\n
    • Good looking charts
    • \r\n
    • Got Chart working. Going on vacation, will have to get React-Vis working good when i get back...
    • \r\n\r\n
    \r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n

24/4-23 Status:

\r\n

Finally som data on website!

\r\n\r\n
    \r\n
  • To do:\r\n
      \r\n
    • Get graphical data representation running
    • \r\n
    • Expand API options
    • \r\n
    • Make the rest of the sensors
    • \r\n
    • Dual ebay description fooled me... got a BMP280 instead of a BME280..no humidity.. reordered
    • \r\n
    • Calibrate sensors
    • \r\n
    • Start using stage sub domain for testing, keep breaking the online site
    • \r\n
    • ... ... ... ...
    • \r\n
    • Build admin site for publishing, getting numbers on the screen was first priority
    • \r\n
    • Build login page for selected users
    • \r\n
    • Actually learn how i did all this...
    • \r\n \r\n\r\n\r\n
    \r\n
  • \r\n\r\n\r\n
\r\n\r\n
    \r\n
  • Done:
  • \r\n
      \r\n\r\n
    • Raspberry collects data via I2C and SPI via C#
    • \r\n
    • Raspberry posts to mySQL
    • \r\n
    • C# Web API retrieves data and serves with CORS
    • \r\n
    • React App can fetch data from API
    • \r\n
    • React App can broadcast the temperature and barometric pressure by my laptop to the world
    • \r\n
    • api.dhncode.com/hellvikdata/getlast/n --Gets last n samples, max 4464
    • \r\n\r\n
    \r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n

19/4-23 Status:

\r\n

Web API

\r\n \r\n
    \r\n
  • To do:\r\n
      \r\n
    • Connect React to backend Web API
    • \r\n
    • Resolve CORS issues....
    • \r\n\r\n \r\n \r\n
  • \r\n\r\n\r\n
\r\n\r\n
    \r\n
  • Done:
  • \r\n
      \r\n
    • Raspberry posts to mySQL database
    • \r\n
    • Tested entity framework web API controller, i can get data from my \"weather station\", to online mySQL, and back out ...
    • \r\n
    \r\n
\r\n\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n

11/4-23 Status:

\r\n

Next step add mySQL connection...

\r\n\r\n
    \r\n
  • Raspberry SSH ready:
  • \r\n \r\n
    \r\n \r\n
    \r\n\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n

10/4-23 Status:

\r\n

Next step add mySQL connection...

\r\n\r\n
    \r\n
  • Raspberry Pi ready:\r\n
      \r\n
    • Permaproto hat soldered
    • \r\n
    • MCP3008 ADC - Tested over SPI with potentiometer
    • \r\n
    • BME280 and TSL2561 added to I2C
    • \r\n
    • Simple C# console app written to read I2C and SPI over SSH with status led to GPIO
    • \r\n
  • \r\n
    \r\n \"weatherpiProto\"\r\n
    \r\n\r\n
\r\n\r\n
    \r\n
  • Air quality - TGS2600 - still not arrived, most likely useless, we have great air...
  • \r\n
  • Rain - DIY - Cups, push button?
  • \r\n
  • Wind_speed - waiting for reed switches, will connect to GPIO and read push per 10sec, 3d print parts?
  • \r\n
  • Wind_dir - waiting for reed switches, will connect to MCP3008 with 8 diffent resistors for N,S,E,W,NE,NW,SE,SW 3d print parts?
  • \r\n\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n

Status: Parts ordered:

\r\n

Raspberry Pi flashed, ssh enabled

\r\n

29/3-23 Waiting for sensors

\r\n
    \r\n
  • Temp, pressure, humidity - BME280 - Ordered
  • \r\n
  • Air quality - TGS2600 - Ordered
  • \r\n
  • Sunlight - TSL2561 - Ordered
  • \r\n
  • Temp - DS18B20 - Ordered
  • \r\n
  • Rain - DIY - Cups, push button?
  • \r\n
  • Wind_speed - DIY Ordered reed switch, 3d print parts?
  • \r\n
  • Wind_dir - DIY Ordered reed switch, 3d print parts?
  • \r\n\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n

Initial planning:

\r\n\r\n \r\n
    \r\n
  • 4/3-23, plain HTML, CSS, bootstrap at dhncode.dev...
  • \r\n
  • 10/3-23, migrated to dhncode.com with new host provider supporting backend infrastructure. Updated style and layout
  • \r\n
  • 20/3-23, moved over to React SPA.
  • \r\n
  • ....practice web app in progress!\r\n
      \r\n
    • need GDPR friendly data for database... borrow or self produce...\r\n
        \r\n
      • Useless lotteri prediction app based on pet movements in key matrix as a pun to a colleagues lottori system or...
      • \r\n
      • Weatherstation... boring but safe, usefull to myself and 3 neighboers, but will most likely avoid prosecution...\r\n
          \r\n
        • Raspberry pi... 2 in stock, scrap kali linux keep SegaMega Drive
        • \r\n
        • Need sensor kit..
            \r\n
          • Temp, pressure, humidity - BME280 - Ordered
          • \r\n
          • Air quality - TGS2600 - Ordered
          • \r\n
          • Sunlight - TSL2561 - Ordered
          • \r\n
          • Temp - DS18B20 - Ordered
          • \r\n
          • Rain - DIY - Cups, push button?
          • \r\n
          • Wind_speed - DIY Ordered reed switch, 3d print parts?
          • \r\n
          • Wind_dir - DIY Ordered reed switch, 3d print parts?
          • \r\n\r\n
        • \r\n
        • Plan A c# for GPIO. Plan B Python detour....
        • \r\n
        • c# web api on raspberry
        • \r\n
        • c# server backend
        • \r\n
        • React frontend
        • \r\n
        • Bonus: Could still add lotteri prediction easter egg for colleague... everything sounds scientific when associated with barometric pressure
        • \r\n
        \r\n\r\n
      • \r\n
      \r\n
    • \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n\r\n );\r\n }\r\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\";\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return generator._invoke = function (innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }(innerFn, self, context), generator;\n }\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n exports.wrap = wrap;\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n\n reject(record.arg);\n }\n\n var previousPromise;\n\n this._invoke = function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n\n return next.value = undefined, next.done = !0, next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import React, { Component } from 'react';\r\n\r\n\r\nexport class FetchData extends Component {\r\n static displayName = FetchData.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { PiData: [], loading: true, currentCount: 1 };\r\n this.incrementCounter = this.incrementCounter.bind(this);\r\n this.decrementCounter = this.decrementCounter.bind(this);\r\n \r\n }\r\n\r\n incrementCounter() {\r\n if (this.state.currentCount < 30) {\r\n this.setState({\r\n currentCount: this.state.currentCount + 1\r\n });\r\n }\r\n else {\r\n this.setState({\r\n currentCount: this.state.currentCount + 0\r\n });\r\n }\r\n }\r\n\r\n decrementCounter() {\r\n if (this.state.currentCount > 1) {\r\n this.setState({\r\n currentCount: this.state.currentCount - 1\r\n });\r\n }\r\n else {\r\n this.setState({\r\n currentCount: this.state.currentCount + 0\r\n });\r\n\r\n }\r\n\r\n }\r\n \r\n\r\n componentDidMount() {\r\n this.getPiData();\r\n }\r\n\r\n\r\n componentDidUpdate(_prevProps, prevState) {\r\n if (prevState.currentCount !== this.state.currentCount) {\r\n this.getPiData();\r\n }\r\n }\r\n\r\n\r\n static renderPiDataTable(PiData) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {PiData.map(entry =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
Time(C)(hPa)%h20(Lux)
{entry.timeStamp}{entry.temp1}{entry.pressure}{entry.humidity}{entry.sunlight}
\r\n );\r\n }\r\n\r\n\r\n\r\n\r\n\r\n render() {\r\n\r\n let contents = this.state.loading\r\n ?

....Crunching the numbers....

\r\n : FetchData.renderPiDataTable(this.state.PiData);\r\n\r\n return (\r\n
\r\n \r\n

Table Data from API

\r\n

... to be replaced...

\r\n
\r\n

# Data: {this.state.currentCount}

\r\n \r\n \r\n
\r\n {contents}\r\n
\r\n );\r\n }\r\n\r\n async getPiData() {\r\n console.log(\"wait one sec\")\r\n await new Promise(r => setTimeout(r, 500));\r\n const response = await fetch(`https://api.dhncode.com/hellvikdata/getlast/${this.state.currentCount}`);\r\n \r\n const Data = await response.json();\r\n console.log(Data);\r\n \r\n // use if one const piArray = [Data];\r\n // use if one console.log(piArray);\r\n\r\n \r\n \r\n this.setState({ PiData: Data, loading: false });\r\n }\r\n}\r\n\r\n\r\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export function x(d) {\n return d[0];\n}\n\nexport function y(d) {\n return d[1];\n}\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}\n\nRedBlackTree.prototype = {\n constructor: RedBlackTree,\n\n insert: function(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 if (after.R) {\n after = after.R;\n while (after.L) after = after.L;\n after.L = node;\n } else {\n after.R = node;\n }\n parent = after;\n } else if (this._) {\n after = RedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n\n after = node;\n while (parent && parent.C) {\n grandpa = parent.U;\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n RedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n RedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateLeft(this, grandpa);\n }\n }\n parent = after.U;\n }\n this._.C = false;\n },\n\n remove: function(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\n var parent = node.U,\n sibling,\n left = node.L,\n right = node.R,\n next,\n red;\n\n if (!left) next = right;\n else if (!right) next = left;\n else next = RedBlackFirst(right);\n\n if (parent) {\n if (parent.L === node) parent.L = next;\n 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 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 if (node && node.C) { node.C = false; return; }\n\n do {\n if (node === this._) break;\n if (node === parent.L) {\n sibling = parent.R;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n RedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n RedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n RedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n RedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n\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;\n 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;\n 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) node = node.L;\n return node;\n}\n\nexport default RedBlackTree;\n","import {cells, edges, epsilon} from \"./Diagram\";\n\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}\n\nexport function createBorderEdge(left, v0, v1) {\n var edge = [v0, v1];\n edge.left = left;\n return edge;\n}\n\nexport function setEdgeEnd(edge, left, right, vertex) {\n if (!edge[0] && !edge[1]) {\n edge[0] = vertex;\n edge.left = left;\n edge.right = right;\n } else if (edge.left === right) {\n edge[1] = vertex;\n } else {\n edge[0] = vertex;\n }\n}\n\n// Liang–Barsky line clipping.\nfunction clipEdge(edge, x0, y0, x1, y1) {\n var a = edge[0],\n b = edge[1],\n ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\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\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 if (lx > rx) {\n if (!v0) v0 = [fx, y0];\n else if (v0[1] >= y1) return;\n v1 = [fx, y1];\n } else {\n if (!v0) v0 = [fx, y1];\n else if (v0[1] < y0) return;\n v1 = [fx, y0];\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!v0) v0 = [(y0 - fb) / fm, y0];\n else if (v0[1] >= y1) return;\n v1 = [(y1 - fb) / fm, y1];\n } else {\n if (!v0) v0 = [(y1 - fb) / fm, y1];\n 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];\n else if (v0[0] >= x1) return;\n v1 = [x1, fm * x1 + fb];\n } else {\n if (!v0) v0 = [x1, fm * x1 + fb];\n 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)\n || !clipEdge(edge, x0, y0, x1, y1)\n || !(Math.abs(edge[0][0] - edge[1][0]) > epsilon\n || Math.abs(edge[0][1] - edge[1][1]) > epsilon)) {\n delete edges[i];\n }\n }\n}\n","import {createBorderEdge} from \"./Edge\";\nimport {cells, edges, epsilon} from \"./Diagram\";\n\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];\n 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}\n\nexport function cellHalfedgeEnd(cell, edge) {\n return edge[+(edge.left === cell.site)];\n}\n\nexport function sortCellHalfedges() {\n for (var i = 0, n = cells.length, cell, halfedges, j, m; i < n; ++i) {\n if ((cell = cells[i]) && (m = (halfedges = cell.halfedges).length)) {\n var index = new Array(m),\n array = new Array(m);\n for (j = 0; j < m; ++j) index[j] = j, array[j] = cellHalfedgeAngle(cell, edges[halfedges[j]]);\n index.sort(function(i, j) { return array[j] - array[i]; });\n for (j = 0; j < m; ++j) array[j] = halfedges[index[j]];\n for (j = 0; j < m; ++j) halfedges[j] = array[j];\n }\n }\n}\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;\n\n // Remove any dangling clipped edges.\n while (iHalfedge--) {\n if (!edges[halfedges[iHalfedge]]) {\n halfedges.splice(iHalfedge, 1);\n }\n }\n\n // Insert any border edges as necessary.\n iHalfedge = 0, nHalfedges = halfedges.length;\n while (iHalfedge < nHalfedges) {\n end = cellHalfedgeEnd(cell, edges[halfedges[iHalfedge]]), endX = end[0], endY = end[1];\n start = cellHalfedgeStart(cell, edges[halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];\n if (Math.abs(endX - startX) > epsilon || Math.abs(endY - startY) > epsilon) {\n halfedges.splice(iHalfedge, 0, edges.push(createBorderEdge(site, end,\n Math.abs(endX - x0) < epsilon && y1 - endY > epsilon ? [x0, Math.abs(startX - x0) < epsilon ? startY : y1]\n : Math.abs(endY - y1) < epsilon && x1 - endX > epsilon ? [Math.abs(startY - y1) < epsilon ? startX : x1, y1]\n : Math.abs(endX - x1) < epsilon && endY - y0 > epsilon ? [x1, Math.abs(startX - x1) < epsilon ? startY : y0]\n : Math.abs(endY - y0) < epsilon && endX - x0 > epsilon ? [Math.abs(startY - y0) < epsilon ? startX : x0, y0]\n : null)) - 1);\n ++nHalfedges;\n }\n }\n\n if (nHalfedges) cover = false;\n }\n }\n\n // If there weren’t any edges, have the closest site cover the extent.\n // It doesn’t matter which corner of the extent we measure!\n if (cover) {\n var dx, dy, d2, 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], v01 = [x0, y1], v11 = [x1, y1], v10 = [x1, y0];\n cover.halfedges.push(\n edges.push(createBorderEdge(site = cover.site, v00, v01)) - 1,\n edges.push(createBorderEdge(site, v01, v11)) - 1,\n edges.push(createBorderEdge(site, v11, v10)) - 1,\n edges.push(createBorderEdge(site, v10, v00)) - 1\n );\n }\n }\n\n // Lastly delete any cells with no edges; these were entirely clipped.\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n if (!cell.halfedges.length) {\n delete cells[iCell];\n }\n }\n }\n}\n","import {RedBlackNode} from \"./RedBlackTree\";\nimport {circles, epsilon2} from \"./Diagram\";\n\nvar circlePool = [];\n\nexport var firstCircle;\n\nfunction Circle() {\n RedBlackNode(this);\n this.x =\n this.y =\n this.arc =\n this.site =\n this.cy = null;\n}\n\nexport function attachCircle(arc) {\n var lArc = arc.P,\n rArc = arc.N;\n\n if (!lArc || !rArc) return;\n\n var lSite = lArc.site,\n cSite = arc.site,\n rSite = rArc.site;\n\n if (lSite === rSite) return;\n\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\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -epsilon2) return;\n\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\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\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;\n else { before = node.P; break; }\n } else {\n if (node.R) node = node.R;\n else { before = node; break; }\n }\n }\n\n circles.insert(before, circle);\n if (!before) firstCircle = circle;\n}\n\nexport function detachCircle(arc) {\n var circle = arc.circle;\n if (circle) {\n if (!circle.P) firstCircle = circle.N;\n circles.remove(circle);\n circlePool.push(circle);\n RedBlackNode(circle);\n arc.circle = null;\n }\n}\n","import {RedBlackNode} from \"./RedBlackTree\";\nimport {createCell} from \"./Cell\";\nimport {attachCircle, detachCircle} from \"./Circle\";\nimport {createEdge, setEdgeEnd} from \"./Edge\";\nimport {beaches, epsilon} from \"./Diagram\";\n\nvar beachPool = [];\n\nfunction Beach() {\n RedBlackNode(this);\n this.edge =\n this.site =\n 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\n detachBeach(beach);\n\n var lArc = previous;\n while (lArc.circle\n && Math.abs(x - lArc.circle.x) < epsilon\n && 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\n var rArc = next;\n while (rArc.circle\n && Math.abs(x - rArc.circle.x) < epsilon\n && 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\n var nArcs = disappearing.length,\n iArc;\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n setEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = createEdge(lArc.site, rArc.site, null, vertex);\n\n attachCircle(lArc);\n attachCircle(rArc);\n}\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 if (dxr > epsilon) {\n if (!node.R) {\n lArc = node;\n break;\n }\n node = node.R;\n } else {\n if (dxl > -epsilon) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -epsilon) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n break;\n }\n }\n }\n\n createCell(site);\n var newArc = createBeach(site);\n beaches.insert(lArc, newArc);\n\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) { // && lArc\n newArc.edge = createEdge(lArc.site, newArc.site);\n return;\n }\n\n // else lArc !== rArc\n detachCircle(lArc);\n detachCircle(rArc);\n\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\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\n if (!pby2) return rfocx;\n\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n\n site = lArc.site;\n var lfocx = site[0],\n lfocy = site[1],\n plby2 = lfocy - directrix;\n\n if (!plby2) return lfocx;\n\n var hl = lfocx - rfocx,\n aby2 = 1 / pby2 - 1 / plby2,\n b = hl / plby2;\n\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n\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}\n","import {addBeach, removeBeach} from \"./Beach\";\nimport {sortCellHalfedges, cellHalfedgeStart, clipCells} from \"./Cell\";\nimport {firstCircle} from \"./Circle\";\nimport {clipEdges} from \"./Edge\";\nimport RedBlackTree from \"./RedBlackTree\";\n\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]\n || 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\n edges = [];\n cells = new Array(sites.length);\n beaches = new RedBlackTree;\n circles = new RedBlackTree;\n\n while (true) {\n circle = firstCircle;\n if (site && (!circle || site[1] < circle.y || (site[1] === circle.y && site[0] < circle.x))) {\n if (site[0] !== x || site[1] !== y) {\n addBeach(site);\n x = site[0], y = site[1];\n }\n site = sites.pop();\n } else if (circle) {\n removeBeach(circle.arc);\n } else {\n break;\n }\n }\n\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\n beaches =\n circles =\n edges =\n cells = null;\n}\n\nDiagram.prototype = {\n constructor: Diagram,\n\n polygons: function() {\n var edges = this.edges;\n\n return this.cells.map(function(cell) {\n var polygon = cell.halfedges.map(function(i) { return cellHalfedgeStart(cell, edges[i]); });\n polygon.data = cell.site.data;\n return polygon;\n });\n },\n\n triangles: function() {\n var triangles = [],\n edges = this.edges;\n\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 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\n return triangles;\n },\n\n links: function() {\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\n find: function(x, y, radius) {\n var that = this, i0, i1 = that._found || 0, n = that.cells.length, cell;\n\n // Use the previously-found cell, or start with an arbitrary one.\n while (!(cell = that.cells[i1])) if (++i1 >= n) return null;\n var dx = x - cell.site[0], dy = y - cell.site[1], d2 = dx * dx + dy * dy;\n\n // Traverse the half-edges to find a closer cell, if any.\n do {\n cell = that.cells[i0 = i1], i1 = null;\n cell.halfedges.forEach(function(e) {\n var edge = that.edges[e], v = edge.left;\n if ((v === cell.site || !v) && !(v = edge.right)) return;\n var vx = x - v[0], vy = y - v[1], 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\n return radius == null || d2 <= radius * radius ? cell.site : null;\n }\n}\n","import constant from \"./constant\";\nimport {x as pointX, y as pointY} from \"./point\";\nimport Diagram, {epsilon} from \"./Diagram\";\n\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}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { interpolate } from 'd3-interpolate';\nimport { spring, Motion, presets } from 'react-motion';\n\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\nvar propTypes = {\n animatedProps: PropTypes.arrayOf(PropTypes.string).isRequired,\n animation: ANIMATION_PROPTYPES,\n onStart: PropTypes.func,\n onEnd: PropTypes.func\n};\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 var damping = animationStyle.damping,\n stiffness = animationStyle.stiffness;\n\n return _extends({\n damping: damping || presets.noWobble.damping,\n stiffness: stiffness || presets.noWobble.stiffness\n }, animationStyle);\n}\n\n/**\n * Extract the animated props from the entire props object.\n * @param {Object} props Props.\n * @returns {Object} Object of animated props.\n */\nexport function extractAnimatedPropValues(props) {\n var animatedProps = props.animatedProps,\n otherProps = _objectWithoutProperties(props, ['animatedProps']);\n\n return animatedProps.reduce(function (result, animatedPropName) {\n if (otherProps.hasOwnProperty(animatedPropName)) {\n result[animatedPropName] = otherProps[animatedPropName];\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\n var interpolator = _this._interpolator;\n var child = React.Children.only(children);\n var interpolatedProps = interpolator ? interpolator(i) : interpolator;\n\n // interpolator doesnt play nice with deeply nested objected\n // so we expose an additional prop for situations like these, soit _data,\n // which stores the full tree and can be recombined with the sanitized version\n // after interpolation\n var data = interpolatedProps && interpolatedProps.data || null;\n if (data && child.props._data) {\n data = data.map(function (row, index) {\n var correspondingCell = child.props._data[index];\n return _extends({}, row, {\n parent: correspondingCell.parent,\n children: correspondingCell.children\n });\n });\n }\n\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 return _this;\n }\n\n _createClass(Animation, [{\n key: 'componentWillUpdate',\n value: function componentWillUpdate(props) {\n this._updateInterpolator(this.props, props);\n if (props.onStart) {\n props.onStart();\n }\n }\n\n /**\n * Render the child into the parent.\n * @param {Number} i Number generated by the spring.\n * @returns {React.Component} Rendered react element.\n * @private\n */\n\n }, {\n key: '_updateInterpolator',\n\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 = { i: 0 };\n var style = { 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 var key = Math.random();\n return React.createElement(\n Motion,\n _extends({ defaultStyle: defaultStyle, style: style, key: key }, { onRest: this._motionEndHandler }),\n this._renderChildren\n );\n }\n }]);\n\n return Animation;\n}(PureComponent);\n\nAnimation.propTypes = propTypes;\nAnimation.displayName = 'Animation';\n\nexport default Animation;\n\nexport var AnimationPropType = ANIMATION_PROPTYPES;","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","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) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = max = value;\n while (++i < 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 }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = max = value;\n while (++i < n) { // 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}\n","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","export default function(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}\n","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) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = value;\n while (++i < 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}\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","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 }\n\n else {\n while (++i < n) {\n if (value = +valueof(values[i], i, values)) sum += value;\n }\n }\n\n return sum;\n}\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n","import map from \"./map\";\n\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\n return result;\n }\n\n function entries(map, depth) {\n if (++depth > keys.length) return map;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys.length) array = map.entries();\n else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });\n return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;\n }\n\n return nest = {\n object: function(array) { return apply(array, 0, createObject, setObject); },\n map: function(array) { return apply(array, 0, createMap, setMap); },\n entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },\n key: function(d) { keys.push(d); return nest; },\n sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },\n sortValues: function(order) { sortValues = order; return nest; },\n rollup: function(f) { rollup = f; return nest; }\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}\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n","var array = Array.prototype;\n\nexport var map = array.map;\nexport var slice = array.slice;\n","import {map} from \"d3-collection\";\nimport {slice} from \"./array\";\n\nexport var implicit = {name: \"implicit\"};\n\nexport default function ordinal(range) {\n var index = map(),\n domain = [],\n unknown = implicit;\n\n range = range == null ? [] : slice.call(range);\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map();\n var i = -1, n = _.length, d, key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport ordinal from \"./ordinal\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = range[1] < range[0],\n start = range[reverse - 0],\n stop = range[1 - reverse];\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = [+_[0], +_[1]], round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = 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()\n .domain(domain())\n .range(range)\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return rescale();\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band().paddingInner(1));\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(x) {\n return +x;\n}\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\";\n\nvar unit = [0, 1];\n\nexport function deinterpolateLinear(a, b) {\n return (b -= (a = +a))\n ? function(x) { 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) { return x <= a ? 0 : x >= b ? 1 : d(x); };\n };\n}\n\nfunction reinterpolateClamp(reinterpolate) {\n return function(a, b) {\n var r = reinterpolate(a = +a, b = +b);\n return function(t) { return t <= 0 ? a : t >= 1 ? b : r(t); };\n };\n}\n\nfunction bimap(domain, range, deinterpolate, reinterpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = deinterpolate(d1, d0), r0 = reinterpolate(r1, r0);\n else d0 = deinterpolate(d0, d1), r0 = reinterpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, deinterpolate, reinterpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\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\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp());\n}\n\n// deinterpolate(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// reinterpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding domain value x in [a,b].\nexport default function continuous(deinterpolate, reinterpolate) {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n clamp = false,\n piecewise,\n output,\n input;\n\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}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": formatDecimal,\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function(domain, count, specifier) {\n var start = domain[0],\n stop = domain[domain.length - 1],\n step = tickStep(start, stop, count == null ? 10 : count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport {interpolateNumber as reinterpolate} from \"d3-interpolate\";\nimport {default as continuous, copy, deinterpolateLinear as deinterpolate} from \"./continuous\";\nimport tickFormat from \"./tickFormat\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n return tickFormat(domain(), count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous(deinterpolate, reinterpolate);\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n return linearish(scale);\n}\n","export default function(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport 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))\n ? function(x) { return Math.log(x / a) / b; }\n : constant(b);\n}\n\nfunction reinterpolate(a, b) {\n return a < 0\n ? function(t) { return -Math.pow(-b, t) * Math.pow(-a, 1 - t); }\n : function(t) { return Math.pow(b, t) * Math.pow(a, 1 - t); };\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport 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\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.round(i) - 1, j = Math.round(j) + 1;\n if (u > 0) for (; i < j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i < j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n scale.copy = function() {\n return copy(scale, log().base(base));\n };\n\n return scale;\n}\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)))\n ? function(x) { 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) { return raise(a + b * t, 1 / exponent); };\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}\n\nexport function sqrt() {\n return pow().exponent(0.5);\n}\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import {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\";\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(deinterpolate, reinterpolate),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nexport default function() {\n return calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]);\n}\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","export default function(s) {\n return s.match(/.{6}/g).map(function(x) {\n return \"#\" + x;\n });\n}\n","import colors from \"./colors\";\n\nexport default colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");\n","import colors from \"./colors\";\n\nexport default colors(\"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6\");\n","import colors from \"./colors\";\n\nexport default colors(\"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9\");\n","import colors from \"./colors\";\n\nexport default colors(\"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5\");\n","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\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)), // 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}\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}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(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(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() {\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(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\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\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport default interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport var warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nexport var cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nvar rainbow = cubehelix();\n\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}\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\"));\n\nexport var magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\n\nexport var inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\n\nexport var plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));\n","var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\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;\n\nexport var isReactDOMSupported = function isReactDOMSupported() {\n return versionHigherThanThirteen;\n};\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 */\nexport var getDOMNode = function getDOMNode(ref) {\n if (!isReactDOMSupported()) {\n return ref && ref.getDOMNode();\n }\n return ref;\n};\n\nvar USED_MESSAGES = {};\nvar HIDDEN_PROCESSES = {\n test: true,\n production: true\n};\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 */\nexport function warning(message) {\n var onlyShowMessageOnce = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n /* eslint-disable no-undef, no-process-env */\n if (global.process && HIDDEN_PROCESSES[process.env.NODE_ENV]) {\n return;\n }\n /* eslint-enable no-undef, no-process-env */\n if (!onlyShowMessageOnce || !USED_MESSAGES[message]) {\n /* eslint-disable no-console */\n console.warn(message);\n /* eslint-enable no-console */\n USED_MESSAGES[message] = true;\n }\n}\n\n/**\n * Convience wrapper for warning\n * @param {String} message - the message to be shown\n */\nexport function warnOnce(message) {\n warning(message, true);\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/**\n * Add zero to the domain.\n * @param {Array} arr Add zero to the domain.\n * @param {Number} value Add zero to domain.\n * @returns {Array} Adjusted domain.\n */\nexport function addValueToArray(arr, value) {\n var result = [].concat(arr);\n if (result[0] > value) {\n result[0] = value;\n }\n if (result[result.length - 1] < value) {\n result[result.length - 1] = value;\n }\n return result;\n}\n\n/**\n * Transforms a value ( number or date ) to a string.\n * @param {Date | number} value The value as date or number.\n * @returns {string | number} The value as string.\n */\nexport function transformValueToString(value) {\n return Object.prototype.toString.call(value) === '[object Date]' ? value.toDateString() : value;\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _SCALE_FUNCTIONS;\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport { scaleLinear, scalePoint, scaleOrdinal, scaleLog, scaleTime, scaleUtc } from 'd3-scale';\nimport { extent } from 'd3-array';\nimport { set } from 'd3-collection';\nimport { hsl } from 'd3-color';\n\nimport PropTypes from 'prop-types';\n\nimport { warning } from './react-utils';\nimport { getUniquePropertyValues, addValueToArray } from './data-utils';\n\n/**\n * Linear scale name.\n * @type {string}\n * @const\n */\nvar LINEAR_SCALE_TYPE = 'linear';\n\n/**\n * Ordinal scale name.\n * @type {string}\n * @const\n */\nvar ORDINAL_SCALE_TYPE = 'ordinal';\n\n/**\n * Category scale.\n * @type {string}\n * @const\n */\nvar CATEGORY_SCALE_TYPE = 'category';\n\n/**\n * Literal scale.\n * Differs slightly from d3's identity scale in that it does not coerce value\n * into numbers, it simply returns exactly what you give it\n * @type {string}\n * @const\n */\nvar LITERAL_SCALE_TYPE = 'literal';\n\n/**\n * Log scale name.\n * @type {string}\n * @const\n */\nvar LOG_SCALE_TYPE = 'log';\n\n/**\n * Time scale name.\n * @type {string}\n * @const\n */\nvar TIME_SCALE_TYPE = 'time';\n\n/**\n * Time UTC scale name.\n * @type {string}\n * @const\n */\nvar TIME_UTC_SCALE_TYPE = 'time-utc';\n\n/**\n * Scale functions that are supported in the library.\n * @type {Object}\n * @const\n */\nvar SCALE_FUNCTIONS = (_SCALE_FUNCTIONS = {}, _defineProperty(_SCALE_FUNCTIONS, LINEAR_SCALE_TYPE, scaleLinear), _defineProperty(_SCALE_FUNCTIONS, ORDINAL_SCALE_TYPE, scalePoint), _defineProperty(_SCALE_FUNCTIONS, CATEGORY_SCALE_TYPE, scaleOrdinal), _defineProperty(_SCALE_FUNCTIONS, LITERAL_SCALE_TYPE, literalScale), _defineProperty(_SCALE_FUNCTIONS, LOG_SCALE_TYPE, scaleLog), _defineProperty(_SCALE_FUNCTIONS, TIME_SCALE_TYPE, scaleTime), _defineProperty(_SCALE_FUNCTIONS, TIME_UTC_SCALE_TYPE, scaleUtc), _SCALE_FUNCTIONS);\n\n/**\n * Attrs for which a scale can be set up at XYPlot level\n * @type {Array}\n * @const\n */\n\nvar XYPLOT_ATTR = ['color', 'fill', 'opacity', 'stroke'];\n\n/**\n * Title case a given string\n * @param {String} str Array of values.\n * @returns {String} titlecased string\n */\nfunction toTitleCase(str) {\n return '' + str[0].toUpperCase() + str.slice(1);\n}\n\n/**\n * Find the smallest distance between the values on a given scale and return\n * the index of the element, where the smallest distance was found.\n * It returns the first occurrence of i where\n * `scale(value[i]) - scale(value[i - 1])` is minimal\n * @param {Array} values Array of values.\n * @param {Object} scaleObject Scale object.\n * @returns {number} Index of an element where the smallest distance was found.\n * @private\n */\nexport function _getSmallestDistanceIndex(values, scaleObject) {\n var scaleFn = getScaleFnFromScaleObject(scaleObject);\n var result = 0;\n if (scaleFn) {\n var nextValue = void 0;\n var currentValue = scaleFn(values[0]);\n var distance = Infinity;\n var nextDistance = void 0;\n\n for (var i = 1; i < values.length; i++) {\n nextValue = scaleFn(values[i]);\n nextDistance = Math.abs(nextValue - currentValue);\n if (nextDistance < distance) {\n distance = nextDistance;\n result = i;\n }\n currentValue = nextValue;\n }\n }\n return result;\n}\n\n/**\n * This is a workaround for issue that ordinal scale\n * does not have invert method implemented in d3-scale.\n * @param {Object} Ordinal d3-scale object.\n * @returns {void}\n * @private\n */\n\nfunction addInvertFunctionToOrdinalScaleObject(scale) {\n if (scale.invert) {\n return;\n }\n\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/**\n * Crate a scale function from the scale object.\n * @param {Object} scaleObject Scale object.\n - scaleObject.domain {Array}\n - scaleObject.range {Array}\n - scaleObject.type {string}\n - scaleObject.attr {string}\n * @returns {*} Scale function.\n * @private\n */\nexport function getScaleFnFromScaleObject(scaleObject) {\n if (!scaleObject) {\n return null;\n }\n var type = scaleObject.type,\n domain = scaleObject.domain,\n range = scaleObject.range;\n\n var modDomain = domain[0] === domain[1] ? domain[0] === 0 ? [-1, 0] : [-domain[0], domain[0]] : domain;\n if (type === LITERAL_SCALE_TYPE) {\n return literalScale(range[0]);\n }\n var scale = SCALE_FUNCTIONS[type]().domain(modDomain).range(range);\n if (type === ORDINAL_SCALE_TYPE) {\n scale.padding(0.5);\n addInvertFunctionToOrdinalScaleObject(scale);\n }\n return scale;\n}\n\n/**\n * Get the domain from the array of data.\n * @param {Array} allData All data.\n * @param {function} accessor - accessor for main value.\n * @param {function} accessor0 - accessor for the naught value.\n * @param {string} type Scale type.\n * @returns {Array} Domain.\n * @private\n */\nexport function getDomainByAccessor(allData, accessor, accessor0, type) {\n var domain = void 0;\n\n // Collect both attr and available attr0 values from the array of data.\n var values = allData.reduce(function (data, d) {\n var value = accessor(d);\n var value0 = accessor0(d);\n if (_isDefined(value)) {\n data.push(value);\n }\n if (_isDefined(value0)) {\n data.push(value0);\n }\n return data;\n }, []);\n\n if (!values.length) {\n return [];\n }\n\n // Create proper domain depending on the type of the scale.\n if (type !== ORDINAL_SCALE_TYPE && type !== CATEGORY_SCALE_TYPE) {\n domain = extent(values);\n } else {\n domain = set(values).values();\n }\n return domain;\n}\n\n/**\n * Create custom scale object from the value. When the scale is created from\n * this object, it should return the same value all time.\n * @param {string} attr Attribute.\n * @param {*} value Value.\n * @param {string} type - the type of scale being used\n * @param {function} accessor - the accessor function\n * @param {function} accessor0 - the accessor function for the potential naught value\n * @returns {Object} Custom scale object.\n * @private\n */\nfunction _createScaleObjectForValue(attr, value, type, accessor, accessor0) {\n if (type === LITERAL_SCALE_TYPE) {\n return {\n type: LITERAL_SCALE_TYPE,\n domain: [],\n range: [value],\n distance: 0,\n attr: attr,\n baseValue: undefined,\n isValue: true,\n accessor: accessor,\n accessor0: accessor0\n };\n }\n if (typeof value === 'undefined') {\n return null;\n }\n return {\n type: CATEGORY_SCALE_TYPE,\n range: [value],\n domain: [],\n distance: 0,\n attr: attr,\n baseValue: undefined,\n isValue: true,\n accessor: accessor,\n accessor0: accessor0\n };\n}\n\n/**\n * Create a regular scale object for a further use from the existing parameters.\n * @param {Array} domain - Domain.\n * @param {Array} range - Range.\n * @param {string} type - Type.\n * @param {number} distance - Distance.\n * @param {string} attr - Attribute.\n * @param {number} baseValue - Base value.\n * @param {function} accessor - Attribute accesor\n * @param {function} accessor0 - Attribute accesor for potential naught value\n * @returns {Object} Scale object.\n * @private\n */\nfunction _createScaleObjectForFunction(_ref) {\n var domain = _ref.domain,\n range = _ref.range,\n type = _ref.type,\n distance = _ref.distance,\n attr = _ref.attr,\n baseValue = _ref.baseValue,\n accessor = _ref.accessor,\n accessor0 = _ref.accessor0;\n\n return {\n domain: domain,\n range: range,\n type: type,\n distance: distance,\n attr: attr,\n baseValue: baseValue,\n isValue: false,\n accessor: accessor,\n accessor0: accessor0\n };\n}\n\n/**\n * Get scale object from props. E. g. object like {xRange, xDomain, xDistance,\n * xType} is transformed into {range, domain, distance, type}.\n * @param {Object} props Props.\n * @param {string} attr Attribute.\n * @returns {*} Null or an object with the scale.\n * @private\n */\nfunction _collectScaleObjectFromProps(props, attr) {\n var value = props[attr],\n fallbackValue = props['_' + attr + 'Value'],\n range = props[attr + 'Range'],\n _props$ = props[attr + 'Distance'],\n distance = _props$ === undefined ? 0 : _props$,\n baseValue = props[attr + 'BaseValue'],\n _props$2 = props[attr + 'Type'],\n type = _props$2 === undefined ? LINEAR_SCALE_TYPE : _props$2,\n noFallBack = props[attr + 'NoFallBack'],\n _props$3 = props['get' + toTitleCase(attr)],\n accessor = _props$3 === undefined ? function (d) {\n return d[attr];\n } : _props$3,\n _props$4 = props['get' + toTitleCase(attr) + '0'],\n accessor0 = _props$4 === undefined ? function (d) {\n return d[attr + '0'];\n } : _props$4;\n var domain = props[attr + 'Domain'];\n // Return value-based scale if the value is assigned.\n\n if (!noFallBack && typeof value !== 'undefined') {\n return _createScaleObjectForValue(attr, value, props[attr + 'Type'], accessor, accessor0);\n }\n // Pick up the domain from the properties and create a new one if it's not\n // available.\n if (typeof baseValue !== 'undefined') {\n domain = addValueToArray(domain, baseValue);\n }\n\n // Make sure that the minimum necessary properties exist.\n if (!range || !domain || !domain.length) {\n // Try to use the fallback value if it is available.\n return _createScaleObjectForValue(attr, fallbackValue, props[attr + 'Type'], accessor, accessor0);\n }\n\n return _createScaleObjectForFunction({\n domain: domain,\n range: range,\n type: type,\n distance: distance,\n attr: attr,\n baseValue: baseValue,\n accessor: accessor,\n accessor0: accessor0\n });\n}\n\n/**\n * Compute left domain adjustment for the given values.\n * @param {Array} values Array of values.\n * @returns {number} Domain adjustment.\n * @private\n */\nfunction _computeLeftDomainAdjustment(values) {\n if (values.length > 1) {\n return (values[1] - values[0]) / 2;\n }\n if (values.length === 1) {\n return values[0] - 0.5;\n }\n return 0;\n}\n\n/**\n * Compute right domain adjustment for the given values.\n * @param {Array} values Array of values.\n * @returns {number} Domain adjustment.\n * @private\n */\nfunction _computeRightDomainAdjustment(values) {\n if (values.length > 1) {\n return (values[values.length - 1] - values[values.length - 2]) / 2;\n }\n if (values.length === 1) {\n return values[0] - 0.5;\n }\n return 0;\n}\n\n/**\n * Compute distance for the given values.\n * @param {Array} values Array of values.\n * @param {Array} domain Domain.\n * @param {number} bestDistIndex Index of a best distance found.\n * @param {function} scaleFn Scale function.\n * @returns {number} Domain adjustment.\n * @private\n */\nfunction _computeScaleDistance(values, domain, bestDistIndex, scaleFn) {\n if (values.length > 1) {\n // Avoid zero indexes.\n var i = Math.max(bestDistIndex, 1);\n return Math.abs(scaleFn(values[i]) - scaleFn(values[i - 1]));\n }\n if (values.length === 1) {\n return Math.abs(scaleFn(domain[1]) - scaleFn(domain[0]));\n }\n return 0;\n}\n\n/**\n * Normilize array of values with a single value.\n * @param {Array} arr Array of data.\n * @param {Array} values Array of values.\n * @param {string} attr Attribute.\n * @param {string} type Type.\n * @private\n */\nfunction _normalizeValues(data, values, accessor0, type) {\n if (type === TIME_SCALE_TYPE && values.length === 1) {\n var attr0 = accessor0(data[0]);\n\n return [attr0].concat(_toConsumableArray(values));\n }\n\n return values;\n}\n\n/**\n * Get the distance, the smallest and the largest value of the domain.\n * @param {Array} data Array of data for the single series.\n * @param {Object} scaleObject Scale object.\n * @returns {{domain0: number, domainN: number, distance: number}} Result.\n * @private\n */\nexport function _getScaleDistanceAndAdjustedDomain(data, scaleObject) {\n var domain = scaleObject.domain,\n type = scaleObject.type,\n accessor = scaleObject.accessor,\n accessor0 = scaleObject.accessor0;\n\n\n var uniqueValues = getUniquePropertyValues(data, accessor);\n\n // Fix time scale if a data has only one value.\n var values = _normalizeValues(data, uniqueValues, accessor0, type);\n var index = _getSmallestDistanceIndex(values, scaleObject);\n\n var adjustedDomain = [].concat(domain);\n\n adjustedDomain[0] -= _computeLeftDomainAdjustment(values);\n adjustedDomain[domain.length - 1] += _computeRightDomainAdjustment(values);\n // Fix log scale if it's too small.\n if (type === LOG_SCALE_TYPE && domain[0] <= 0) {\n adjustedDomain[0] = Math.min(domain[1] / 10, 1);\n }\n\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/**\n * Returns true if scale adjustments are possible for a given scale.\n * @param {Object} props Props.\n * @param {Object} scaleObject Scale object.\n * @returns {boolean} True if scale adjustments possible.\n * @private\n */\nfunction _isScaleAdjustmentPossible(props, scaleObject) {\n var attr = scaleObject.attr;\n var _props$_adjustBy = props._adjustBy,\n adjustBy = _props$_adjustBy === undefined ? [] : _props$_adjustBy,\n _props$_adjustWhat = props._adjustWhat,\n adjustWhat = _props$_adjustWhat === undefined ? [] : _props$_adjustWhat;\n\n // The scale cannot be adjusted if there's no attributes to adjust, no\n // suitable values\n\n return adjustWhat.length && adjustBy.length && adjustBy.indexOf(attr) !== -1;\n}\n\n/**\n * Adjust continuous scales (e.g. 'linear', 'log' and 'time') by adding the\n * space from the left and right of them and by computing the best distance.\n * @param {Object} props Props.\n * @param {Object} scaleObject Scale object.\n * @returns {*} Scale object with adjustments.\n * @private\n */\nfunction _adjustContinuousScale(props, scaleObject) {\n var allSeriesData = props._allData,\n _props$_adjustWhat2 = props._adjustWhat,\n adjustWhat = _props$_adjustWhat2 === undefined ? [] : _props$_adjustWhat2;\n\n // Assign the initial values.\n\n var domainLength = scaleObject.domain.length;\n var domain = scaleObject.domain;\n\n var scaleDomain0 = domain[0];\n var scaleDomainN = domain[domainLength - 1];\n var scaleDistance = scaleObject.distance;\n\n // Find the smallest left position of the domain, the largest right position\n // of the domain and the best distance for them.\n allSeriesData.forEach(function (data, index) {\n if (adjustWhat.indexOf(index) === -1) {\n return;\n }\n if (data && data.length) {\n var _getScaleDistanceAndA = _getScaleDistanceAndAdjustedDomain(data, scaleObject),\n domain0 = _getScaleDistanceAndA.domain0,\n domainN = _getScaleDistanceAndA.domainN,\n distance = _getScaleDistanceAndA.distance;\n\n scaleDomain0 = Math.min(scaleDomain0, domain0);\n scaleDomainN = Math.max(scaleDomainN, domainN);\n scaleDistance = Math.max(scaleDistance, distance);\n }\n });\n\n scaleObject.domain = [scaleDomain0].concat(_toConsumableArray(domain.slice(1, -1)), [scaleDomainN]);\n\n scaleObject.distance = scaleDistance;\n\n return scaleObject;\n}\n\n/**\n * Get an adjusted scale. Suitable for 'category' and 'ordinal' scales.\n * @param {Object} scaleObject Scale object.\n * @returns {*} Scale object with adjustments.\n * @private\n */\nexport function _adjustCategoricalScale(scaleObject) {\n var scaleFn = getScaleFnFromScaleObject(scaleObject);\n var domain = scaleObject.domain,\n range = scaleObject.range;\n\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/**\n * Retrieve a scale object or a value from the properties passed.\n * @param {Object} props Object of props.\n * @param {string} attr Attribute.\n * @returns {*} Scale object, value or null.\n */\nexport function getScaleObjectFromProps(props, attr) {\n // Create the initial scale object.\n var scaleObject = _collectScaleObjectFromProps(props, attr);\n if (!scaleObject) {\n return null;\n }\n\n // Make sure if it's possible to add space to the scale object. If not,\n // return the object immediately.\n if (!_isScaleAdjustmentPossible(props, scaleObject)) {\n return scaleObject;\n }\n\n var type = scaleObject.type;\n // Depending on what type the scale is, apply different adjustments. Distances\n // for the ordinal and category scales are even, equal domains cannot be\n // adjusted.\n\n if (type === ORDINAL_SCALE_TYPE || type === CATEGORY_SCALE_TYPE) {\n return _adjustCategoricalScale(scaleObject);\n }\n return _adjustContinuousScale(props, scaleObject);\n}\n\n/**\n * Get d3 scale for a given prop.\n * @param {Object} props Props.\n * @param {string} attr Attribute.\n * @returns {function} d3 scale function.\n */\nexport function getAttributeScale(props, attr) {\n var scaleObject = getScaleObjectFromProps(props, attr);\n return getScaleFnFromScaleObject(scaleObject);\n}\n\n/**\n * Get the value of `attr` from the object.\n * @param {Object} d - data Object.\n * @param {Function} accessor - accessor function.\n * @returns {*} Value of the point.\n * @private\n */\nfunction _getAttrValue(d, accessor) {\n return accessor(d.data ? d.data : d);\n}\n\nfunction _isDefined(value) {\n return typeof value !== 'undefined';\n}\n\n/*\n * Adds a percentage of padding to a given domain\n * @param {Array} domain X or Y domain to pad.\n * @param {Number} padding Percentage of padding to add to domain\n * @returns {Array} Padded Domain\n */\nfunction _padDomain(domain, padding) {\n if (!domain) {\n return domain;\n }\n if (isNaN(parseFloat(domain[0])) || isNaN(parseFloat(domain[1]))) {\n return domain;\n }\n\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/**\n * Get prop functor (either a value or a function) for a given attribute.\n * @param {Object} props Series props.\n * @param {Function} accessor - Property accessor.\n * @returns {*} Function or value.\n */\nexport function getAttributeFunctor(props, attr) {\n var scaleObject = getScaleObjectFromProps(props, attr);\n if (scaleObject) {\n var scaleFn = getScaleFnFromScaleObject(scaleObject);\n return function (d) {\n return scaleFn(_getAttrValue(d, scaleObject.accessor));\n };\n }\n return null;\n}\n\n/**\n * Get the functor which extracts value form [attr]0 property. Use baseValue if\n * no attr0 property for a given object is defined. Fall back to domain[0] if no\n * base value is available.\n * @param {Object} props Object of props.\n * @param {string} attr Attribute name.\n * @returns {*} Function which returns value or null if no values available.\n */\nexport function getAttr0Functor(props, attr) {\n var scaleObject = getScaleObjectFromProps(props, attr);\n if (scaleObject) {\n var domain = scaleObject.domain;\n var _scaleObject$baseValu = scaleObject.baseValue,\n baseValue = _scaleObject$baseValu === undefined ? domain[0] : _scaleObject$baseValu;\n\n var scaleFn = getScaleFnFromScaleObject(scaleObject);\n return function (d) {\n var value = _getAttrValue(d, scaleObject.accessor0);\n return scaleFn(_isDefined(value) ? value : baseValue);\n };\n }\n return null;\n}\n\n/**\n * Tries to get the string|number value of the attr and falls back to\n * a fallback property in case if the value is a scale.\n * @param {Object} props Series props.\n * @param {string} attr Property name.\n * @returns {*} Function or value.\n */\nexport function getAttributeValue(props, attr) {\n var scaleObject = getScaleObjectFromProps(props, attr);\n if (scaleObject) {\n if (!scaleObject.isValue && props['_' + attr + 'Value'] === undefined) {\n warning('[React-vis] Cannot use data defined ' + attr + ' for this ' + 'series type. Using fallback value instead.');\n }\n return props['_' + attr + 'Value'] || scaleObject.range[0];\n }\n return null;\n}\n\n/**\n * Get prop types by the attribute.\n * @param {string} attr Attribute.\n * @returns {Object} Object of xDomain, xRange, xType, xDistance and _xValue,\n * where x is an attribute passed to the function.\n */\nexport function getScalePropTypesByAttribute(attr) {\n var _ref2;\n\n return _ref2 = {}, _defineProperty(_ref2, '_' + attr + 'Value', PropTypes.any), _defineProperty(_ref2, attr + 'Domain', PropTypes.array), _defineProperty(_ref2, 'get' + toTitleCase(attr), PropTypes.func), _defineProperty(_ref2, 'get' + toTitleCase(attr) + '0', PropTypes.func), _defineProperty(_ref2, attr + 'Range', PropTypes.array), _defineProperty(_ref2, attr + 'Type', PropTypes.oneOf(Object.keys(SCALE_FUNCTIONS))), _defineProperty(_ref2, attr + 'Distance', PropTypes.number), _defineProperty(_ref2, attr + 'BaseValue', PropTypes.any), _ref2;\n}\n\n/**\n * Extract the list of scale properties from the entire props object.\n * @param {Object} props Props.\n * @param {Array} attributes Array of attributes for the given\n * components (for instance, `['x', 'y', 'color']`).\n * @returns {Object} Collected props.\n */\nexport function extractScalePropsFromProps(props, attributes) {\n var result = {};\n Object.keys(props).forEach(function (key) {\n // this filtering is critical for extracting the correct accessors!\n var attr = attributes.find(function (a) {\n // width\n var isPlainSet = key.indexOf(a) === 0;\n // Ex: _data\n var isUnderscoreSet = key.indexOf('_' + a) === 0;\n // EX: getX\n var usesGet = key.indexOf('get' + toTitleCase(a)) === 0;\n return isPlainSet || isUnderscoreSet || usesGet;\n });\n if (!attr) {\n return;\n }\n result[key] = props[key];\n });\n return result;\n}\n\n/**\n * Extract the missing scale props from the given data and return them as\n * an object.\n * @param {Object} props Props.\n * @param {Array} data Array of all data.\n * @param {Array} attributes Array of attributes for the given\n * components (for instance, `['x', 'y', 'color']`).\n * @returns {Object} Collected props.\n */\nexport function getMissingScaleProps(props, data, attributes) {\n var result = {};\n // Make sure that the domain is set pad it if specified\n attributes.forEach(function (attr) {\n if (!props['get' + toTitleCase(attr)]) {\n result['get' + toTitleCase(attr)] = function (d) {\n return d[attr];\n };\n }\n if (!props['get' + toTitleCase(attr) + '0']) {\n result['get' + toTitleCase(attr) + '0'] = function (d) {\n return d[attr + '0'];\n };\n }\n if (!props[attr + 'Domain']) {\n result[attr + 'Domain'] = getDomainByAccessor(data, props['get' + toTitleCase(attr)] || result['get' + toTitleCase(attr)], props['get' + toTitleCase(attr) + '0'] || result['get' + toTitleCase(attr) + '0'], props[attr + 'Type']);\n if (props[attr + 'Padding']) {\n result[attr + 'Domain'] = _padDomain(result[attr + 'Domain'], props[attr + 'Padding']);\n }\n }\n });\n\n return result;\n}\n\n/**\n * Return a d3 scale that returns the literal value that was given to it\n * @returns {function} literal scale.\n */\nexport function literalScale(defaultValue) {\n function scale(d) {\n if (d === undefined) {\n return defaultValue;\n }\n return d;\n }\n\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\n return scale;\n}\n\nexport function getFontColorFromBackground(background) {\n if (background) {\n return hsl(background).l > 0.57 ? '#222' : '#fff';\n }\n return null;\n}\n\n/**\n * Creates fallback values for series from scales defined at XYPlot level.\n * @param {Object} props Props of the XYPlot object.\n * @param {Array} children Array of components, children of XYPlot\n * @returns {Array} Collected props.\n */\n\nexport function getXYPlotValues(props, children) {\n var XYPlotScales = XYPLOT_ATTR.reduce(function (prev, attr) {\n var domain = props[attr + 'Domain'],\n range = props[attr + 'Range'],\n type = props[attr + 'Type'];\n\n\n if (domain && range && type) {\n return _extends({}, prev, _defineProperty({}, attr, SCALE_FUNCTIONS[type]().domain(domain).range(range)));\n }\n return prev;\n }, {});\n\n return children.map(function (child) {\n return XYPLOT_ATTR.reduce(function (prev, attr) {\n if (child.props && child.props[attr] !== undefined) {\n var scaleInput = child.props[attr];\n var scale = XYPlotScales[attr];\n var fallbackValue = scale ? scale(scaleInput) : scaleInput;\n return _extends({}, prev, _defineProperty({}, '_' + attr + 'Value', fallbackValue));\n }\n return prev;\n }, {});\n });\n}\n\nvar OPTIONAL_SCALE_PROPS = ['Padding'];\nvar OPTIONAL_SCALE_PROPS_REGS = OPTIONAL_SCALE_PROPS.map(function (str) {\n return new RegExp(str + '$', 'i');\n});\n/**\n * Get the list of optional scale-related settings for XYPlot\n * mostly just used to find padding properties\n * @param {Object} props Object of props.\n * @returns {Object} Optional Props.\n * @private\n */\nexport function getOptionalScaleProps(props) {\n return Object.keys(props).reduce(function (acc, prop) {\n var propIsNotOptional = OPTIONAL_SCALE_PROPS_REGS.every(function (reg) {\n return !prop.match(reg);\n });\n if (propIsNotOptional) {\n return acc;\n }\n acc[prop] = props[prop];\n return acc;\n }, {});\n}\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 {calendar} from \"./time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond} from \"d3-time\";\n\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}\n","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport PropTypes from 'prop-types';\nimport { voronoi } from 'd3-voronoi';\nimport { PureComponent } from 'react';\n\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({ event: event });\n }\n }, _this._seriesMouseOutHandler = function (event) {\n var onSeriesMouseOut = _this.props.onSeriesMouseOut;\n\n if (onSeriesMouseOut) {\n onSeriesMouseOut({ event: event });\n }\n }, _this._seriesMouseOverHandler = function (event) {\n var onSeriesMouseOver = _this.props.onSeriesMouseOver;\n\n if (onSeriesMouseOver) {\n onSeriesMouseOver({ event: event });\n }\n }, _this._seriesRightClickHandler = function (event) {\n var onSeriesRightClick = _this.props.onSeriesRightClick;\n\n if (onSeriesRightClick) {\n onSeriesRightClick({ event: event });\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, { event: event });\n }\n if (onSeriesClick) {\n onSeriesClick({ event: event });\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, { event: event });\n }\n if (onSeriesMouseOut) {\n onSeriesMouseOut({ event: event });\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, { event: event });\n }\n if (onSeriesMouseOver) {\n onSeriesMouseOver({ event: event });\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, { event: event });\n }\n if (onSeriesRightClick) {\n onSeriesRightClick({ event: event });\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 if (onNearestXY) {\n this._handleNearestXY(event);\n } else {\n this._handleNearestX(event);\n }\n }\n }, {\n key: 'onParentTouchMove',\n value: function onParentTouchMove(e) {\n e.preventDefault();\n this.onParentMouseMove(e);\n }\n }, {\n key: 'onParentTouchStart',\n value: function onParentTouchStart(e) {\n // prevent mouse event emulation\n e.preventDefault();\n }\n\n /**\n * Get the attr0 functor.\n * @param {string} attr Attribute name.\n * @returns {*} Functor.\n * @private\n */\n\n }, {\n key: '_getAttr0Functor',\n value: function _getAttr0Functor(attr) {\n return getAttr0Functor(this.props, attr);\n }\n\n /**\n * Get attribute functor.\n * @param {string} attr Attribute name\n * @returns {*} Functor.\n * @protected\n */\n\n }, {\n key: '_getAttributeFunctor',\n value: function _getAttributeFunctor(attr) {\n return getAttributeFunctor(this.props, attr);\n }\n\n /**\n * Get the attribute value if it is available.\n * @param {string} attr Attribute name.\n * @returns {*} Attribute value if available, fallback value or undefined\n * otherwise.\n * @protected\n */\n\n }, {\n key: '_getAttributeValue',\n value: function _getAttributeValue(attr) {\n return getAttributeValue(this.props, attr);\n }\n\n /**\n * Get the scale object distance by the attribute from the list of properties.\n * @param {string} attr Attribute name.\n * @returns {number} Scale distance.\n * @protected\n */\n\n }, {\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\n var rect = currentTarget.getBoundingClientRect();\n var x = evt.clientX;\n var y = evt.clientY;\n if (evt.type === 'touchmove') {\n x = evt.touches[0].pageX;\n y = evt.touches[0].pageY;\n }\n return {\n x: x - rect.left - currentTarget.clientLeft - marginLeft,\n y: y - rect.top - currentTarget.clientTop - marginTop\n };\n }\n }, {\n key: '_handleNearestX',\n value: function _handleNearestX(event) {\n var _props3 = this.props,\n onNearestX = _props3.onNearestX,\n data = _props3.data;\n\n var minDistance = Number.POSITIVE_INFINITY;\n var value = null;\n var valueIndex = null;\n\n var coordinate = this._getXYCoordinateInContainer(event);\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 if (newDistance < minDistance) {\n minDistance = newDistance;\n value = item;\n valueIndex = i;\n }\n });\n if (!value) {\n return;\n }\n onNearestX(value, {\n innerX: xScaleFn(value),\n index: valueIndex,\n event: event.nativeEvent\n });\n }\n }, {\n key: '_handleNearestXY',\n value: function _handleNearestXY(event) {\n var _props4 = this.props,\n onNearestXY = _props4.onNearestXY,\n data = _props4.data;\n\n\n var coordinate = this._getXYCoordinateInContainer(event);\n var xScaleFn = this._getAttributeFunctor('x');\n var yScaleFn = this._getAttributeFunctor('y');\n\n // Create a voronoi with each node center points\n var voronoiInstance = voronoi().x(xScaleFn).y(yScaleFn);\n\n var foundPoint = voronoiInstance(data).find(coordinate.x, coordinate.y);\n var value = foundPoint.data;\n\n if (!value) {\n return;\n }\n onNearestXY(value, {\n innerX: foundPoint[0],\n innerY: foundPoint[1],\n index: foundPoint.index,\n event: event.nativeEvent\n });\n }\n\n /**\n * Click handler for the entire series.\n * @param {Object} event Event.\n * @protected\n */\n\n\n /**\n * Mouse out handler for the entire series.\n * @param {Object} event Event.\n * @protected\n */\n\n\n /**\n * Mouse over handler for the entire series.\n * @param {Object} event Event.\n * @protected\n */\n\n\n /**\n * Right Click handler for the entire series.\n * @param {Object} event Event.\n * @protected\n */\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 /**\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 /**\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 /**\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 /**\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;\n\nexport default AbstractSeries;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nexport var DISCRETE_COLOR_RANGE = ['#12939A', '#79C7E3', '#1A3177', '#FF9833', '#EF5D28'];\n\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'];\n\nexport var CONTINUOUS_COLOR_RANGE = ['#EF5D28', '#FF9833'];\n\nexport var SIZE_RANGE = [1, 10];\n\nexport var OPACITY_RANGE = [0.1, 1];\nexport var OPACITY_TYPE = 'literal';\nexport var DEFAULT_OPACITY = 1;\n\nexport var DEFAULT_SIZE = 5;\n\nexport var DEFAULT_COLOR = DISCRETE_COLOR_RANGE[0];\n\nexport var DEFAULT_TICK_SIZE = 7;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport AbstractSeries from '../plot/series/abstract-series';\nimport { DISCRETE_COLOR_RANGE, DEFAULT_OPACITY } from '../theme';\n\n/**\n * Check if the component is series or not.\n * @param {React.Component} child Component.\n * @returns {boolean} True if the child is series, false otherwise.\n */\nexport function isSeriesChild(child) {\n var prototype = child.type.prototype;\n\n return prototype instanceof AbstractSeries;\n}\n\n/**\n * Get all series from the 'children' object of the component.\n * @param {Object} children Children.\n * @returns {Array} Array of children.\n */\nexport function getSeriesChildren(children) {\n return React.Children.toArray(children).filter(function (child) {\n return child && isSeriesChild(child);\n });\n}\n\n/**\n * Collect the map of repetitions of the series type for all children.\n * @param {Array} children Array of children.\n * @returns {{}} Map of repetitions where sameTypeTotal is the total amount and\n * sameTypeIndex is always 0.\n */\nfunction collectSeriesTypesInfo(children) {\n var result = {};\n children.filter(isSeriesChild).forEach(function (child) {\n var displayName = child.type.displayName;\n var cluster = child.props.cluster;\n\n if (!result[displayName]) {\n result[displayName] = {\n sameTypeTotal: 0,\n sameTypeIndex: 0,\n clusters: new Set()\n };\n }\n result[displayName].clusters.add(cluster);\n result[displayName].sameTypeTotal++;\n });\n return result;\n}\n\n/**\n * Check series to see if it has angular data that needs to be converted\n * @param {Array} data - an array of objects to check\n * @returns {Boolean} whether or not this series contains polar configuration\n */\nfunction seriesHasAngleRadius() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n if (!data) {\n return false;\n }\n return data.some(function (row) {\n return row.radius && row.angle;\n });\n}\n\n/**\n * Possibly convert polar coordinates to x/y for computing domain\n * @param {Array} data - an array of objects to check\n * @param {String} attr - the property being checked\n * @returns {Boolean} whether or not this series contains polar configuration\n */\nfunction prepareData(data) {\n if (!seriesHasAngleRadius(data)) {\n return data;\n }\n\n return data.map(function (row) {\n return _extends({}, row, {\n x: row.radius * Math.cos(row.angle),\n y: row.radius * Math.sin(row.angle)\n });\n });\n}\n\n/**\n * Collect the stacked data for all children in use. If the children don't have\n * the data (e.g. the child is invalid series or something else), then the child\n * is skipped.\n * Each next value of attr is equal to the previous value plus the difference\n * between attr0 and attr.\n * @param {Array} children Array of children.\n * @param {string} attr Attribute to stack by.\n * @returns {Array} New array of children for the series.\n */\nexport function getStackedData(children, attr) {\n var areSomeSeriesStacked = children.some(function (series) {\n return series && series.props.stack;\n });\n // It stores the last segment position added to each bar, separated by cluster.\n var latestAttrPositions = {};\n\n return children.reduce(function (accumulator, series, seriesIndex) {\n // Skip the children that are not series (e.g. don't have any data).\n if (!series) {\n accumulator.push(null);\n return accumulator;\n }\n var seriesType = series.type.displayName;\n\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\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\n accumulator.push(preppedData.map(function (d, dIndex) {\n var _extends2, _latestAttrPositions$2;\n\n if (!latestAttrPositions[cluster]) {\n latestAttrPositions[cluster] = {};\n }\n if (!latestAttrPositions[cluster][seriesType]) {\n latestAttrPositions[cluster][seriesType] = {};\n }\n\n var prevD = latestAttrPositions[cluster][seriesType][d[baseAttr]];\n // It is the first segment of a bar.\n if (!prevD) {\n var _latestAttrPositions$;\n\n latestAttrPositions[cluster][seriesType][d[baseAttr]] = (_latestAttrPositions$ = {}, _defineProperty(_latestAttrPositions$, attr0, d[attr0]), _defineProperty(_latestAttrPositions$, attr, d[attr]), _latestAttrPositions$);\n\n return _extends({}, d);\n }\n\n // Calculate the position of the next segment in a bar.\n var nextD = _extends({}, d, (_extends2 = {}, _defineProperty(_extends2, attr0, prevD[attr]), _defineProperty(_extends2, attr, prevD[attr] + d[attr] - (d[attr0] || 0)), _extends2));\n\n latestAttrPositions[cluster][seriesType][d[baseAttr]] = (_latestAttrPositions$2 = {}, _defineProperty(_latestAttrPositions$2, attr0, nextD[attr0]), _defineProperty(_latestAttrPositions$2, attr, nextD[attr]), _latestAttrPositions$2);\n\n return nextD;\n }));\n\n return accumulator;\n }, []);\n}\n\n/**\n * Get the list of series props for a child.\n * @param {Array} children Array of all children.\n * @returns {Array} Array of series props for each child. If a child is not a\n * series, than it's undefined.\n */\nexport function getSeriesPropsFromChildren(children) {\n var result = [];\n var seriesTypesInfo = collectSeriesTypesInfo(children);\n var seriesIndex = 0;\n var _opacityValue = DEFAULT_OPACITY;\n children.forEach(function (child) {\n var props = void 0;\n if (isSeriesChild(child)) {\n var seriesTypeInfo = seriesTypesInfo[child.type.displayName];\n var _colorValue = DISCRETE_COLOR_RANGE[seriesIndex % DISCRETE_COLOR_RANGE.length];\n props = _extends({}, seriesTypeInfo, {\n seriesIndex: seriesIndex,\n _colorValue: _colorValue,\n _opacityValue: _opacityValue\n });\n seriesTypeInfo.sameTypeIndex++;\n seriesIndex++;\n if (child.props.cluster) {\n props.cluster = child.props.cluster;\n // Using Array.from() so we can use .indexOf\n props.clusters = Array.from(seriesTypeInfo.clusters);\n props.sameTypeTotal = props.clusters.length;\n props.sameTypeIndex = props.clusters.indexOf(child.props.cluster);\n }\n }\n result.push(props);\n });\n return result;\n}\n\n/**\n * Find the max radius value from the nodes to be rendered after they have been\n * transformed into an array\n * @param {Array} data - the tree data after it has been broken into a iterable\n * it is an array of objects!\n * @returns {number} the maximum value in coordinates for the radial variable\n */\nexport function getRadialDomain(data) {\n return data.reduce(function (res, row) {\n return Math.max(row.radius, res);\n }, 0);\n}\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'];\n\nexport function getStackParams(props) {\n var _stackBy = props._stackBy,\n valuePosAttr = props.valuePosAttr,\n cluster = props.cluster;\n var _props$sameTypeTotal = props.sameTypeTotal,\n sameTypeTotal = _props$sameTypeTotal === undefined ? 1 : _props$sameTypeTotal,\n _props$sameTypeIndex = props.sameTypeIndex,\n sameTypeIndex = _props$sameTypeIndex === undefined ? 0 : _props$sameTypeIndex;\n\n // If bars are stacked, but not clustering, override `sameTypeTotal` and\n // `sameTypeIndex` such that bars are stacked and not staggered.\n\n if (_stackBy === valuePosAttr && !cluster) {\n sameTypeTotal = 1;\n sameTypeIndex = 0;\n }\n return { sameTypeTotal: sameTypeTotal, sameTypeIndex: sameTypeIndex };\n}","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {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, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { arc as arcBuilder } from 'd3-shape';\n\nimport AbstractSeries from './abstract-series';\nimport { getAttributeFunctor, getAttr0Functor, extractScalePropsFromProps, getMissingScaleProps, getScalePropTypesByAttribute } from '../../utils/scales-utils';\n\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--arc';\nvar ATTRIBUTES = ['radius', 'angle'];\n\nvar defaultProps = _extends({}, AbstractSeries.defaultProps, {\n center: { x: 0, y: 0 },\n arcClassName: '',\n className: '',\n style: {},\n padAngle: 0\n});\n\n/**\n * Prepare the internal representation of row for real use.\n * This is necessary because d3 insists on starting at 12 oclock and moving\n * clockwise, rather than starting at 3 oclock and moving counter clockwise\n * as one might expect from polar\n * @param {Object} row - coordinate object to be modifed\n * @return {Object} angle corrected object\n */\nfunction modifyRow(row) {\n var radius = row.radius,\n angle = row.angle,\n angle0 = row.angle0;\n\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 _this.state = { scaleProps: scaleProps };\n return _this;\n }\n\n _createClass(ArcSeries, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n this.setState({ 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 var userScaleProps = extractScalePropsFromProps(props, ATTRIBUTES);\n var missingScaleProps = getMissingScaleProps(_extends({}, defaultScaleProps, userScaleProps), props.data, ATTRIBUTES);\n\n return _extends({}, defaultScaleProps, userScaleProps, missingScaleProps);\n }\n\n /**\n * Get the list of scale-related settings that should be applied by default.\n * @param {Object} props Object of props.\n * @returns {Object} Defaults.\n * @private\n */\n\n }, {\n key: '_getDefaultScaleProps',\n value: function _getDefaultScaleProps(props) {\n var innerWidth = props.innerWidth,\n innerHeight = props.innerHeight;\n\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\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(\n 'g',\n { className: 'rv-xy-plot__series--arc__animation-wrapper' },\n React.createElement(\n Animation,\n _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS,\n data: cloneData\n }),\n React.createElement(ArcSeries, _extends({}, this.props, {\n animation: null,\n disableSeries: true,\n data: cloneData\n }))\n ),\n React.createElement(ArcSeries, _extends({}, this.props, {\n animation: null,\n hideSeries: true,\n style: { stroke: 'red' }\n }))\n );\n }\n\n var scaleProps = this.state.scaleProps;\n var radiusDomain = scaleProps.radiusDomain;\n // need to generate our own functors as abstract series doesnt have anythign for us\n\n var radius = getAttributeFunctor(scaleProps, 'radius');\n var radius0 = getAttr0Functor(scaleProps, 'radius');\n var angle = getAttributeFunctor(scaleProps, 'angle');\n var angle0 = getAttr0Functor(scaleProps, 'angle');\n // but it does have good color support!\n var fill = this._getAttributeFunctor('fill') || this._getAttributeFunctor('color');\n var stroke = this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color');\n var opacity = this._getAttributeFunctor('opacity');\n var x = this._getAttributeFunctor('x');\n var y = this._getAttributeFunctor('y');\n\n return React.createElement(\n 'g',\n {\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 },\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\n return ArcSeries;\n}(AbstractSeries);\n\nArcSeries.propTypes = _extends({}, AbstractSeries.propTypes, getScalePropTypesByAttribute('radius'), getScalePropTypesByAttribute('angle'), {\n center: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n arcClassName: PropTypes.string,\n padAngle: PropTypes.oneOfType([PropTypes.func, PropTypes.number])\n});\nArcSeries.defaultProps = defaultProps;\nArcSeries.displayName = 'ArcSeries';\n\nexport default ArcSeries;","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x0 = pointX,\n x1 = null,\n y0 = constant(0),\n y1 = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = data.length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport line from \"./line.js\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport area from \"./area.js\";\nimport {lineRadial} from \"./lineRadial.js\";\n\nexport default function() {\n var a = area().curve(curveRadialLinear),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return a;\n}\n","export default function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n}\n","export var slice = Array.prototype.slice;\n","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, argv = slice.call(arguments), s = source.apply(this, argv), 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}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\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}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function() {\n var type = constant(circle),\n size = constant(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var peaks = series.map(peak);\n return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n}\n\nfunction peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var sums = series.map(sum);\n return none(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nexport function sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(series) {\n return ascending(series).reverse();\n}\n","import appearance from \"./appearance.js\";\nimport {sum} from \"./ascending.js\";\n\nexport default function(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum),\n order = appearance(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n return none(series).reverse();\n}\n","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport * as d3Shape from 'd3-shape';\n\nimport Animation from '../../animation';\nimport { DEFAULT_OPACITY } from '../../theme';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { warning } from '../../utils/react-utils';\n\nimport AbstractSeries from './abstract-series';\n\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 if (curve !== null) {\n if (typeof curve === 'string' && d3Shape[curve]) {\n area = area.curve(d3Shape[curve]);\n } else if (typeof curve === 'function') {\n area = area.curve(curve);\n }\n }\n area = area.defined(getNull);\n area = area.x(x).y0(y0).y1(y);\n return area(data);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n curve = _props.curve,\n data = _props.data,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n style = _props.style;\n\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(\n Animation,\n _extends({}, this.props, { animatedProps: ANIMATED_SERIES_PROPS }),\n React.createElement(AreaSeries, _extends({}, this.props, { animation: null }))\n );\n }\n\n var x = this._getAttributeFunctor('x');\n var y = this._getAttributeFunctor('y');\n var y0 = this._getAttr0Functor('y');\n var stroke = this._getAttributeValue('stroke') || this._getAttributeValue('color');\n var fill = this._getAttributeValue('fill') || this._getAttributeValue('color');\n var newOpacity = this._getAttributeValue('opacity');\n var opacity = Number.isFinite(newOpacity) ? newOpacity : DEFAULT_OPACITY;\n var getNull = this.props.nullAccessor || this.props.getNull;\n var d = this._renderArea(data, x, y0, y, curve, getNull);\n\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.propTypes = _extends({}, AbstractSeries.propTypes, {\n getNull: PropTypes.func\n});\nAreaSeries.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n getNull: function getNull() {\n return true;\n }\n});\n\nexport default AreaSeries;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\n\nvar propTypes = {\n style: PropTypes.shape({\n bottom: PropTypes.object,\n left: PropTypes.object,\n right: PropTypes.object,\n top: PropTypes.object\n }),\n // supplied by xyplot\n marginTop: PropTypes.number,\n marginBottom: PropTypes.number,\n marginLeft: PropTypes.number,\n marginRight: PropTypes.number,\n innerWidth: PropTypes.number,\n innerHeight: PropTypes.number\n};\n\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\n var height = innerHeight + marginTop + marginBottom;\n var width = innerWidth + marginLeft + marginRight;\n return React.createElement(\n '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 }),\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 }),\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 }),\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}\n\nBorders.displayName = 'Borders';\nBorders.defaultProps = {\n className: '',\n style: {\n all: {},\n bottom: {},\n left: {},\n right: {},\n top: {}\n }\n};\nBorders.propTypes = propTypes;\nBorders.requiresSVG = true;\n\nexport default Borders;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\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\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(\n 'g',\n {\n transform: 'translate(' + xPos + ', ' + yPos + ')',\n className: 'rv-xy-plot__axis__title ' + className },\n React.createElement(\n 'text',\n style,\n text\n )\n );\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.propTypes = {\n className: PropTypes.string,\n includeMargin: PropTypes.bool,\n style: PropTypes.object,\n text: PropTypes.string.isRequired,\n xPercent: PropTypes.number.isRequired,\n yPercent: PropTypes.number.isRequired\n};\nChartLabel.defaultProps = {\n className: '',\n includeMargin: true,\n text: '',\n xPercent: 0,\n yPercent: 0,\n style: {}\n};\nexport default ChartLabel;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport { range } from 'd3-array';\nimport { scaleLinear } from 'd3-scale';\n\nexport var ORIENTATION = {\n TOP: 'top',\n LEFT: 'left',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n VERTICAL: 'vertical',\n HORIZONTAL: 'horizontal'\n};\n\nexport var DIRECTION = {\n VERTICAL: 'vertical',\n HORIZONTAL: 'horizontal'\n};\n\n/**\n * Get total amount of ticks from a given size in pixels.\n * @param {number} size Size of the axis in pixels.\n * @returns {number} Total amount of ticks.\n */\nexport function getTicksTotalFromSize(size) {\n if (size < 700) {\n if (size > 300) {\n return 10;\n }\n return 5;\n }\n return 20;\n}\n\n/**\n * Get the tick values from a given d3 scale.\n * @param {d3.scale} scale Scale function.\n * @param {number} tickTotal Total number of ticks\n * @param {Array} tickValues Array of tick values if they exist.\n * @returns {Array} Array of tick values.\n */\nexport function getTickValues(scale, tickTotal, tickValues) {\n return !tickValues ? scale.ticks ? scale.ticks(tickTotal) : scale.domain() : tickValues;\n}\n\n/**\n * Generate a description of a decorative axis in terms of a linear equation\n * y = slope * x + offset in coordinates\n * @param {Object} axisStart Object of format {x, y} describing in coordinates\n * the start position of the decorative axis\n * @param {Object} axisEnd Object of format {x, y} describing in coordinates\n * the start position of the decorative axis\n * @returns {Number} Object describing each the line in coordinates\n */\nexport function generateFit(axisStart, axisEnd) {\n // address the special case when the slope is infinite\n if (axisStart.x === axisEnd.x) {\n return {\n left: axisStart.y,\n right: axisEnd.y,\n slope: 0,\n offset: axisStart.x\n };\n }\n var slope = (axisStart.y - axisEnd.y) / (axisStart.x - axisEnd.x);\n return {\n left: axisStart.x,\n right: axisEnd.x,\n // generate the linear projection of the axis direction\n slope: slope,\n offset: axisStart.y - slope * axisStart.x\n };\n}\n\n/**\n * Generate a description of a decorative axis in terms of a linear equation\n * y = slope * x + offset in coordinates\n * @param props\n * props.@param {Object} axisStart Object of format {x, y} describing in coordinates\n * the start position of the decorative axis\n * props.@param {Object} axisEnd Object of format {x, y} describing in coordinates\n * the start position of the decorative axis\n * props.@param {Number} numberOfTicks The number of ticks on the axis\n * props.@param {Array.Numbers} axisDomain The values to be interpolated across for the axis\n * @returns {Number} Object describing the slope and the specific coordinates of the points\n */\nexport function generatePoints(_ref) {\n var axisStart = _ref.axisStart,\n axisEnd = _ref.axisEnd,\n numberOfTicks = _ref.numberOfTicks,\n axisDomain = _ref.axisDomain;\n\n var _generateFit = generateFit(axisStart, axisEnd),\n left = _generateFit.left,\n right = _generateFit.right,\n slope = _generateFit.slope,\n offset = _generateFit.offset;\n // construct a linear band of points, then map them\n\n\n var pointSlope = (right - left) / numberOfTicks;\n var axisScale = scaleLinear().domain([left, right]).range(axisDomain);\n\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 { y: val, x: slope * val + offset, text: axisScale(val) };\n }\n return { x: val, y: slope * val + offset, text: axisScale(val) };\n }).slice(0, numberOfTicks + 1)\n };\n}\n\n/**\n * Compute the angle (in radians) of a decorative axis\n * @param {Object} axisStart Object of format {x, y} describing in coordinates\n * the start position of the decorative axis\n * @param {Object} axisEnd Object of format {x, y} describing in coordinates\n * the start position of the decorative axis\n * @returns {Number} Angle in radials\n */\nexport function getAxisAngle(axisStart, axisEnd) {\n if (axisStart.x === axisEnd.x) {\n return axisEnd.y > axisStart.y ? Math.PI / 2 : 3 * Math.PI / 2;\n }\n return Math.atan((axisEnd.y - axisStart.y) / (axisEnd.x - axisStart.x));\n}\n\nexport default {\n DIRECTION: DIRECTION,\n ORIENTATION: ORIENTATION,\n getTicksTotalFromSize: getTicksTotalFromSize,\n getTickValues: getTickValues\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React, { PureComponent } from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport { getAttributeScale } from '../utils/scales-utils';\nimport Animation, { AnimationPropType } from '../animation';\n\nimport { getTicksTotalFromSize, getTickValues } from '../utils/axis-utils';\n\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\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(\n Animation,\n _extends({}, this.props, { animatedProps: animatedProps }),\n React.createElement(CircularGridLines, _extends({}, this.props, { 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\n\n var xScale = getAttributeScale(props, 'x');\n var yScale = getAttributeScale(props, 'y');\n var values = getTickValues(xScale, tickTotal, tickValues);\n return React.createElement(\n 'g',\n {\n transform: 'translate(' + (xScale(centerX) + marginLeft) + ',' + (yScale(centerY) + marginTop) + ')',\n className: 'rv-xy-plot__circular-grid-lines'\n },\n values.reduce(function (res, value, index) {\n var radius = xScale(value);\n if (rRange && (radius < rRange[0] || radius > rRange[1])) {\n return res;\n }\n return res.concat([React.createElement('circle', _extends({ cx: 0, cy: 0, r: radius }, {\n key: index,\n className: 'rv-xy-plot__circular-grid-lines__line',\n style: style\n }))]);\n }, [])\n );\n }\n }]);\n\n return CircularGridLines;\n}(PureComponent);\n\nCircularGridLines.displayName = 'CircularGridLines';\nCircularGridLines.propTypes = {\n centerX: PropTypes.number,\n centerY: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n top: PropTypes.number,\n left: PropTypes.number,\n rRange: PropTypes.arrayOf(PropTypes.number),\n\n style: PropTypes.object,\n\n tickValues: PropTypes.arrayOf(PropTypes.number),\n tickTotal: PropTypes.number,\n\n animation: AnimationPropType,\n // generally supplied by xyplot\n marginTop: PropTypes.number,\n marginBottom: PropTypes.number,\n marginLeft: PropTypes.number,\n marginRight: PropTypes.number,\n innerWidth: PropTypes.number,\n innerHeight: PropTypes.number\n};\nCircularGridLines.defaultProps = {\n centerX: 0,\n centerY: 0\n};\nCircularGridLines.requiresSVG = true;\n\nexport default CircularGridLines;","var array = Array.prototype;\n\nexport var slice = array.slice;\n","export default function(a, b) {\n return a - b;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(ring, hole) {\n var i = -1, n = hole.length, c;\n while (++i < n) if (c = ringContains(ring, hole[i])) return c;\n return 0;\n}\n\nfunction ringContains(ring, point) {\n var x = point[0], y = point[1], contains = -1;\n for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {\n var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1];\n if (segmentContains(pi, pj, point)) return 0;\n if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains;\n }\n return contains;\n}\n\nfunction segmentContains(a, b, c) {\n var i; 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}\n","export default function() {}\n","import {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\";\n\nvar cases = [\n [],\n [[[1.0, 1.5], [0.5, 1.0]]],\n [[[1.5, 1.0], [1.0, 1.5]]],\n [[[1.5, 1.0], [0.5, 1.0]]],\n [[[1.0, 0.5], [1.5, 1.0]]],\n [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]],\n [[[1.0, 0.5], [1.0, 1.5]]],\n [[[1.0, 0.5], [0.5, 1.0]]],\n [[[0.5, 1.0], [1.0, 0.5]]],\n [[[1.0, 1.5], [1.0, 0.5]]],\n [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]],\n [[[1.5, 1.0], [1.0, 0.5]]],\n [[[0.5, 1.0], [1.5, 1.0]]],\n [[[1.0, 1.5], [1.5, 1.0]]],\n [[[0.5, 1.0], [1.0, 1.5]]],\n []\n];\n\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);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n var domain = extent(values), start = domain[0], 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 }\n\n // Accumulate, smooth contour rings, assign holes to exterior rings.\n // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js\n function contour(values, value) {\n var polygons = [],\n holes = [];\n\n isorings(values, value, function(ring) {\n smooth(ring, values, value);\n if (area(ring) > 0) polygons.push([ring]);\n else holes.push(ring);\n });\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\n return {\n type: \"MultiPolygon\",\n value: value,\n coordinates: polygons\n };\n }\n\n // Marching squares with isolines stitched into rings.\n // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js\n function isorings(values, value, callback) {\n var fragmentByStart = new Array,\n fragmentByEnd = new Array,\n x, y, t0, t1, t2, t3;\n\n // Special case for the first row (y = -1, t2 = t3 = 0).\n x = y = -1;\n t1 = values[0] >= value;\n cases[t1 << 1].forEach(stitch);\n while (++x < dx - 1) {\n t0 = t1, t1 = values[x + 1] >= value;\n cases[t0 | t1 << 1].forEach(stitch);\n }\n cases[t1 << 0].forEach(stitch);\n\n // General case for the intermediate rows.\n while (++y < dy - 1) {\n x = -1;\n t1 = values[y * dx + dx] >= value;\n t2 = values[y * dx] >= value;\n cases[t1 << 1 | t2 << 2].forEach(stitch);\n while (++x < dx - 1) {\n t0 = t1, t1 = values[y * dx + dx + x + 1] >= value;\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);\n }\n cases[t1 | t2 << 3].forEach(stitch);\n }\n\n // Special case for the last row (y = dy - 1, t0 = t1 = 0).\n x = -1;\n t2 = values[y * dx] >= value;\n cases[t2 << 2].forEach(stitch);\n while (++x < dx - 1) {\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t2 << 2 | t3 << 3].forEach(stitch);\n }\n cases[t2 << 3].forEach(stitch);\n\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, g;\n if (f = fragmentByEnd[startIndex]) {\n if (g = fragmentByStart[endIndex]) {\n delete fragmentByEnd[f.end];\n delete fragmentByStart[g.start];\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)};\n }\n } else {\n delete fragmentByEnd[f.end];\n f.ring.push(end);\n fragmentByEnd[f.end = endIndex] = f;\n }\n } else if (f = fragmentByStart[endIndex]) {\n if (g = fragmentByEnd[startIndex]) {\n delete fragmentByStart[f.start];\n delete fragmentByEnd[g.end];\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)};\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] = {start: startIndex, end: endIndex, ring: [start, end]};\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 if (x > 0 && x < dx && xt === x) {\n v0 = values[yt * dx + xt - 1];\n point[0] = x + (value - v0) / (v1 - v0) - 0.5;\n }\n if (y > 0 && y < dy && yt === y) {\n v0 = values[(yt - 1) * dx + xt];\n point[1] = y + (value - v0) / (v1 - v0) - 0.5;\n }\n });\n }\n\n contours.contour = contour;\n\n contours.size = function(_) {\n if (!arguments.length) return [dx, dy];\n var _0 = Math.ceil(_[0]), _1 = Math.ceil(_[1]);\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}\n","export default function(ring) {\n var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];\n while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];\n return area;\n}\n","// TODO Optimize edge cases.\n// TODO Optimize index calculation.\n// TODO Optimize arguments.\nexport function blurX(source, target, r) {\n var n = source.width,\n m = source.height,\n w = (r << 1) + 1;\n for (var j = 0; j < m; ++j) {\n for (var i = 0, sr = 0; i < n + r; ++i) {\n if (i < n) {\n sr += source.data[i + j * n];\n }\n if (i >= r) {\n if (i >= w) {\n sr -= source.data[i - w + j * n];\n }\n target.data[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w);\n }\n }\n }\n}\n\n// TODO Optimize edge cases.\n// TODO Optimize index calculation.\n// TODO Optimize arguments.\nexport function blurY(source, target, r) {\n var n = source.width,\n m = source.height,\n w = (r << 1) + 1;\n for (var i = 0; i < n; ++i) {\n for (var j = 0, sr = 0; j < m + r; ++j) {\n if (j < m) {\n sr += source.data[i + j * n];\n }\n if (j >= r) {\n if (j >= w) {\n sr -= source.data[i + (j - w) * n];\n }\n target.data[i + (j - r) * n] = sr / Math.min(j + 1, m - 1 + w - j, w);\n }\n }\n }\n}\n","import {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, // blur radius\n k = 2, // log2(grid cell size)\n o = r * 3, // grid offset, to pad for blur\n n = (dx + o * 2) >> k, // grid width\n m = (dy + o * 2) >> k, // 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\n data.forEach(function(d, i, data) {\n var xi = (+x(d, i, data) + o) >> k,\n yi = (+y(d, i, data) + o) >> k,\n wi = +weight(d, i, data);\n if (xi >= 0 && xi < n && yi >= 0 && yi < m) {\n values0[xi + yi * n] += wi;\n }\n });\n\n // TODO Optimize.\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n\n var tz = threshold(values0);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n var stop = max(values0);\n tz = tickStep(0, stop, tz);\n tz = range(0, Math.floor(stop / tz) * tz, tz);\n tz.shift();\n }\n\n return contours()\n .thresholds(tz)\n .size([n, m])\n (values0)\n .map(transform);\n }\n\n function transform(geometry) {\n geometry.value *= Math.pow(2, -2 * k); // Density in points per square pixel.\n geometry.coordinates.forEach(transformPolygon);\n return geometry;\n }\n\n function transformPolygon(coordinates) {\n coordinates.forEach(transformRing);\n }\n\n function transformRing(coordinates) {\n coordinates.forEach(transformPoint);\n }\n\n // TODO Optimize.\n function transformPoint(coordinates) {\n coordinates[0] = coordinates[0] * Math.pow(2, k) - o;\n coordinates[1] = coordinates[1] * Math.pow(2, k) - o;\n }\n\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 var _0 = Math.ceil(_[0]), _1 = Math.ceil(_[1]);\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}\n","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) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max = value;\n while (++i < 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}\n","export default function(x) {\n return x;\n}\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(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function(object, stream) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\n\nvar streamGeometryType = {\n Sphere: function(object, stream) {\n stream.sphere();\n },\n Point: function(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function(object, stream) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1, n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\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}\n","// Adds floating point numbers with twice the normal precision.\n// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and\n// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)\n// 305–363 (1997).\n// Code adapted from GeographicLib by Charles F. F. Karney,\n// http://geographiclib.sourceforge.net/\n\nexport default function() {\n return new Adder;\n}\n\nfunction Adder() {\n this.reset();\n}\n\nAdder.prototype = {\n constructor: Adder,\n reset: function() {\n this.s = // rounded value\n this.t = 0; // exact error\n },\n add: function(y) {\n add(temp, y, this.t);\n add(this, temp.s, this.s);\n if (this.s) this.t += temp.t;\n else this.s = temp.t;\n },\n valueOf: function() {\n return this.s;\n }\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}\n","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\n\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\n\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) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}\n","export default function noop() {}\n","import adder from \"../adder.js\";\nimport {abs} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar areaSum = adder(),\n areaRingSum = adder(),\n x00,\n y00,\n x0,\n y0;\n\nvar areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n areaSum.add(abs(areaRingSum));\n areaRingSum.reset();\n },\n result: function() {\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;\n","import noop from \"../noop.js\";\n\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function() {\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;\n","import {sqrt} from \"../math.js\";\n\n// TODO Enforce positive area for exterior, negative area for interior?\n\nvar X0 = 0,\n Y0 = 0,\n Z0 = 0,\n X1 = 0,\n Y1 = 0,\n Z1 = 0,\n X2 = 0,\n Y2 = 0,\n Z2 = 0,\n x00,\n y00,\n x0,\n y0;\n\nvar centroidStream = {\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.point = centroidPoint;\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n },\n result: function() {\n var centroid = Z2 ? [X2 / Z2, Y2 / Z2]\n : Z1 ? [X1 / Z1, Y1 / Z1]\n : Z0 ? [X0 / Z0, Y0 / Z0]\n : [NaN, NaN];\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n 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, dy = y - y0, 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\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n\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;\n","import {tau} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nexport default function PathContext(context) {\n this._context = context;\n}\n\nPathContext.prototype = {\n _radius: 4.5,\n pointRadius: function(_) {\n return this._radius = _, this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._context.moveTo(x, y);\n this._point = 1;\n break;\n }\n case 1: {\n this._context.lineTo(x, y);\n break;\n }\n default: {\n this._context.moveTo(x + this._radius, y);\n this._context.arc(x, y, this._radius, 0, tau);\n break;\n }\n }\n },\n result: noop\n};\n","import adder from \"../adder.js\";\nimport {sqrt} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar lengthSum = adder(),\n lengthRing,\n x00,\n y00,\n x0,\n y0;\n\nvar lengthStream = {\n point: noop,\n lineStart: function() {\n lengthStream.point = lengthPointFirst;\n },\n lineEnd: function() {\n if (lengthRing) lengthPoint(x00, y00);\n lengthStream.point = noop;\n },\n polygonStart: function() {\n lengthRing = true;\n },\n polygonEnd: function() {\n lengthRing = null;\n },\n result: function() {\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;\n","export default function PathString() {\n this._string = [];\n}\n\nPathString.prototype = {\n _radius: 4.5,\n _circle: circle(4.5),\n pointRadius: function(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._string.push(\"M\", x, \",\", y);\n this._point = 1;\n break;\n }\n case 1: {\n this._string.push(\"L\", x, \",\", y);\n break;\n }\n default: {\n if (this._circle == null) this._circle = circle(this._radius);\n this._string.push(\"M\", x, \",\", y, this._circle);\n break;\n }\n }\n },\n result: function() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n};\n\nfunction circle(radius) {\n return \"m0,\" + radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius\n + \"z\";\n}\n","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { contourDensity } from 'd3-contour';\nimport { geoPath } from 'd3-geo';\nimport { scaleLinear } from 'd3-scale';\n\nimport AbstractSeries from './abstract-series';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { CONTINUOUS_COLOR_RANGE } from '../../theme';\n\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 }, { min: Infinity, max: -Infinity });\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\n if (!data || !innerWidth || !innerHeight) {\n return null;\n }\n\n if (animation) {\n return React.createElement(\n Animation,\n _extends({}, this.props, { animatedProps: ANIMATED_SERIES_PROPS }),\n React.createElement(ContourSeries, _extends({}, this.props, { animation: null }))\n );\n }\n\n var x = this._getAttributeFunctor('x');\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\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(\n 'g',\n {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n },\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\n return ContourSeries;\n}(AbstractSeries);\n\nContourSeries.propTypes = _extends({}, AbstractSeries.propTypes, {\n animation: PropTypes.bool,\n bandwidth: PropTypes.number,\n className: PropTypes.string,\n marginLeft: PropTypes.number,\n marginTop: PropTypes.number,\n style: PropTypes.object\n});\n\nContourSeries.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n bandwidth: 40,\n style: {}\n});\n\nexport default ContourSeries;","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\";\n\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 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}\n","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React, { PureComponent } from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport { transformValueToString } from '../utils/data-utils';\n\nimport { getAttributeFunctor } from '../utils/scales-utils';\n\n/**\n * Format title by detault.\n * @param {Array} values List of values.\n * @returns {*} Formatted value or undefined.\n */\nfunction defaultTitleFormat(values) {\n var value = getFirstNonEmptyValue(values);\n if (value) {\n return {\n title: 'x',\n value: transformValueToString(value.x)\n };\n }\n}\n\n/**\n * Format items by default.\n * @param {Array} values Array of values.\n * @returns {*} Formatted list of items.\n */\nfunction defaultItemsFormat(values) {\n return values.map(function (v, i) {\n if (v) {\n return { value: v.y, 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 */\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 /**\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\n var items = itemsFormat(values);\n if (!items) {\n return null;\n }\n return items.filter(function (i) {\n return i;\n }).map(function renderValue(item, i) {\n return React.createElement(\n 'div',\n { className: 'rv-crosshair__item', key: 'item' + i },\n React.createElement(\n 'span',\n { className: 'rv-crosshair__item__title' },\n item.title\n ),\n ': ',\n React.createElement(\n 'span',\n { className: 'rv-crosshair__item__value' },\n item.value\n )\n );\n });\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\n var titleItem = titleFormat(values);\n if (!titleItem) {\n return null;\n }\n return React.createElement(\n 'div',\n { className: 'rv-crosshair__title', key: 'title', style: style.title },\n React.createElement(\n 'span',\n { className: 'rv-crosshair__title__title' },\n titleItem.title\n ),\n ': ',\n React.createElement(\n 'span',\n { className: 'rv-crosshair__title__value' },\n titleItem.value\n )\n );\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\n var value = getFirstNonEmptyValue(values);\n if (!value) {\n return null;\n }\n var x = getAttributeFunctor(this.props, 'x');\n var innerLeft = x(value);\n\n var _props$orientation = this.props.orientation,\n orientation = _props$orientation === undefined ? innerLeft > innerWidth / 2 ? 'left' : 'right' : _props$orientation;\n\n var left = marginLeft + innerLeft;\n var top = marginTop;\n var innerClassName = 'rv-crosshair__inner rv-crosshair__inner--' + orientation;\n\n return React.createElement(\n 'div',\n {\n className: 'rv-crosshair ' + className,\n style: { left: left + 'px', top: top + 'px' }\n },\n React.createElement('div', {\n className: 'rv-crosshair__line',\n style: _extends({ height: innerHeight + 'px' }, style.line)\n }),\n React.createElement(\n 'div',\n { className: innerClassName },\n children ? children : React.createElement(\n 'div',\n { className: 'rv-crosshair__inner__content', style: style.box },\n React.createElement(\n 'div',\n null,\n this._renderCrosshairTitle(),\n this._renderCrosshairItems()\n )\n )\n )\n );\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';\n\nexport default Crosshair;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { 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\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport AbstractSeries from './abstract-series';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\n\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--custom-svg-wrapper';\n\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 case 'star':\n var starPoints = [].concat(_toConsumableArray(new Array(5))).map(function (c, index) {\n var angle = index / 5 * Math.PI * 2;\n var innerAngle = angle + Math.PI / 10;\n var outerAngle = angle - Math.PI / 10;\n // ratio of inner polygon to outer polgyon\n var innerRadius = size / 2.61;\n return '\\n ' + Math.cos(outerAngle) * size + ' ' + Math.sin(outerAngle) * size + '\\n ' + Math.cos(innerAngle) * innerRadius + ' ' + Math.sin(innerAngle) * innerRadius + '\\n ';\n }).join(' ');\n return React.createElement('polygon', {\n points: starPoints,\n x: '0',\n y: '0',\n height: size,\n width: size,\n style: style\n });\n case 'square':\n return React.createElement('rect', {\n x: '' + -size / 2,\n y: '' + -size / 2,\n height: size,\n width: size,\n style: style\n });\n default:\n case 'circle':\n return React.createElement('circle', { cx: '0', cy: '0', r: size / 2, style: style });\n }\n}\n\nfunction getInnerComponent(_ref) {\n var customComponent = _ref.customComponent,\n defaultType = _ref.defaultType,\n positionInPixels = _ref.positionInPixels,\n positionFunctions = _ref.positionFunctions,\n style = _ref.style,\n propsSize = _ref.propsSize;\n var size = customComponent.size;\n\n var aggStyle = _extends({}, style, customComponent.style || {});\n var innerComponent = customComponent.customComponent;\n if (!innerComponent && typeof defaultType === 'string') {\n return predefinedComponents(defaultType, size || propsSize, aggStyle);\n }\n // if default component is a function\n if (!innerComponent) {\n return defaultType(customComponent, positionInPixels, aggStyle);\n }\n if (typeof innerComponent === 'string') {\n return predefinedComponents(innerComponent || defaultType, size, aggStyle);\n }\n // if inner component is a function\n return innerComponent(customComponent, positionInPixels, aggStyle);\n}\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\n if (!data || !innerWidth || !innerHeight) {\n return null;\n }\n\n if (animation) {\n return React.createElement(\n Animation,\n _extends({}, this.props, { animatedProps: ANIMATED_SERIES_PROPS }),\n React.createElement(CustomSVGSeries, _extends({}, this.props, { animation: false }))\n );\n }\n\n var x = this._getAttributeFunctor('x');\n var y = this._getAttributeFunctor('y');\n var contents = data.map(function (seriesComponent, index) {\n var positionInPixels = {\n x: x(seriesComponent),\n y: y(seriesComponent)\n };\n var innerComponent = getInnerComponent({\n customComponent: seriesComponent,\n positionInPixels: positionInPixels,\n defaultType: customComponent,\n positionFunctions: { x: x, y: y },\n style: style,\n propsSize: size\n });\n return React.createElement(\n 'g',\n {\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 },\n innerComponent\n );\n });\n return React.createElement(\n 'g',\n {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n },\n contents\n );\n }\n }]);\n\n return CustomSVGSeries;\n}(AbstractSeries);\n\nCustomSVGSeries.propTypes = {\n animation: PropTypes.bool,\n className: PropTypes.string,\n customComponent: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n data: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n y: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired\n })).isRequired,\n marginLeft: PropTypes.number,\n marginTop: PropTypes.number,\n style: PropTypes.object,\n size: PropTypes.number,\n onValueMouseOver: PropTypes.func,\n onValueMouseOut: PropTypes.func\n};\n\nCustomSVGSeries.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n animation: false,\n customComponent: 'circle',\n style: {},\n size: 2\n});\n\nexport default CustomSVGSeries;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport { generatePoints, getAxisAngle } from '../../utils/axis-utils';\n\n/**\n * Generate the actual polygons to be plotted\n * @param {Object} props\n - props.animation {Boolean}\n - props.axisDomain {Array} a pair of values specifying the domain of the axis\n - props.numberOfTicks{Number} the number of ticks on the axis\n - props.axisStart {Object} a object specify in cartesian space the start of the axis\n example: {x: 0, y: 0}\n - props.axisEnd {Object} a object specify in cartesian space the start of the axis\n - props.tickValue {Func} a formatting function for the tick values\n - props.tickSize {Number} a pixel size of the axis\n - props.style {Object} The style object for the axis\n * @return {Component} the plotted axis\n */\nexport default function decorativeAxisTick(props) {\n var axisDomain = props.axisDomain,\n numberOfTicks = props.numberOfTicks,\n axisStart = props.axisStart,\n axisEnd = props.axisEnd,\n tickValue = props.tickValue,\n tickSize = props.tickSize,\n style = props.style;\n\n var _generatePoints = generatePoints({\n axisStart: axisStart,\n axisEnd: axisEnd,\n numberOfTicks: numberOfTicks,\n axisDomain: axisDomain\n }),\n points = _generatePoints.points;\n // add a quarter rotation to make ticks orthogonal to axis\n\n\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 return React.createElement(\n 'g',\n {\n key: index,\n transform: 'translate(' + point.x + ', ' + point.y + ')',\n className: 'rv-xy-plot__axis__tick'\n },\n React.createElement('line', _extends({}, tickProps, { className: 'rv-xy-plot__axis__tick__line' })),\n React.createElement(\n 'text',\n _extends({}, textProps, { className: 'rv-xy-plot__axis__tick__text' }),\n tickValue(point.text)\n )\n );\n });\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport { format } from 'd3-format';\nimport PropTypes from 'prop-types';\n\nimport AbstractSeries from '../series/abstract-series';\nimport DecorativeAxisTicks from './decorative-axis-ticks';\nimport Animation from '../../animation';\n\nvar predefinedClassName = 'rv-xy-manipulable-axis rv-xy-plot__axis';\n\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\n if (animation) {\n return React.createElement(\n Animation,\n _extends({}, this.props, { animatedProps: animatedProps }),\n React.createElement(DecorativeAxis, _extends({}, this.props, { animation: null }))\n );\n }\n\n var x = this._getAttributeFunctor('x');\n var y = this._getAttributeFunctor('y');\n\n return React.createElement(\n 'g',\n {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n },\n React.createElement('line', _extends({}, _extends({\n x1: x({ x: axisStart.x }),\n x2: x({ x: axisEnd.x }),\n y1: y({ y: axisStart.y }),\n y2: y({ y: axisEnd.y })\n }, style.line), {\n className: 'rv-xy-plot__axis__line'\n })),\n React.createElement(\n 'g',\n { className: 'rv-xy-manipulable-axis__ticks' },\n DecorativeAxisTicks({\n axisDomain: axisDomain,\n axisEnd: { x: x(axisEnd), y: y(axisEnd) },\n axisStart: { x: x(axisStart), y: y(axisStart) },\n numberOfTicks: numberOfTicks,\n tickValue: tickValue,\n tickSize: tickSize,\n style: style\n })\n )\n );\n }\n }]);\n\n return DecorativeAxis;\n}(AbstractSeries);\n\nvar DEFAULT_FORMAT = format('.2r');\n\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.propTypes = _extends({}, AbstractSeries.propTypes, {\n axisDomain: PropTypes.arrayOf(PropTypes.number).isRequired,\n axisEnd: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }).isRequired,\n axisStart: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }).isRequired,\n className: PropTypes.string,\n numberOfTicks: PropTypes.number,\n tickValue: PropTypes.func,\n tickSize: PropTypes.number,\n style: PropTypes.shape({\n line: PropTypes.object,\n ticks: PropTypes.object,\n text: PropTypes.object\n })\n});\nDecorativeAxis.displayName = 'DecorativeAxis';\nexport default DecorativeAxis;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nvar predefinedClassName = 'rv-gradient-defs';\n\nfunction GradientDefs(props) {\n var className = props.className;\n\n return React.createElement(\n 'defs',\n { className: predefinedClassName + ' ' + className },\n props.children\n );\n}\n\nGradientDefs.displayName = 'GradientDefs';\nGradientDefs.requiresSVG = true;\nGradientDefs.propTypes = {\n className: PropTypes.string\n};\nGradientDefs.defaultProps = {\n className: ''\n};\n\nexport default GradientDefs;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React, { PureComponent } from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport { getAttributeScale } from '../utils/scales-utils';\nimport Animation, { AnimationPropType } from '../animation';\n\nimport { getTicksTotalFromSize, getTickValues, DIRECTION } from '../utils/axis-utils';\n\nvar VERTICAL = DIRECTION.VERTICAL,\n HORIZONTAL = DIRECTION.HORIZONTAL;\n\n\nvar propTypes = {\n direction: PropTypes.oneOf([VERTICAL, HORIZONTAL]),\n attr: PropTypes.string.isRequired,\n width: PropTypes.number,\n height: PropTypes.number,\n top: PropTypes.number,\n left: PropTypes.number,\n\n style: PropTypes.object,\n\n tickValues: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])),\n tickTotal: PropTypes.number,\n\n animation: AnimationPropType,\n\n // generally supplied by xyplot\n marginTop: PropTypes.number,\n marginBottom: PropTypes.number,\n marginLeft: PropTypes.number,\n marginRight: PropTypes.number,\n innerWidth: PropTypes.number,\n innerHeight: PropTypes.number\n};\n\nvar defaultProps = {\n direction: VERTICAL\n};\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\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(\n Animation,\n _extends({}, this.props, { animatedProps: animatedProps }),\n React.createElement(GridLines, _extends({}, this.props, { 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\n var isVertical = direction === VERTICAL;\n var tickXAttr = isVertical ? 'y' : 'x';\n var tickYAttr = isVertical ? 'x' : 'y';\n var length = isVertical ? height : width;\n\n var scale = getAttributeScale(props, attr);\n var values = getTickValues(scale, tickTotal, tickValues);\n\n return React.createElement(\n 'g',\n {\n transform: 'translate(' + left + ',' + top + ')',\n className: 'rv-xy-plot__grid-lines ' + className\n },\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\n return GridLines;\n}(PureComponent);\n\nGridLines.displayName = 'GridLines';\nGridLines.defaultProps = defaultProps;\nGridLines.propTypes = propTypes;\nGridLines.requiresSVG = true;\n\nexport default GridLines;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\n\nimport AbstractSeries from './abstract-series';\n\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 if (animation) {\n return React.createElement(\n Animation,\n _extends({}, this.props, { animatedProps: ANIMATED_SERIES_PROPS }),\n React.createElement(HeatmapSeries, _extends({}, this.props, { animation: null }))\n );\n }\n\n var _rectStyle$style = _extends({ rectStyle: {} }, style),\n rectStyle = _rectStyle$style.rectStyle;\n\n var x = this._getAttributeFunctor('x');\n var y = this._getAttributeFunctor('y');\n var opacity = this._getAttributeFunctor('opacity');\n var fill = this._getAttributeFunctor('fill') || this._getAttributeFunctor('color');\n var stroke = this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color');\n var xDistance = this._getScaleDistance('x');\n var yDistance = this._getScaleDistance('y');\n return React.createElement(\n 'g',\n {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n },\n data.map(function (d, i) {\n var attrs = _extends({\n style: _extends({\n stroke: stroke && stroke(d),\n fill: fill && fill(d),\n opacity: opacity && opacity(d)\n }, style)\n }, rectStyle, {\n x: x(d) - xDistance / 2,\n y: y(d) - yDistance / 2,\n width: xDistance,\n height: yDistance,\n key: i,\n onClick: function onClick(e) {\n return _this2._valueClickHandler(d, e);\n },\n onContextMenu: function onContextMenu(e) {\n return _this2._valueRightClickHandler(d, e);\n },\n onMouseOver: function onMouseOver(e) {\n return _this2._valueMouseOverHandler(d, e);\n },\n onMouseOut: function onMouseOut(e) {\n return _this2._valueMouseOutHandler(d, e);\n }\n });\n return React.createElement('rect', attrs);\n })\n );\n }\n }], [{\n key: 'getParentConfig',\n value: function getParentConfig(attr) {\n var isDomainAdjustmentNeeded = attr === 'x' || attr === 'y';\n return { isDomainAdjustmentNeeded: isDomainAdjustmentNeeded };\n }\n }]);\n\n return HeatmapSeries;\n}(AbstractSeries);\n\nHeatmapSeries.propTypes = _extends({}, AbstractSeries.propTypes);\n\nHeatmapSeries.displayName = 'HeatmapSeries';\n\nexport default HeatmapSeries;","var 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 = {}, bins = [], i, n = points.length;\n\n for (i = 0; i < n; ++i) {\n if (isNaN(px = +x.call(null, point = points[i], i, points))\n || isNaN(py = +y.call(null, point, i, points))) continue;\n\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, bin = binsById[id];\n if (bin) bin.push(point);\n 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, 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 for (var y = j * dy; y < y1 + r; y += dy, ++j) {\n for (var x = i * dx + (j & 1) * dx / 2; x < x1 + dx / 2; x += dx) {\n centers.push([x, y]);\n }\n }\n return centers;\n };\n\n hexbin.mesh = function() {\n var fragment = hexagon(r).slice(0, 4).join(\"l\");\n return hexbin.centers().map(function(p) { return \"M\" + p + \"m\" + fragment; }).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}\n","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { 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\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Animation from '../../animation';\nimport { hexbin } from 'd3-hexbin';\nimport { scaleLinear } from 'd3-scale';\n\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { CONTINUOUS_COLOR_RANGE } from '../../theme';\nimport AbstractSeries from './abstract-series';\n\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 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\n if (!data) {\n return null;\n }\n\n if (animation) {\n return React.createElement(\n Animation,\n _extends({}, this.props, { animatedProps: ANIMATED_SERIES_PROPS }),\n React.createElement(HexbinSeries, _extends({}, this.props, { animation: null }))\n );\n }\n var x = this._getAttributeFunctor('x');\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\n var hexagonPath = hex.hexagon();\n var hexes = hex(data);\n\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(\n 'g',\n {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n },\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\n return HexbinSeries;\n}(AbstractSeries);\n\nHexbinSeries.propTypes = _extends({}, AbstractSeries.propTypes, {\n radius: PropTypes.number\n});\n\nHexbinSeries.defaultProps = {\n radius: 20,\n colorRange: CONTINUOUS_COLOR_RANGE,\n xOffset: 0,\n yOffset: 0\n};\n\nHexbinSeries.displayName = 'HexbinSeries';\n\nexport default HexbinSeries;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport AbstractSeries from './series/abstract-series';\nimport { getAttributeScale } from '../utils/scales-utils';\nimport PropTypes from 'prop-types';\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 { xLoc: xLoc, yLoc: yLoc };\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: { top: 0, right: 0, bottom: 0, left: 0 },\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\n var plotHeight = innerHeight + marginTop + marginBottom;\n var plotWidth = innerWidth + marginLeft + marginRight;\n var touchWidth = highlightWidth || plotWidth;\n var touchHeight = highlightHeight || plotHeight;\n\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\n\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\n var clickedOutsideDragX = dragArea && (xLoc < left || xLoc > right);\n var clickedOutsideDragY = dragArea && (yLoc < top || yLoc > bottom);\n if (enableX && enableY) {\n return clickedOutsideDragX || clickedOutsideDragY;\n }\n if (enableX) {\n return clickedOutsideDragX;\n }\n if (enableY) {\n return clickedOutsideDragY;\n }\n return true;\n }\n }, {\n key: '_convertAreaToCoordinates',\n value: function _convertAreaToCoordinates(brushArea) {\n // NOTE only continuous scales are supported for brushing/getting coordinates back\n var _props4 = this.props,\n enableX = _props4.enableX,\n enableY = _props4.enableY,\n marginLeft = _props4.marginLeft,\n marginTop = _props4.marginTop;\n\n var xScale = getAttributeScale(this.props, 'x');\n var yScale = getAttributeScale(this.props, 'y');\n\n // Ensure that users wishes are being respected about which scales are evaluated\n // this is specifically enabled to ensure brushing on mixed categorical and linear\n // charts will run as expected\n\n if (enableX && enableY) {\n return {\n bottom: yScale.invert(brushArea.bottom),\n left: xScale.invert(brushArea.left - marginLeft),\n right: xScale.invert(brushArea.right - marginLeft),\n top: yScale.invert(brushArea.top)\n };\n }\n\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 _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 if (drag && !dragArea || !drag || clickedOutsideDrag) {\n startArea(false, clickedOutsideDrag);\n\n if (onBrushStart) {\n onBrushStart(e);\n }\n return;\n }\n\n if (drag && dragArea) {\n startArea(true, clickedOutsideDrag);\n if (onDragStart) {\n onDragStart(e);\n }\n }\n }\n }, {\n key: 'stopBrushing',\n value: function stopBrushing(e) {\n var _state4 = this.state,\n brushing = _state4.brushing,\n dragging = _state4.dragging,\n brushArea = _state4.brushArea;\n // Quickly short-circuit if the user isn't brushing in our component\n\n if (!brushing && !dragging) {\n return;\n }\n var _props6 = this.props,\n onBrushEnd = _props6.onBrushEnd,\n onDragEnd = _props6.onDragEnd,\n drag = _props6.drag;\n\n var noHorizontal = Math.abs(brushArea.right - brushArea.left) < 5;\n var noVertical = Math.abs(brushArea.top - brushArea.bottom) < 5;\n // Invoke the callback with null if the selected area was < 5px\n var isNulled = noVertical || noHorizontal;\n // Clear the draw area\n this.setState({\n brushing: false,\n dragging: false,\n brushArea: drag ? brushArea : { top: 0, right: 0, bottom: 0, left: 0 },\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 this.setState({ brushArea: brushArea });\n\n if (onBrush) {\n onBrush(this._convertAreaToCoordinates(brushArea));\n }\n }\n\n if (drag && dragging) {\n var _brushArea = this._getDragArea(xLoc, yLoc);\n this.setState({ brushArea: _brushArea });\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\n\n var leftPos = 0;\n if (highlightX) {\n var xScale = getAttributeScale(this.props, 'x');\n leftPos = xScale(highlightX);\n }\n\n var topPos = 0;\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\n return React.createElement(\n 'g',\n {\n transform: 'translate(' + leftPos + ', ' + topPos + ')',\n className: className + ' rv-highlight-container'\n },\n React.createElement('rect', {\n className: 'rv-mouse-target',\n fill: 'black',\n opacity: '0',\n x: '0',\n y: '0',\n width: Math.max(touchWidth, 0),\n height: Math.max(touchHeight, 0),\n onMouseDown: function onMouseDown(e) {\n return _this3.startBrushing(e);\n },\n onMouseMove: function onMouseMove(e) {\n return _this3.onBrush(e);\n },\n onMouseUp: function onMouseUp(e) {\n return _this3.stopBrushing(e);\n },\n onMouseLeave: function onMouseLeave(e) {\n return _this3.stopBrushing(e);\n }\n // preventDefault() so that mouse event emulation does not happen\n , onTouchEnd: function onTouchEnd(e) {\n e.preventDefault();\n _this3.stopBrushing(e);\n },\n onTouchCancel: function onTouchCancel(e) {\n e.preventDefault();\n _this3.stopBrushing(e);\n },\n onContextMenu: function onContextMenu(e) {\n return e.preventDefault();\n },\n onContextMenuCapture: function onContextMenuCapture(e) {\n return e.preventDefault();\n }\n }),\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\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};\n\nHighlight.propTypes = _extends({}, AbstractSeries.propTypes, {\n enableX: PropTypes.bool,\n enableY: PropTypes.bool,\n highlightHeight: PropTypes.number,\n highlightWidth: PropTypes.number,\n highlightX: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n highlightY: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n onBrushStart: PropTypes.func,\n onDragStart: PropTypes.func,\n onBrush: PropTypes.func,\n onDrag: PropTypes.func,\n onBrushEnd: PropTypes.func,\n onDragEnd: PropTypes.func\n});\n\nexport default Highlight;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React, { PureComponent } from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport { transformValueToString } from '../utils/data-utils';\n\nimport { getAttributeFunctor } from '../utils/scales-utils';\n\n/*\n * Hint provides two options for placement of hint:\n * a) around a data point in one of four quadrants (imagine the point bisected\n * by two axes -vertical, horizontal- creating 4 quadrants around a data\n * point).\n * b) **New** pin to an edge of chart/plot area and position along that edge\n * using data point's other dimension value.\n *\n * To support these two options, deprecate one Hint props (orientation) with two\n * new Hint align prop object (horizontal, vertical) with following values:\n *\n * horizontal: auto, left, right, leftEdge, rightEdge\n * vertical: auto, bottom, top, bottomEdge, topEdge\n *\n * Thus, the following ALIGN constants are the values for horizontal\n * and vertical\n */\nvar ALIGN = {\n AUTO: 'auto',\n LEFT: 'left',\n RIGHT: 'right',\n LEFT_EDGE: 'leftEdge',\n RIGHT_EDGE: 'rightEdge',\n BOTTOM: 'bottom',\n TOP: 'top',\n BOTTOM_EDGE: 'bottomEdge',\n TOP_EDGE: 'topEdge'\n};\n\n/**\n * For backwards support, retain the ORIENTATION prop constants\n */\nvar ORIENTATION = {\n BOTTOM_LEFT: 'bottomleft',\n BOTTOM_RIGHT: 'bottomright',\n TOP_LEFT: 'topleft',\n TOP_RIGHT: 'topright'\n};\n\n/**\n * Default format function for the value.\n * @param {Object} value Value.\n * @returns {Array} title-value pairs.\n */\nfunction defaultFormat(value) {\n return Object.keys(value).map(function getProp(key) {\n return { title: key, value: transformValueToString(value[key]) };\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 /**\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\n var align = orientation ? this._mapOrientationToAlign(orientation) : { horizontal: horizontal, vertical: vertical };\n if (horizontal === ALIGN.AUTO) {\n align.horizontal = x > innerWidth / 2 ? ALIGN.LEFT : ALIGN.RIGHT;\n }\n if (vertical === ALIGN.AUTO) {\n align.vertical = y > innerHeight / 2 ? ALIGN.TOP : ALIGN.BOTTOM;\n }\n return align;\n }\n\n /**\n * Get the class names from align values.\n * @param {Object} align object with horizontal and vertical prop strings.\n * @returns {string} Class names.\n * @private\n */\n\n }, {\n key: '_getAlignClassNames',\n value: function _getAlignClassNames(align) {\n var orientation = this.props.orientation;\n\n var orientationClass = orientation ? 'rv-hint--orientation-' + orientation : '';\n return orientationClass + ' rv-hint--horizontalAlign-' + align.horizontal + '\\n rv-hint--verticalAlign-' + align.vertical;\n }\n\n /**\n * Get a CSS mixin for a proper positioning of the element.\n * @param {Object} align object with horizontal and vertical prop strings.\n * @param {number} x X position.\n * @param {number} y Y position.\n * @returns {Object} Object, that may contain `left` or `right, `top` or\n * `bottom` properties.\n * @private\n */\n\n }, {\n key: '_getAlignStyle',\n value: function _getAlignStyle(align, x, y) {\n return _extends({}, this._getXCSS(align.horizontal, x), this._getYCSS(align.vertical, y));\n }\n\n /**\n * Get the bottom coordinate of the hint.\n * When y undefined or null, edge case, pin bottom.\n * @param {number} y Y.\n * @returns {{bottom: *}} Mixin.\n * @private\n */\n\n }, {\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\n return {\n bottom: marginBottom + innerHeight - y\n };\n }\n\n /**\n * Get the left coordinate of the hint.\n * When x undefined or null, edge case, pin left.\n * @param {number} x X.\n * @returns {{left: *}} Mixin.\n * @private\n */\n\n }, {\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\n return {\n left: marginLeft + x\n };\n }\n\n /**\n * Get the right coordinate of the hint.\n * When x undefined or null, edge case, pin right.\n * @param {number} x X.\n * @returns {{right: *}} Mixin.\n * @private\n */\n\n }, {\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\n return {\n right: marginRight + innerWidth - x\n };\n }\n\n /**\n * Get the top coordinate of the hint.\n * When y undefined or null, edge case, pin top.\n * @param {number} y Y.\n * @returns {{top: *}} Mixin.\n * @private\n */\n\n }, {\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\n return {\n top: marginTop + y\n };\n }\n\n /**\n * Get the position for the hint and the appropriate class name.\n * @returns {{style: Object, positionClassName: string}} Style and className for the\n * hint.\n * @private\n */\n\n }, {\n key: '_getPositionInfo',\n value: function _getPositionInfo() {\n var _props4 = this.props,\n value = _props4.value,\n getAlignStyle = _props4.getAlignStyle;\n\n\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 case ALIGN.RIGHT_EDGE:\n // this pins x to left edge\n return this._getCSSRight(null);\n case ALIGN.LEFT:\n // this places hint text to the left of center, so set its right edge\n return this._getCSSRight(x);\n case ALIGN.RIGHT:\n default:\n // this places hint text to the right of center, so set its left edge\n // default case should not be possible but if it happens set to RIGHT\n return this._getCSSLeft(x);\n }\n }\n }, {\n key: '_getYCSS',\n value: function _getYCSS(verticalAlign, y) {\n // obtain yCSS\n switch (verticalAlign) {\n case ALIGN.TOP_EDGE:\n // this pins x to top edge\n return this._getCSSTop(null);\n case ALIGN.BOTTOM_EDGE:\n // this pins x to bottom edge\n return this._getCSSBottom(null);\n case ALIGN.BOTTOM:\n // this places hint text to the bottom of center, so set its top edge\n return this._getCSSTop(y);\n case ALIGN.TOP:\n default:\n // this places hint text to the top of center, so set its bottom edge\n // default case should not be possible but if it happens set to BOTTOM\n return this._getCSSBottom(y);\n }\n }\n }, {\n key: '_mapOrientationToAlign',\n value: function _mapOrientationToAlign(orientation) {\n // TODO: print warning that this feature is deprecated and support will be\n // removed in next major release.\n switch (orientation) {\n case ORIENTATION.BOTTOM_LEFT:\n return {\n horizontal: ALIGN.LEFT,\n vertical: ALIGN.BOTTOM\n };\n case ORIENTATION.BOTTOM_RIGHT:\n return {\n horizontal: ALIGN.RIGHT,\n vertical: ALIGN.BOTTOM\n };\n case ORIENTATION.TOP_LEFT:\n return {\n horizontal: ALIGN.LEFT,\n vertical: ALIGN.TOP\n };\n case ORIENTATION.TOP_RIGHT:\n return {\n horizontal: ALIGN.RIGHT,\n vertical: ALIGN.TOP\n };\n default:\n // fall back to horizontalAlign, verticalAlign that are either\n // provided or defaulted to AUTO. So, don't change things\n break;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props5 = this.props,\n value = _props5.value,\n format = _props5.format,\n children = _props5.children,\n style = _props5.style,\n className = _props5.className;\n\n var _getPositionInfo2 = this._getPositionInfo(),\n position = _getPositionInfo2.position,\n positionClassName = _getPositionInfo2.positionClassName;\n\n return React.createElement(\n 'div',\n {\n className: 'rv-hint ' + positionClassName + ' ' + className,\n style: _extends({}, style, position, {\n position: 'absolute'\n })\n },\n children ? children : React.createElement(\n 'div',\n { className: 'rv-hint__content', style: style.content },\n format(value).map(function (formattedProp, i) {\n return React.createElement(\n 'div',\n { key: 'rv-hint' + i, style: style.row },\n React.createElement(\n 'span',\n { className: 'rv-hint__title', style: style.title },\n formattedProp.title\n ),\n ': ',\n React.createElement(\n 'span',\n { className: 'rv-hint__value', style: style.value },\n formattedProp.value\n )\n );\n })\n )\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;\n\nexport default Hint;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS, getStackParams } from '../../utils/series-utils';\n\nimport AbstractSeries from './abstract-series';\n\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\n if (!data) {\n return null;\n }\n\n if (animation) {\n return React.createElement(\n Animation,\n _extends({}, this.props, { animatedProps: ANIMATED_SERIES_PROPS }),\n React.createElement(BarSeries, _extends({}, this.props, { 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 var lineFunctor = this._getAttributeFunctor(linePosAttr);\n var valueFunctor = this._getAttributeFunctor(valuePosAttr);\n var value0Functor = this._getAttr0Functor(valuePosAttr);\n var fillFunctor = this._getAttributeFunctor('fill') || this._getAttributeFunctor('color');\n var strokeFunctor = this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color');\n var opacityFunctor = this._getAttributeFunctor('opacity');\n\n var halfSpace = distance / 2 * barWidth;\n\n return React.createElement(\n 'g',\n {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n },\n data.map(function (d, i) {\n var _attrs;\n\n // totalSpaceAvailable is the space we have available to draw all the\n // bars of a same 'linePosAttr' value (a.k.a. sameTypeTotal)\n var totalSpaceAvailable = halfSpace * 2;\n var totalSpaceCenter = lineFunctor(d);\n // totalSpaceStartingPoint is the first pixel were we can start drawing\n var totalSpaceStartingPoint = totalSpaceCenter - halfSpace;\n // spaceTakenByInterBarsPixels has the overhead space consumed by each bar of sameTypeTotal\n var spaceTakenByInterBarsPixels = (sameTypeTotal - 1) / sameTypeTotal;\n // spacePerBar is the space we have available to draw sameTypeIndex bar\n var spacePerBar = totalSpaceAvailable / sameTypeTotal - spaceTakenByInterBarsPixels;\n // barStartingPoint is the first pixel were we can start drawing sameTypeIndex bar\n var barStartingPoint = totalSpaceStartingPoint + spacePerBar * sameTypeIndex + sameTypeIndex;\n\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 }], [{\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';\n\nexport default BarSeries;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\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';\n\nexport default HorizontalBarSeries;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\nimport PropTypes from 'prop-types';\nimport { rgb } from 'd3-color';\n\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\n var halfSpace = distance / 2 * 0.85;\n // totalSpaceAvailable is the space we have available to draw all the\n // bars of a same 'linePosAttr' value (a.k.a. sameTypeTotal)\n var totalSpaceAvailable = halfSpace * 2;\n\n var _getStackParams = getStackParams(props),\n sameTypeTotal = _getStackParams.sameTypeTotal,\n sameTypeIndex = _getStackParams.sameTypeIndex;\n\n data.forEach(function (row) {\n var totalSpaceCenter = line(row);\n // totalSpaceStartingPoint is the first pixel were we can start drawing\n var totalSpaceStartingPoint = totalSpaceCenter - halfSpace;\n\n // spaceTakenByInterBarsPixels has the overhead space consumed by each bar of sameTypeTotal\n var spaceTakenByInterBarsPixels = (sameTypeTotal - 1) / sameTypeTotal;\n // lineSize is the space we have available to draw sameTypeIndex bar\n var lineSize = totalSpaceAvailable / sameTypeTotal - spaceTakenByInterBarsPixels;\n\n var fillColor = rgb(fill(row));\n var strokeColor = rgb(stroke(row));\n var rowOpacity = opacity(row) || DEFAULT_OPACITY;\n\n // linePos is the first pixel were we can start drawing sameTypeIndex bar\n var linePos = totalSpaceStartingPoint + lineSize * sameTypeIndex + sameTypeIndex;\n var valuePos = Math.min(value0(row), value(row));\n var x = valuePosAttr === 'x' ? valuePos : linePos;\n var y = valuePosAttr === 'y' ? valuePos : linePos;\n\n var valueSize = Math.abs(-value0(row) + value(row));\n var height = lineSizeAttr === 'height' ? lineSize : valueSize;\n var width = lineSizeAttr === 'width' ? lineSize : valueSize;\n\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});\n\nBarSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\n\nexport default BarSeriesCanvas;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport AbstractSeries from './abstract-series';\nimport BarSeries from './bar-series-canvas';\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);\n\nexport default HorizontalBarSeriesCanvas;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport { DIRECTION } from '../utils/axis-utils';\nimport GridLines from './grid-lines';\n\nvar HORIZONTAL = DIRECTION.HORIZONTAL;\n\n\nvar propTypes = _extends({}, GridLines.propTypes, {\n direction: PropTypes.oneOf([HORIZONTAL])\n});\n\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.propTypes = propTypes;\nHorizontalGridLines.defaultProps = defaultProps;\nHorizontalGridLines.requiresSVG = true;\n\nexport default HorizontalGridLines;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\n\nimport AbstractSeries from './abstract-series';\n\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\n if (!data) {\n return null;\n }\n\n if (animation) {\n return React.createElement(\n Animation,\n _extends({}, this.props, { animatedProps: ANIMATED_SERIES_PROPS }),\n React.createElement(RectSeries, _extends({}, this.props, { animation: null }))\n );\n }\n\n var lineFunctor = this._getAttributeFunctor(linePosAttr);\n var line0Functor = this._getAttr0Functor(linePosAttr);\n var valueFunctor = this._getAttributeFunctor(valuePosAttr);\n var value0Functor = this._getAttr0Functor(valuePosAttr);\n var fillFunctor = this._getAttributeFunctor('fill') || this._getAttributeFunctor('color');\n var strokeFunctor = this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color');\n var opacityFunctor = this._getAttributeFunctor('opacity');\n\n return React.createElement(\n 'g',\n {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n },\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 }], [{\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';\n\nexport default RectSeries;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\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';\n\nexport default HorizontalRectSeries;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\nimport PropTypes from 'prop-types';\nimport { rgb } from 'd3-color';\n\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\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\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\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\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});\n\nRectSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\n\nexport default RectSeriesCanvas;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport AbstractSeries from './abstract-series';\nimport RectSeries from './rect-series-canvas';\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);\n\nexport default HorizontalRectSeriesCanvas;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\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};\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(\n Animation,\n _extends({}, this.props, { animatedProps: ANIMATED_SERIES_PROPS }),\n React.createElement(LabelSeries, _extends({}, this.props, { animation: null, _data: data }))\n );\n }\n\n var xFunctor = this._getAttributeFunctor('x');\n var yFunctor = this._getAttributeFunctor('y');\n\n return React.createElement(\n 'g',\n {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')',\n style: style\n },\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 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\n var x = xVal + (allowOffsetToBeReversed && leftOfMiddle ? -1 : 1) * (xOffset || 0);\n var y = yVal + (allowOffsetToBeReversed && aboveMiddle ? -1 : 1) * (yOffset || 0);\n\n var hasRotationValueSet = d.rotation === 0 || d.rotation;\n var labelRotation = hasRotationValueSet ? d.rotation : rotation;\n var attrs = _extends({\n dominantBaseline: getDominantBaseline(labelAnchorY, aboveMiddle),\n className: 'rv-xy-plot__series--label-text',\n key: i,\n onClick: function onClick(e) {\n return _this2._valueClickHandler(d, e);\n },\n onContextMenu: function onContextMenu(e) {\n return _this2._valueRightClickHandler(d, e);\n },\n onMouseOver: function onMouseOver(e) {\n return _this2._valueMouseOverHandler(d, e);\n },\n onMouseOut: function onMouseOut(e) {\n return _this2._valueMouseOutHandler(d, e);\n },\n textAnchor: getTextAnchor(labelAnchorX, leftOfMiddle),\n x: x,\n y: y,\n transform: 'rotate(' + labelRotation + ',' + x + ',' + y + ')'\n }, markStyle);\n var textContent = getLabel(_data ? _data[i] : d);\n return res.concat([React.createElement(\n 'text',\n attrs,\n textContent\n )]);\n }, [])\n );\n }\n }]);\n\n return LabelSeries;\n}(AbstractSeries);\n\nLabelSeries.propTypes = {\n animation: PropTypes.bool,\n allowOffsetToBeReversed: PropTypes.bool,\n className: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n angle: PropTypes.number,\n radius: PropTypes.number,\n label: PropTypes.string,\n xOffset: PropTypes.number,\n yOffset: PropTypes.number,\n style: PropTypes.object\n })).isRequired,\n marginLeft: PropTypes.number,\n marginTop: PropTypes.number,\n rotation: PropTypes.number,\n style: PropTypes.object,\n xRange: PropTypes.arrayOf(PropTypes.number),\n yRange: PropTypes.arrayOf(PropTypes.number),\n labelAnchorX: PropTypes.string,\n labelAnchorY: PropTypes.string\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;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport * as d3Shape from 'd3-shape';\n\nimport Animation from '../../animation';\nimport { DEFAULT_OPACITY } from '../../theme';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { warning } from '../../utils/react-utils';\n\nimport AbstractSeries from './abstract-series';\n\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--line';\n\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 if (curve !== null) {\n if (typeof curve === 'string' && d3Shape[curve]) {\n line = line.curve(d3Shape[curve]);\n } else if (typeof curve === 'function') {\n line = line.curve(curve);\n }\n }\n line = line.defined(getNull);\n line = line.x(x).y(y);\n return line(data);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n data = _props.data;\n\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(\n Animation,\n _extends({}, this.props, { animatedProps: ANIMATED_SERIES_PROPS }),\n React.createElement(LineSeries, _extends({}, this.props, { 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\n var x = this._getAttributeFunctor('x');\n var y = this._getAttributeFunctor('y');\n var stroke = this._getAttributeValue('stroke') || this._getAttributeValue('color');\n var newOpacity = this._getAttributeValue('opacity');\n var opacity = Number.isFinite(newOpacity) ? newOpacity : DEFAULT_OPACITY;\n var getNull = this.props.nullAccessor || this.props.getNull;\n var d = this._renderLine(data, x, y, curve, getNull);\n\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.propTypes = _extends({}, AbstractSeries.propTypes, {\n strokeStyle: PropTypes.oneOf(Object.keys(STROKE_STYLES)),\n curve: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n getNull: PropTypes.func\n});\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});\n\nexport default LineSeries;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\n\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';\n\nimport AbstractSeries from './abstract-series';\n\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\n\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\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(\n Animation,\n _extends({}, this.props, { animatedProps: ANIMATED_SERIES_PROPS }),\n React.createElement(MarkSeries, _extends({}, this.props, { 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\n return React.createElement(\n 'g',\n {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n },\n data.map(function (d, i) {\n return getNull(d) && _this3._renderCircle(d, i, strokeWidth, style, scalingFunctions);\n })\n );\n }\n }]);\n\n return MarkSeries;\n}(AbstractSeries);\n\nMarkSeries.displayName = 'MarkSeries';\nMarkSeries.propTypes = _extends({}, AbstractSeries.propTypes, {\n getNull: PropTypes.func,\n strokeWidth: PropTypes.number\n});\nMarkSeries.defaultProps = {\n getNull: function getNull() {\n return true;\n }\n};\n\nexport default MarkSeries;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport AbstractSeries from './abstract-series';\nimport LineSeries from './line-series';\nimport MarkSeries from './mark-series';\n\nvar propTypes = _extends({}, LineSeries.propTypes, {\n lineStyle: PropTypes.object,\n markStyle: PropTypes.object\n});\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\n return React.createElement(\n 'g',\n { className: 'rv-xy-plot__series rv-xy-plot__series--linemark' },\n React.createElement(LineSeries, _extends({}, this.props, { style: _extends({}, style, lineStyle) })),\n React.createElement(MarkSeries, _extends({}, this.props, { 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';\nLineMarkSeries.propTypes = propTypes;\n\nexport default LineMarkSeries;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport { rgb } from 'd3-color';\n\nimport { DEFAULT_SIZE, DEFAULT_OPACITY } from '../../theme';\nimport { getAttributeFunctor } from '../../utils/scales-utils';\n\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\n\n var x = getAttributeFunctor(props, 'x');\n var y = getAttributeFunctor(props, 'y');\n var size = getAttributeFunctor(props, 'size') || function (p) {\n return DEFAULT_SIZE;\n };\n var fill = getAttributeFunctor(props, 'fill') || getAttributeFunctor(props, 'color');\n var stroke = getAttributeFunctor(props, 'stroke') || getAttributeFunctor(props, 'color');\n var opacity = getAttributeFunctor(props, 'opacity');\n\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';\n\nMarkSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\n\nexport default MarkSeriesCanvas;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\nimport PropTypes from 'prop-types';\nimport { rgb } from 'd3-color';\nimport * as d3Shape from 'd3-shape';\nimport React from 'react';\n\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 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();\n // set back to default\n ctx.lineWidth = 1;\n ctx.setLineDash([]);\n }\n }, {\n key: 'requiresSVG',\n get: function get() {\n return false;\n }\n }, {\n key: 'isCanvas',\n get: function get() {\n return true;\n }\n }]);\n\n return LineSeriesCanvas;\n}(AbstractSeries);\n\nLineSeriesCanvas.displayName = 'LineSeriesCanvas';\nLineSeriesCanvas.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n strokeWidth: 2\n});\n\nLineSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes, {\n strokeWidth: PropTypes.number\n});\n\nexport default LineSeriesCanvas;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport AbstractSeries from './abstract-series';\nimport MarkSeriesCanvas from './mark-series-canvas';\nimport LineSeriesCanvas from './line-series-canvas';\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);\n\nexport default LineMarkSeriesCanvas;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\n\nimport AbstractSeries from './abstract-series';\n\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\n if (!data) {\n return null;\n }\n\n if (animation) {\n return React.createElement(\n Animation,\n _extends({}, this.props, { animatedProps: ANIMATED_SERIES_PROPS }),\n React.createElement(PolygonSeries, _extends({}, this.props, { animation: null }))\n );\n }\n var xFunctor = this._getAttributeFunctor('x');\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';\n\nexport default PolygonSeries;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\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';\n\nexport default VerticalBarSeries;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport AbstractSeries from './abstract-series';\nimport BarSeries from './bar-series-canvas';\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);\n\nexport default HorizontalBarSeriesCanvas;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport GridLines from './grid-lines';\nimport { DIRECTION } from '../utils/axis-utils';\n\nvar VERTICAL = DIRECTION.VERTICAL;\n\n\nvar propTypes = _extends({}, GridLines.propTypes, {\n direction: PropTypes.oneOf([VERTICAL])\n});\n\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.propTypes = propTypes;\nVerticalGridLines.defaultProps = defaultProps;\nVerticalGridLines.requiresSVG = true;\n\nexport default VerticalGridLines;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\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';\n\nexport default VerticalRectSeries;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport AbstractSeries from './abstract-series';\nimport RectSeries from './rect-series-canvas';\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);\n\nexport default HorizontalRectSeriesCanvas;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { voronoi } from 'd3-voronoi';\n\nimport { getAttributeFunctor } from '../utils/scales-utils';\n\nvar NOOP = function NOOP(f) {\n return f;\n};\n\n// Find the index of the node at coordinates of a touch point\nfunction getNodeIndex(evt) {\n var _evt$nativeEvent = evt.nativeEvent,\n pageX = _evt$nativeEvent.pageX,\n pageY = _evt$nativeEvent.pageY;\n\n var target = document.elementFromPoint(pageX, pageY);\n if (!target) {\n return -1;\n }\n var parentNode = target.parentNode;\n\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\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;\n // Create a voronoi with each node center points\n\n var voronoiInstance = voronoi().x(x || getAttributeFunctor(props, 'x')).y(y || getAttributeFunctor(props, 'y')).extent(extent || getExtent(props));\n\n // Create an array of polygons corresponding to the cells in voronoi\n var polygons = voronoiInstance.polygons(nodes);\n\n // Create helper function to handle special logic for touch events\n var handleTouchEvent = function handleTouchEvent(handler) {\n return function (evt) {\n evt.preventDefault();\n var index = getNodeIndex(evt);\n if (index > -1 && index < polygons.length) {\n var d = polygons[index];\n handler(d.data);\n }\n };\n };\n\n return React.createElement(\n 'g',\n {\n className: className + ' rv-voronoi',\n style: style\n // Because of the nature of how touch events, and more specifically touchmove\n // and how it differs from mouseover, we must manage touch events on the parent\n , onTouchEnd: handleTouchEvent(_onMouseUp),\n onTouchStart: handleTouchEvent(_onMouseDown),\n onTouchMove: handleTouchEvent(onHover),\n onTouchCancel: handleTouchEvent(onBlur)\n },\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}\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};\n\nVoronoi.propTypes = {\n className: PropTypes.string,\n extent: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n nodes: PropTypes.arrayOf(PropTypes.object).isRequired,\n onBlur: PropTypes.func,\n onClick: PropTypes.func,\n onHover: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseUp: PropTypes.func,\n x: PropTypes.func,\n y: PropTypes.func\n};\n\nexport default Voronoi;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { DEFAULT_OPACITY } from '../../theme';\n\nimport AbstractSeries from './abstract-series';\n\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--whisker';\nvar DEFAULT_STROKE_WIDTH = 1;\nvar DEFAULT_CROSS_BAR_WIDTH = 6;\n\n/**\n * Render whisker lines for a data point.\n * @param {Object} whiskerMarkProps All the properties of the whisker mark.\n * @private\n */\nvar renderWhiskerMark = function renderWhiskerMark(whiskerMarkProps) {\n return function (d, i) {\n var crossBarWidth = whiskerMarkProps.crossBarWidth,\n opacityFunctor = whiskerMarkProps.opacityFunctor,\n sizeFunctor = whiskerMarkProps.sizeFunctor,\n strokeFunctor = whiskerMarkProps.strokeFunctor,\n strokeWidth = whiskerMarkProps.strokeWidth,\n style = whiskerMarkProps.style,\n valueClickHandler = whiskerMarkProps.valueClickHandler,\n valueMouseOutHandler = whiskerMarkProps.valueMouseOutHandler,\n valueMouseOverHandler = whiskerMarkProps.valueMouseOverHandler,\n valueRightClickHandler = whiskerMarkProps.valueRightClickHandler,\n xFunctor = whiskerMarkProps.xFunctor,\n yFunctor = whiskerMarkProps.yFunctor;\n\n\n var r = sizeFunctor ? sizeFunctor(d) : 0;\n var cx = xFunctor(d);\n var cy = yFunctor(d);\n var positiveXVariance = xFunctor({ x: d.x + d.xVariance / 2 });\n var negativeXVariance = xFunctor({ x: d.x - d.xVariance / 2 });\n var positiveYVariance = yFunctor({ y: d.y + d.yVariance / 2 });\n var negativeYVariance = yFunctor({ y: d.y - d.yVariance / 2 });\n /**\n * Determine whether on not we should draw whiskers in each direction.\n * We need to see an actual variance value, and also have that value extend past the\n * radius \"buffer\" region in which we won't be drawing (if any).\n */\n var hasXWhiskers = positiveXVariance && cx + r < positiveXVariance;\n var hasYWhiskers = positiveYVariance && cy - r > positiveYVariance;\n if (!hasXWhiskers && !hasYWhiskers) {\n return null;\n }\n\n var styleAttr = _extends({\n opacity: opacityFunctor ? opacityFunctor(d) : DEFAULT_OPACITY,\n stroke: strokeFunctor && strokeFunctor(d),\n strokeWidth: strokeWidth || DEFAULT_STROKE_WIDTH\n }, style);\n var crossBarExtension = crossBarWidth / 2;\n\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\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\n return React.createElement(\n 'g',\n {\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 },\n hasXWhiskers ? React.createElement(\n 'g',\n { className: 'x-whiskers' },\n React.createElement('line', rightLineAttrs),\n React.createElement('line', leftLineAttrs),\n React.createElement('line', rightCrossBarAttrs),\n React.createElement('line', leftCrossBarAttrs)\n ) : null,\n hasYWhiskers ? React.createElement(\n 'g',\n { className: 'y-whiskers' },\n React.createElement('line', upperLineAttrs),\n React.createElement('line', lowerLineAttrs),\n React.createElement('line', upperCrossBarAttrs),\n React.createElement('line', lowerCrossBarAttrs)\n ) : null\n );\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 if (animation) {\n return React.createElement(\n Animation,\n _extends({}, this.props, { animatedProps: ANIMATED_SERIES_PROPS }),\n React.createElement(WhiskerSeries, _extends({}, this.props, { 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\n return React.createElement(\n 'g',\n {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n },\n data.map(renderWhiskerMark(whiskerMarkProps))\n );\n }\n }]);\n\n return WhiskerSeries;\n}(AbstractSeries);\n\nWhiskerSeries.displayName = 'WhiskerSeries';\nWhiskerSeries.propTypes = _extends({}, AbstractSeries.propTypes, {\n strokeWidth: PropTypes.number\n});\nWhiskerSeries.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n crossBarWidth: DEFAULT_CROSS_BAR_WIDTH,\n size: 0,\n strokeWidth: DEFAULT_STROKE_WIDTH\n});\nexport default WhiskerSeries;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport PropTypes from 'prop-types';\n\n/**\n * Get the dimensions of the component for the future use.\n * @param {Object} props Props.\n * @param {Object} defaultMargins Object with default margins.\n * @returns {Object} Dimensions of the component.\n */\nexport function getInnerDimensions(props, defaultMargins) {\n var margin = props.margin,\n width = props.width,\n height = props.height;\n\n var marginProps = _extends({}, defaultMargins, typeof margin === 'number' ? {\n left: margin,\n right: margin,\n top: margin,\n bottom: margin\n } : margin);\n var _marginProps$left = marginProps.left,\n marginLeft = _marginProps$left === undefined ? 0 : _marginProps$left,\n _marginProps$top = marginProps.top,\n marginTop = _marginProps$top === undefined ? 0 : _marginProps$top,\n _marginProps$right = marginProps.right,\n marginRight = _marginProps$right === undefined ? 0 : _marginProps$right,\n _marginProps$bottom = marginProps.bottom,\n marginBottom = _marginProps$bottom === undefined ? 0 : _marginProps$bottom;\n\n return {\n marginLeft: marginLeft,\n marginTop: marginTop,\n marginRight: marginRight,\n marginBottom: marginBottom,\n innerHeight: height - marginBottom - marginTop,\n innerWidth: width - marginLeft - marginRight\n };\n}\n\n/**\n * Calculate the margin of the sunburst,\n * so it can be at the center of the container\n * @param {Number} width - the width of the container\n * @param {Number} height - the height of the container\n * @param {Number} radius - the max radius of the sunburst\n * @return {Object} an object includes {bottom, left, right, top}\n */\nexport function getRadialLayoutMargin(width, height, radius) {\n var marginX = width / 2 - radius;\n var marginY = height / 2 - radius;\n return {\n bottom: marginY,\n left: marginX,\n right: marginX,\n top: marginY\n };\n}\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]);\n\nexport var DEFAULT_MARGINS = {\n left: 40,\n right: 10,\n top: 10,\n bottom: 40\n};","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { interpolate } from 'd3-interpolate';\nimport { extractAnimatedPropValues } from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\n\nvar MAX_DRAWS = 30;\n\n/**\n * Draw loop draws each of the layers until it should draw more\n * @param {CanvasContext} ctx - the context where the drawing will take place\n * @param {Number} height - height of the canvas\n * @param {Number} width - width of the canvas\n * @param {Array} layers - the layer objects to render\n */\nfunction engageDrawLoop(ctx, height, width, layers) {\n var drawIteration = 0;\n // using setInterval because request animation frame goes too fast\n var drawCycle = setInterval(function () {\n if (!ctx) {\n clearInterval(drawCycle);\n return;\n }\n drawLayers(ctx, height, width, layers, drawIteration);\n if (drawIteration > MAX_DRAWS) {\n clearInterval(drawCycle);\n }\n drawIteration += 1;\n }, 1);\n}\n\n/**\n * Loops across each of the layers to be drawn and draws them\n * @param {CanvasContext} ctx - the context where the drawing will take place\n * @param {Number} height - height of the canvas\n * @param {Number} width - width of the canvas\n * @param {Array} layers - the layer objects to render\n * @param {Number} drawIteration - width of the canvas\n */\nfunction drawLayers(ctx, height, width, layers, drawIteration) {\n ctx.clearRect(0, 0, width, height);\n layers.forEach(function (layer) {\n var interpolator = layer.interpolator,\n newProps = layer.newProps,\n animation = layer.animation;\n // return an empty object if dont need to be animating\n\n var interpolatedProps = animation ? interpolator ? interpolator(drawIteration / MAX_DRAWS) : interpolator : function () {\n return {};\n };\n layer.renderLayer(_extends({}, newProps, interpolatedProps), ctx);\n });\n}\n\n/**\n * Build an array of layer of objects the contain the method for drawing each series\n * as well as an interpolar (specifically a d3-interpolate interpolator)\n * @param {Object} newChildren the new children to be rendered.\n * @param {Object} oldChildren the old children to be rendered.\n * @returns {Array} Object for rendering\n */\nfunction buildLayers(newChildren, oldChildren) {\n return newChildren.map(function (child, index) {\n var oldProps = oldChildren[index] ? oldChildren[index].props : {};\n var newProps = child.props;\n\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\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 if (!ctx) {\n return;\n }\n var pixelRatio = this.props.pixelRatio;\n\n if (!ctx) {\n return;\n }\n ctx.scale(pixelRatio, pixelRatio);\n\n this.drawChildren(null, this.props, ctx);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(oldProps) {\n this.drawChildren(oldProps, this.props, this.canvas.getContext('2d'));\n }\n\n /**\n * Check that we can and should be animating, then kick off animations as apporpriate\n * @param {Object} newProps the new props to be interpolated to\n * @param {Object} oldProps the old props to be interpolated against\n * @param {DomRef} ctx the canvas context to be drawn on.\n * @returns {Array} Object for rendering\n */\n\n }, {\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\n var height = innerHeight + marginTop + marginBottom;\n var width = innerWidth + marginLeft + marginRight;\n var layers = buildLayers(newProps.children, oldProps ? oldProps.children : []);\n // if we don't need to be animating, dont! cut short\n if (!childrenShouldAnimate) {\n drawLayers(ctx, height, width, layers);\n return;\n }\n\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\n\n var height = innerHeight + marginTop + marginBottom;\n var width = innerWidth + marginLeft + marginRight;\n\n return React.createElement(\n 'div',\n { style: { left: 0, top: 0 }, 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 }),\n this.props.children\n );\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';\nCanvasWrapper.propTypes = {\n marginBottom: PropTypes.number.isRequired,\n marginLeft: PropTypes.number.isRequired,\n marginRight: PropTypes.number.isRequired,\n marginTop: PropTypes.number.isRequired,\n innerHeight: PropTypes.number.isRequired,\n innerWidth: PropTypes.number.isRequired,\n pixelRatio: PropTypes.number.isRequired\n};\n\nexport default CanvasWrapper;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport equal from 'deep-equal';\n\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';\n\nimport CanvasWrapper from './series/canvas-wrapper';\n\nvar ATTRIBUTES = ['x', 'y', 'radius', 'angle', 'color', 'fill', 'stroke', 'opacity', 'size'];\n\n/**\n * Remove parents from tree formatted data. deep-equal doesnt play nice with data\n * that has circular structures, so we make every node single directional by pruning the parents.\n * @param {Array} data - the data object to have circular deps resolved in\n * @returns {Array} the sanitized data\n */\nfunction cleanseData(data) {\n return data.map(function (series) {\n if (!Array.isArray(series)) {\n return series;\n }\n return series.map(function (row) {\n return _extends({}, row, { 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 */\nfunction checkIfMixinsAreEqual(nextScaleMixins, scaleMixins, hasTreeStructure) {\n var newMixins = _extends({}, nextScaleMixins, {\n _allData: hasTreeStructure ? cleanseData(nextScaleMixins._allData) : nextScaleMixins._allData\n });\n var oldMixins = _extends({}, scaleMixins, {\n _allData: hasTreeStructure ? cleanseData(scaleMixins._allData) : scaleMixins._allData\n });\n // it's hard to say if this function is reasonable?\n return equal(newMixins, oldMixins);\n}\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\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 if (!checkIfMixinsAreEqual(nextScaleMixins, scaleMixins, nextProps.hasTreeStructure)) {\n this.setState({\n scaleMixins: nextScaleMixins,\n data: nextData\n });\n }\n }\n\n /**\n * Trigger click related callbacks if they are available.\n * @param {React.SyntheticEvent} event Click event.\n * @private\n */\n\n\n /**\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 /**\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\n var dimensions = getInnerDimensions(this.props, DEFAULT_MARGINS);\n var children = React.Children.toArray(this.props.children);\n var seriesProps = getSeriesPropsFromChildren(children);\n var XYPlotValues = getXYPlotValues(props, children);\n return children.map(function (child, index) {\n var dataProps = null;\n if (seriesProps[index]) {\n // Get the index of the series in the list of props and retrieve\n // the data property from it.\n var seriesIndex = seriesProps[index].seriesIndex;\n\n dataProps = { data: data[seriesIndex] };\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\n return _extends({\n xRange: [0, innerWidth],\n yRange: [innerHeight, 0]\n }, colorRanges, {\n opacityType: OPACITY_TYPE,\n sizeRange: SIZE_RANGE\n });\n }\n\n /**\n * Get the map of scales from the props, apply defaults to them and then pass\n * them further.\n * @param {Object} data Array of all data.\n * @param {Object} props Props of the component.\n * @returns {Object} Map of scale-related props.\n * @private\n */\n\n }, {\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 var allData = (_ref2 = []).concat.apply(_ref2, _toConsumableArray(filteredData));\n\n var defaultScaleProps = this._getDefaultScaleProps(props);\n var optionalScaleProps = getOptionalScaleProps(props);\n var userScaleProps = extractScalePropsFromProps(props, ATTRIBUTES);\n var missingScaleProps = getMissingScaleProps(_extends({}, defaultScaleProps, optionalScaleProps, userScaleProps), allData, ATTRIBUTES);\n var children = getSeriesChildren(props.children);\n var zeroBaseProps = {};\n var adjustBy = new Set();\n var adjustWhat = new Set();\n children.forEach(function (child, index) {\n if (!child || !data[index]) {\n return;\n }\n ATTRIBUTES.forEach(function (attr) {\n var _child$type$getParent = child.type.getParentConfig(attr, child.props),\n isDomainAdjustmentNeeded = _child$type$getParent.isDomainAdjustmentNeeded,\n zeroBaseValue = _child$type$getParent.zeroBaseValue;\n\n if (isDomainAdjustmentNeeded) {\n adjustBy.add(attr);\n adjustWhat.add(index);\n }\n if (zeroBaseValue) {\n var specifiedDomain = props[attr + 'Domain'];\n zeroBaseProps[attr + 'BaseValue'] = specifiedDomain ? specifiedDomain[0] : 0;\n }\n });\n });\n return _extends({}, defaultScaleProps, zeroBaseProps, userScaleProps, missingScaleProps, {\n _allData: data,\n _adjustBy: Array.from(adjustBy),\n _adjustWhat: Array.from(adjustWhat),\n _stackBy: props.stackBy\n });\n }\n\n /**\n * Checks if the plot is empty or not.\n * Currently checks the data only.\n * @returns {boolean} True for empty.\n * @private\n */\n\n }, {\n key: '_isPlotEmpty',\n value: function _isPlotEmpty() {\n var data = this.state.data;\n\n return !data || !data.length || !data.some(function (series) {\n return series && series.some(function (d) {\n return d;\n });\n });\n }\n\n /**\n * Trigger mouse-down related callbacks if they are available.\n * @param {React.SyntheticEvent} event Mouse down event.\n * @private\n */\n\n\n /**\n * Trigger onMouseEnter handler if it was passed in props.\n * @param {React.SyntheticEvent} event Mouse enter event.\n * @private\n */\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 /**\n * Trigger movement-related callbacks if they are available.\n * @param {React.SyntheticEvent} event Mouse move event.\n * @private\n */\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 /**\n * Trigger onTouchCancel handler if it was passed in props.\n * @param {React.SyntheticEvent} event Touch Cancel event.\n * @private\n */\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 /**\n * Trigger touch movement-related callbacks if they are available.\n * @param {React.SyntheticEvent} event Touch move event.\n * @private\n */\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 /**\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 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\n return React.createElement(\n CanvasWrapper,\n {\n innerHeight: innerHeight,\n innerWidth: innerWidth,\n marginLeft: marginLeft,\n marginTop: marginTop,\n marginBottom: marginBottom,\n marginRight: marginRight\n },\n componentsToRender\n );\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\n if (!dontCheckIfEmpty && this._isPlotEmpty()) {\n return React.createElement('div', {\n className: 'rv-xy-plot ' + className,\n style: _extends({\n width: width + 'px',\n height: height + 'px'\n }, this.props.style)\n });\n }\n var components = this._getClonedChildComponents();\n return React.createElement(\n 'div',\n {\n style: {\n width: width + 'px',\n height: height + 'px'\n },\n className: 'rv-xy-plot ' + className\n },\n React.createElement(\n 'svg',\n {\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 },\n components.filter(function (c) {\n return c && c.type.requiresSVG;\n })\n ),\n this.renderCanvasComponents(components, this.props),\n components.filter(function (c) {\n return c && !c.type.requiresSVG && !c.type.isCanvas;\n })\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 var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n if (component && component.onParentMouseDown) {\n component.onParentMouseDown(event);\n }\n });\n };\n\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 var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n if (component && component.onParentMouseEnter) {\n component.onParentMouseEnter(event);\n }\n });\n };\n\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 var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n if (component && component.onParentMouseLeave) {\n component.onParentMouseLeave(event);\n }\n });\n };\n\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 var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n if (component && component.onParentMouseMove) {\n component.onParentMouseMove(event);\n }\n });\n };\n\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 var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n if (component && component.onParentMouseUp) {\n component.onParentMouseUp(event);\n }\n });\n };\n\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 var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n if (component && component.onParentTouchMove) {\n component.onParentTouchMove(event);\n }\n });\n };\n\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 var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n if (component && component.onParentTouchStart) {\n component.onParentTouchStart(event);\n }\n });\n };\n\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';\n\nexport default XYPlot;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport { ORIENTATION } from '../../utils/axis-utils';\n\nvar LEFT = ORIENTATION.LEFT,\n RIGHT = ORIENTATION.RIGHT,\n TOP = ORIENTATION.TOP,\n BOTTOM = ORIENTATION.BOTTOM;\n\n\nvar propTypes = {\n height: PropTypes.number.isRequired,\n style: PropTypes.object,\n orientation: PropTypes.oneOf([LEFT, RIGHT, TOP, BOTTOM]).isRequired,\n width: PropTypes.number.isRequired\n};\n\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\n var lineProps = void 0;\n if (orientation === LEFT) {\n lineProps = {\n x1: width,\n x2: width,\n y1: 0,\n y2: height\n };\n } else if (orientation === RIGHT) {\n lineProps = {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: height\n };\n } else if (orientation === TOP) {\n lineProps = {\n x1: 0,\n x2: width,\n y1: height,\n y2: height\n };\n } else {\n lineProps = {\n x1: 0,\n x2: width,\n y1: 0,\n y2: 0\n };\n }\n return React.createElement('line', _extends({}, lineProps, { className: 'rv-xy-plot__axis__line', style: style }));\n}\n\nAxisLine.defaultProps = defaultProps;\nAxisLine.displayName = 'AxisLine';\nAxisLine.propTypes = propTypes;\n\nexport default AxisLine;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport { ORIENTATION, getTickValues } from '../../utils/axis-utils';\nimport { getAttributeScale } from '../../utils/scales-utils';\n\nvar LEFT = ORIENTATION.LEFT,\n RIGHT = ORIENTATION.RIGHT,\n TOP = ORIENTATION.TOP,\n BOTTOM = ORIENTATION.BOTTOM;\n\n\nvar propTypes = {\n height: PropTypes.number.isRequired,\n orientation: PropTypes.oneOf([LEFT, RIGHT, TOP, BOTTOM]).isRequired,\n style: PropTypes.object,\n width: PropTypes.number.isRequired\n};\n\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\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 { transform: 'translate(0, ' + pos + ')' };\n };\n }\n return function (pos) {\n return { 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;\n\n // Assign the text orientation inside the label of the tick mark.\n\n var textAnchor = void 0;\n if (orientation === LEFT || orientation === BOTTOM && tickLabelAngle) {\n textAnchor = 'end';\n } else if (orientation === RIGHT || orientation === TOP && tickLabelAngle) {\n textAnchor = 'start';\n } else {\n textAnchor = 'middle';\n }\n\n // The label's position is translated to the given padding and then the\n // label is rotated to the given angle.\n var isVertical = this._isAxisVertical();\n var wrap = this._areTicksWrapped() ? -1 : 1;\n\n var labelOffset = wrap * (tickSizeOuter + tickPadding);\n var transform = (isVertical ? 'translate(' + labelOffset + ', 0)' : 'translate(0, ' + labelOffset + ')') + (tickLabelAngle ? ' rotate(' + tickLabelAngle + ')' : '');\n\n // Set the vertical offset of the label according to the position of\n // the axis.\n var dy = orientation === TOP || tickLabelAngle ? '0' : orientation === BOTTOM ? '0.72em' : '0.32em';\n\n return {\n textAnchor: textAnchor,\n dy: dy,\n transform: transform\n };\n }\n\n /**\n * Get the props of the tick line.\n * @returns {Object} Props.\n * @private\n */\n\n }, {\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 var tickXAttr = isVertical ? 'y' : 'x';\n var tickYAttr = isVertical ? 'x' : 'y';\n var wrap = this._areTicksWrapped() ? -1 : 1;\n return _ref = {}, _defineProperty(_ref, tickXAttr + '1', 0), _defineProperty(_ref, tickXAttr + '2', 0), _defineProperty(_ref, tickYAttr + '1', -wrap * tickSizeInner), _defineProperty(_ref, tickYAttr + '2', wrap * tickSizeOuter), _ref;\n }\n\n /**\n * Gets if the axis is vertical.\n * @returns {boolean} True if vertical.\n * @private\n */\n\n }, {\n key: '_isAxisVertical',\n value: function _isAxisVertical() {\n var orientation = this.props.orientation;\n\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\n\n var x = orientation === LEFT ? width : 0;\n var y = orientation === TOP ? height : 0;\n\n var scale = getAttributeScale(this.props, attr);\n\n var values = getTickValues(scale, tickTotal, tickValues);\n var tickFormatFn = _getTickFormatFn(scale, tickTotal, tickFormat);\n\n var translateFn = this._getTickContainerPropsGetterFn();\n var pathProps = this._getTickLineProps();\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(\n 'g',\n _extends({\n key: i\n }, translateFn(pos, 0), {\n className: 'rv-xy-plot__axis__tick',\n style: style\n }),\n React.createElement('line', _extends({}, pathProps, {\n className: 'rv-xy-plot__axis__tick__line',\n style: _extends({}, style, style.line)\n })),\n shouldRenderAsOwnNode ? React.cloneElement(labelNode, shouldAddProps ? _extends({}, textProps, {\n containerWidth: width,\n tickCount: values.length\n }) : undefined) : React.createElement(\n 'text',\n _extends({}, textProps, {\n className: 'rv-xy-plot__axis__tick__text',\n style: _extends({}, style, style.text)\n }),\n labelNode\n )\n );\n });\n\n return React.createElement(\n 'g',\n {\n transform: 'translate(' + x + ', ' + y + ')',\n className: 'rv-xy-plot__axis__ticks'\n },\n ticks\n );\n }\n }]);\n\n return AxisTicks;\n}(React.Component);\n\nAxisTicks.defaultProps = defaultProps;\nAxisTicks.displayName = 'AxisTicks';\nAxisTicks.propTypes = propTypes;\nAxisTicks.requiresSVG = true;\n\nexport default AxisTicks;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport { ORIENTATION } from '../../utils/axis-utils';\n\n// Assuming that 16px = 1em\nvar ADJUSTMENT_FOR_TEXT_SIZE = 16;\nvar MARGIN = 6;\nvar LEFT = ORIENTATION.LEFT,\n RIGHT = ORIENTATION.RIGHT,\n TOP = ORIENTATION.TOP,\n BOTTOM = ORIENTATION.BOTTOM;\n\nvar defaultProps = {\n position: 'end'\n};\n\n/**\n * Compute transformations, keyed by orientation\n * @param {number} width - width of axis\n * @param {number} height - height of axis\n * @returns {Object} Object of transformations, keyed by orientation\n */\nvar transformation = function transformation(width, height) {\n var _ref;\n\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\nvar propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n orientation: PropTypes.oneOf([LEFT, RIGHT, TOP, BOTTOM]).isRequired,\n style: PropTypes.object,\n title: PropTypes.string.isRequired\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\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\n var innerGroupTransform = 'translate(' + x + ', ' + y + ') rotate(' + rotation + ')';\n\n return React.createElement(\n 'g',\n { transform: outerGroupTransform, className: 'rv-xy-plot__axis__title' },\n React.createElement(\n 'g',\n { style: _extends({ textAnchor: textAnchor }, style), transform: innerGroupTransform },\n React.createElement(\n 'text',\n { style: style },\n title\n )\n )\n );\n}\n\nAxisTitle.displayName = 'AxisTitle';\nAxisTitle.propTypes = propTypes;\nAxisTitle.defaultProps = defaultProps;\nexport default AxisTitle;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React, { PureComponent } from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport Animation from '../../animation';\nimport { ORIENTATION, getTicksTotalFromSize } from '../../utils/axis-utils';\nimport { getAttributeScale } from '../../utils/scales-utils';\n\nimport AxisLine from './axis-line';\nimport AxisTicks from './axis-ticks';\nimport AxisTitle from './axis-title';\n\nvar defaultAnimatedProps = ['xRange', 'yRange', 'xDomain', 'yDomain', 'width', 'height', 'marginLeft', 'marginTop', 'marginRight', 'marginBottom', 'tickSize', 'tickTotal', 'tickSizeInner', 'tickSizeOuter'];\n\nvar LEFT = ORIENTATION.LEFT,\n RIGHT = ORIENTATION.RIGHT,\n TOP = ORIENTATION.TOP,\n BOTTOM = ORIENTATION.BOTTOM;\n\n\nvar propTypes = {\n orientation: PropTypes.oneOf([LEFT, RIGHT, TOP, BOTTOM]),\n attr: PropTypes.string.isRequired,\n attrAxis: PropTypes.string,\n width: PropTypes.number,\n height: PropTypes.number,\n top: PropTypes.number,\n left: PropTypes.number,\n title: PropTypes.string,\n\n style: PropTypes.object,\n\n className: PropTypes.string,\n hideTicks: PropTypes.bool,\n hideLine: PropTypes.bool,\n on0: PropTypes.bool,\n tickLabelAngle: PropTypes.number,\n tickSize: PropTypes.number,\n tickSizeInner: PropTypes.number,\n tickSizeOuter: PropTypes.number,\n tickPadding: PropTypes.number,\n tickValues: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])),\n tickFormat: PropTypes.func,\n tickTotal: PropTypes.number,\n\n // Not expected to be used by the users.\n // TODO: Add underscore to these properties later.\n marginTop: PropTypes.number,\n marginBottom: PropTypes.number,\n marginLeft: PropTypes.number,\n marginRight: PropTypes.number,\n innerWidth: PropTypes.number,\n innerHeight: PropTypes.number\n};\n\nvar defaultProps = {\n className: '',\n on0: false,\n style: {},\n tickSize: 6,\n tickPadding: 8,\n orientation: BOTTOM\n};\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 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\n if (animation) {\n var animatedProps = animation.nonAnimatedProps ? defaultAnimatedProps.filter(function (prop) {\n return animation.nonAnimatedProps.indexOf(prop) < 0;\n }) : defaultAnimatedProps;\n\n return React.createElement(\n Animation,\n _extends({}, this.props, { animatedProps: animatedProps }),\n React.createElement(Axis, _extends({}, this.props, { 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\n var isVertical = [LEFT, RIGHT].indexOf(orientation) > -1;\n var axisClassName = isVertical ? VERTICAL_CLASS_NAME : HORIZONTAL_CLASS_NAME;\n\n var leftPos = left;\n var topPos = top;\n if (on0) {\n var scale = getAttributeScale(props, attrAxis);\n if (isVertical) {\n leftPos = scale(0);\n } else {\n topPos = marginTop + scale(0);\n }\n }\n\n return React.createElement(\n 'g',\n {\n transform: 'translate(' + leftPos + ',' + topPos + ')',\n className: predefinedClassName + ' ' + axisClassName + ' ' + className,\n style: style\n },\n !hideLine && React.createElement(AxisLine, {\n height: height,\n width: width,\n orientation: orientation,\n style: _extends({}, style, style.line)\n }),\n !hideTicks && React.createElement(AxisTicks, _extends({}, props, { 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\n return Axis;\n}(PureComponent);\n\nAxis.displayName = 'Axis';\nAxis.propTypes = propTypes;\nAxis.defaultProps = defaultProps;\nAxis.requiresSVG = true;\n\nexport default Axis;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport { ORIENTATION } from '../../utils/axis-utils';\n\nimport Axis from './axis';\n\nvar TOP = ORIENTATION.TOP,\n BOTTOM = ORIENTATION.BOTTOM;\n\n\nvar propTypes = _extends({}, Axis.propTypes, {\n orientation: PropTypes.oneOf([TOP, BOTTOM])\n});\n\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.propTypes = propTypes;\nXAxis.defaultProps = defaultProps;\nXAxis.requiresSVG = true;\n\nexport default XAxis;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport { ORIENTATION } from '../../utils/axis-utils';\n\nimport Axis from './axis';\n\nvar LEFT = ORIENTATION.LEFT,\n RIGHT = ORIENTATION.RIGHT;\n\n\nvar propTypes = _extends({}, Axis.propTypes, {\n orientation: PropTypes.oneOf([LEFT, RIGHT])\n});\n\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.propTypes = propTypes;\nYAxis.defaultProps = defaultProps;\nYAxis.requiresSVG = true;\n\nexport default YAxis;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport { CONTINUOUS_COLOR_RANGE } from '../theme';\n\nvar propTypes = {\n className: PropTypes.string,\n height: PropTypes.number,\n endColor: PropTypes.string,\n endTitle: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n midColor: PropTypes.string,\n midTitle: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n startColor: PropTypes.string,\n startTitle: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n width: PropTypes.number\n};\n\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\n var colors = [startColor];\n if (midColor) {\n colors.push(midColor);\n }\n colors.push(endColor);\n return React.createElement(\n 'div',\n {\n className: 'rv-continuous-color-legend ' + className,\n style: { width: width, height: height }\n },\n React.createElement('div', {\n className: 'rv-gradient',\n style: { background: 'linear-gradient(to right, ' + colors.join(',') + ')' }\n }),\n React.createElement(\n 'div',\n { className: 'rv-legend-titles' },\n React.createElement(\n 'span',\n { className: 'rv-legend-titles__left' },\n startTitle\n ),\n React.createElement(\n 'span',\n { className: 'rv-legend-titles__right' },\n endTitle\n ),\n midTitle ? React.createElement(\n 'span',\n { className: 'rv-legend-titles__center' },\n midTitle\n ) : null\n )\n );\n}\n\nContinuousColorLegend.displayName = 'ContinuousColorLegend';\nContinuousColorLegend.propTypes = propTypes;\nContinuousColorLegend.defaultProps = defaultProps;\n\nexport default ContinuousColorLegend;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\n\nvar propTypes = {\n className: PropTypes.string,\n circlesTotal: PropTypes.number,\n endSize: PropTypes.number,\n endTitle: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n height: PropTypes.number,\n startSize: PropTypes.number,\n startTitle: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n width: PropTypes.number\n};\n\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\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 }));\n // Add the separator in order to justify the content (otherwise the tags\n // will be stacked together without any margins around).\n circles.push(' ');\n }\n return React.createElement(\n 'div',\n {\n className: 'rv-continuous-size-legend ' + className,\n style: { width: width, height: height }\n },\n React.createElement(\n 'div',\n { className: 'rv-bubbles', style: { height: endSize } },\n circles,\n React.createElement('div', { className: 'rv-spacer' })\n ),\n React.createElement(\n 'div',\n { className: 'rv-legend-titles' },\n React.createElement(\n 'span',\n { className: 'rv-legend-titles__left' },\n startTitle\n ),\n React.createElement(\n 'span',\n { className: 'rv-legend-titles__right' },\n endTitle\n )\n )\n );\n}\n\nContinuousSizeLegend.displayName = 'ContinuousSizeLegend';\nContinuousSizeLegend.propTypes = propTypes;\nContinuousSizeLegend.defaultProps = defaultProps;\n\nexport default ContinuousSizeLegend;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\n\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\n var className = 'rv-discrete-color-legend-item ' + orientation;\n if (disabled) {\n className += ' disabled';\n }\n if (onClick) {\n className += ' clickable';\n }\n var strokeDasharrayStyle = STROKE_STYLES[strokeStyle] || strokeDasharray;\n return React.createElement(\n 'div',\n { className: className, onClick: onClick, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave },\n React.createElement(\n 'svg',\n { className: 'rv-discrete-color-legend-item__color', height: 2, 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 ? { strokeWidth: strokeWidth } : {}, strokeDasharrayStyle ? { strokeDasharray: strokeDasharrayStyle } : {}, {\n stroke: disabled ? null : color\n })\n\n })\n ),\n React.createElement(\n 'span',\n { className: 'rv-discrete-color-legend-item__title' },\n title\n )\n );\n}\n\nDiscreteColorLegendItem.propTypes = {\n color: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,\n onClick: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n orientation: PropTypes.oneOf(['vertical', 'horizontal']).isRequired,\n strokeDasharray: PropTypes.string,\n strokeWidth: PropTypes.number,\n strokeStyle: PropTypes.oneOf(Object.keys(STROKE_STYLES))\n};\nDiscreteColorLegendItem.defaultProps = {\n disabled: false,\n strokeStyle: 'solid'\n};\nDiscreteColorLegendItem.displayName = 'DiscreteColorLegendItem';\n\nexport default DiscreteColorLegendItem;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\n\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\n return React.createElement(\n 'div',\n {\n className: 'rv-discrete-color-legend ' + orientation + ' ' + className,\n style: _extends({ width: width, height: height }, style)\n },\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}\n\nDiscreteColorLegend.displayName = 'DiscreteColorLegendItem';\nDiscreteColorLegend.propTypes = {\n className: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,\n color: PropTypes.string,\n disabled: PropTypes.bool\n }), PropTypes.string.isRequired, PropTypes.element])).isRequired,\n onItemClick: PropTypes.func,\n onItemMouseEnter: PropTypes.func,\n onItemMouseLeave: PropTypes.func,\n height: PropTypes.number,\n width: PropTypes.number,\n orientation: PropTypes.oneOf(['vertical', 'horizontal'])\n};\n\nDiscreteColorLegend.defaultProps = {\n className: '',\n colors: DISCRETE_COLOR_RANGE,\n orientation: 'vertical'\n};\n\nexport default DiscreteColorLegend;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport DiscreteColorLegend from './discrete-color-legend';\n\nvar propTypes = _extends({}, DiscreteColorLegend.propTypes, {\n searchText: PropTypes.string,\n onSearchChange: PropTypes.func,\n searchPlaceholder: PropTypes.string,\n searchFn: PropTypes.func\n});\n\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\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(\n 'div',\n { className: 'rv-search-wrapper ' + className, style: { width: width, height: height } },\n React.createElement(\n '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 })\n ),\n React.createElement(\n '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 );\n}\n\nSearchableDiscreteColorLegend.propTypes = propTypes;\nSearchableDiscreteColorLegend.defaultProps = defaultProps;\nSearchableDiscreteColorLegend.displayName = 'SearchableDiscreteColorLegend';\n\nexport default SearchableDiscreteColorLegend;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { scaleLinear } from 'd3-scale';\nimport { format } from 'd3-format';\n\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';\n\nimport Highlight from '../plot/highlight';\n\nvar predefinedClassName = 'rv-parallel-coordinates-chart';\nvar DEFAULT_FORMAT = format('.2r');\n/**\n * Generate axes for each of the domains\n * @param {Object} props\n - props.animation {Boolean}\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.style {object} style object for the whole chart\n - props.tickFormat {Function} formatting function for axes\n * @return {Array} the plotted axis components\n */\nfunction getAxes(props) {\n var animation = props.animation,\n domains = props.domains,\n style = props.style,\n tickFormat = props.tickFormat;\n\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: { x: domain.name, y: 0 },\n axisEnd: { x: domain.name, y: 1 },\n axisDomain: sortedDomain,\n numberOfTicks: 5,\n tickValue: domainTickFormat,\n style: style.axes\n });\n });\n}\n\n/**\n * Generate labels for the ends of the axes\n * @param {Object} props\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.style {object} style object for just the labels\n * @return {Array} the prepped data for the labelSeries\n */\nfunction getLabels(props) {\n var domains = props.domains,\n style = props.style;\n\n return domains.map(function (domain, index) {\n return {\n x: domain.name,\n y: 1.1,\n label: domain.name,\n style: style\n };\n });\n}\n\n/**\n * Generate the actual lines to be plotted\n * @param {Object} props\n - props.animation {Boolean}\n - props.data {Array} array of object specifying what values are to be plotted\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.style {object} style object for the whole chart\n - props.showMarks {Bool} whether or not to use the line mark series\n * @return {Array} the plotted axis components\n */\nfunction getLines(props) {\n var animation = props.animation,\n brushFilters = props.brushFilters,\n colorRange = props.colorRange,\n domains = props.domains,\n data = props.data,\n style = props.style,\n showMarks = props.showMarks;\n\n var scales = domains.reduce(function (acc, _ref) {\n var domain = _ref.domain,\n name = _ref.name;\n\n acc[name] = scaleLinear().domain(domain).range([0, 1]);\n return acc;\n }, {});\n // const\n\n return data.map(function (row, rowIndex) {\n var withinFilteredRange = true;\n var mappedData = domains.map(function (domain, index) {\n var getValue = domain.getValue,\n name = domain.name;\n\n // watch out! Gotcha afoot\n // yVal after being scale is in [0, 1] range\n\n var yVal = scales[name](getValue ? getValue(row) : row[name]);\n var filter = brushFilters[name];\n // filter value after being scale back from pixel space is also in [0, 1]\n if (filter && (yVal < filter.min || yVal > filter.max)) {\n withinFilteredRange = false;\n }\n return { x: name, y: yVal };\n });\n var selectedName = predefinedClassName + '-line';\n var unselectedName = selectedName + ' ' + predefinedClassName + '-line-unselected';\n var lineProps = {\n animation: animation,\n className: withinFilteredRange ? selectedName : unselectedName,\n key: rowIndex + '-polygon',\n data: mappedData,\n color: row.color || colorRange[rowIndex % colorRange.length],\n style: _extends({}, style.lines, row.style || {})\n };\n if (!withinFilteredRange) {\n lineProps.style = _extends({}, lineProps.style, style.deselectedLineStyle);\n }\n return showMarks ? React.createElement(LineMarkSeries, lineProps) : React.createElement(LineSeries, lineProps);\n });\n}\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\n\n var axes = getAxes({\n domains: domains,\n animation: animation,\n hideInnerMostValues: hideInnerMostValues,\n style: style,\n tickFormat: tickFormat\n });\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({ domains: domains, style: style.labels })\n });\n\n var _getInnerDimensions = getInnerDimensions(this.props, DEFAULT_MARGINS),\n marginLeft = _getInnerDimensions.marginLeft,\n marginRight = _getInnerDimensions.marginRight;\n\n return React.createElement(\n XYPlot,\n {\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 },\n children,\n axes.concat(lines).concat(labelSeries),\n brushing && domains.map(function (d) {\n var trigger = function trigger(row) {\n _this2.setState({\n brushFilters: _extends({}, brushFilters, _defineProperty({}, d.name, row ? { min: row.bottom, max: row.top } : null))\n });\n };\n return React.createElement(Highlight, {\n key: d.name,\n drag: true,\n highlightX: d.name,\n onBrushEnd: trigger,\n onDragEnd: trigger,\n highlightWidth: (width - marginLeft - marginRight) / domains.length,\n enableX: false\n });\n })\n );\n }\n }]);\n\n return ParallelCoordinates;\n}(Component);\n\nParallelCoordinates.displayName = 'ParallelCoordinates';\nParallelCoordinates.propTypes = {\n animation: AnimationPropType,\n brushing: PropTypes.bool,\n className: PropTypes.string,\n colorType: PropTypes.string,\n colorRange: PropTypes.arrayOf(PropTypes.string),\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\n domains: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n domain: PropTypes.arrayOf(PropTypes.number).isRequired,\n tickFormat: PropTypes.func\n })).isRequired,\n height: PropTypes.number.isRequired,\n margin: MarginPropType,\n style: PropTypes.shape({\n axes: PropTypes.object,\n labels: PropTypes.object,\n lines: PropTypes.object\n }),\n showMarks: PropTypes.bool,\n tickFormat: PropTypes.func,\n width: PropTypes.number.isRequired\n};\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};\n\nexport default ParallelCoordinates;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { scaleLinear } from 'd3-scale';\nimport { format } from 'd3-format';\n\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';\n\nvar predefinedClassName = 'rv-radar-chart';\nvar DEFAULT_FORMAT = format('.2r');\n/**\n * Generate axes for each of the domains\n * @param {Object} props\n - props.animation {Boolean}\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.style {object} style object for the whole chart\n - props.tickFormat {Function} formatting function for axes\n - props.startingAngle {number} the initial angle offset\n * @return {Array} the plotted axis components\n */\nfunction getAxes(props) {\n var animation = props.animation,\n domains = props.domains,\n startingAngle = props.startingAngle,\n style = props.style,\n tickFormat = props.tickFormat,\n hideInnerMostValues = props.hideInnerMostValues;\n\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 return domain.tickFormat ? domain.tickFormat(t) : tickFormat(t);\n };\n\n return React.createElement(DecorativeAxis, {\n animation: animation,\n key: index + '-axis',\n axisStart: { x: 0, y: 0 },\n axisEnd: {\n x: getCoordinate(Math.cos(angle)),\n y: getCoordinate(Math.sin(angle))\n },\n axisDomain: sortedDomain,\n numberOfTicks: 5,\n tickValue: domainTickFormat,\n style: style.axes\n });\n });\n}\n\n/**\n * Generate x or y coordinate for axisEnd\n * @param {Number} axisEndPoint\n - epsilon is an arbitrarily chosen small number to approximate axisEndPoints\n - to true values resulting from trigonometry functions (sin, cos) on angles\n * @return {Number} the x or y coordinate accounting for exact trig values\n */\nfunction getCoordinate(axisEndPoint) {\n var epsilon = 10e-13;\n if (Math.abs(axisEndPoint) <= epsilon) {\n axisEndPoint = 0;\n } else if (axisEndPoint > 0) {\n if (Math.abs(axisEndPoint - 0.5) <= epsilon) {\n axisEndPoint = 0.5;\n }\n } else if (axisEndPoint < 0) {\n if (Math.abs(axisEndPoint + 0.5) <= epsilon) {\n axisEndPoint = -0.5;\n }\n }\n return axisEndPoint;\n}\n\n/**\n * Generate labels for the ends of the axes\n * @param {Object} props\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.startingAngle {number} the initial angle offset\n - props.style {object} style object for just the labels\n * @return {Array} the prepped data for the labelSeries\n */\nfunction getLabels(props) {\n var domains = props.domains,\n startingAngle = props.startingAngle,\n style = props.style;\n\n return domains.map(function (_ref, index) {\n var name = _ref.name;\n\n var angle = index / domains.length * Math.PI * 2 + startingAngle;\n var radius = 1.2;\n return {\n x: radius * Math.cos(angle),\n y: radius * Math.sin(angle),\n label: name,\n style: style\n };\n });\n}\n\n/**\n * Generate the actual polygons to be plotted\n * @param {Object} props\n - props.animation {Boolean}\n - props.data {Array} array of object specifying what values are to be plotted\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.startingAngle {number} the initial angle offset\n - props.style {object} style object for the whole chart\n * @return {Array} the plotted axis components\n */\nfunction getPolygons(props) {\n var animation = props.animation,\n colorRange = props.colorRange,\n domains = props.domains,\n data = props.data,\n style = props.style,\n startingAngle = props.startingAngle,\n onSeriesMouseOver = props.onSeriesMouseOver,\n onSeriesMouseOut = props.onSeriesMouseOut;\n\n var scales = domains.reduce(function (acc, _ref2) {\n var domain = _ref2.domain,\n name = _ref2.name;\n\n acc[name] = scaleLinear().domain(domain).range([0, 1]);\n return acc;\n }, {});\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\n var dataPoint = getValue ? getValue(row) : row[name];\n // error handling if point doesn't exist\n var angle = index / domains.length * Math.PI * 2 + startingAngle;\n // dont let the radius become negative\n var radius = Math.max(scales[name](dataPoint), 0);\n return { x: radius * Math.cos(angle), y: radius * Math.sin(angle), name: row.name };\n });\n\n return React.createElement(PolygonSeries, {\n animation: animation,\n className: predefinedClassName + '-polygon',\n key: rowIndex + '-polygon',\n data: mappedData,\n style: _extends({\n stroke: row.color || row.stroke || colorRange[rowIndex % colorRange.length],\n fill: row.color || row.fill || colorRange[rowIndex % colorRange.length]\n }, style.polygons),\n onSeriesMouseOver: onSeriesMouseOver,\n onSeriesMouseOut: onSeriesMouseOut\n });\n });\n}\n\n/**\n * Generate circles at the polygon points for Hover functionality\n * @param {Object} props\n - props.animation {Boolean}\n - props.data {Array} array of object specifying what values are to be plotted\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.startingAngle {number} the initial angle offset\n - props.style {object} style object for the whole chart\n - props.onValueMouseOver {function} function to call on mouse over a polygon point\n - props.onValueMouseOver {function} function to call when mouse leaves a polygon point\n * @return {Array} the plotted axis components\n */\nfunction getPolygonPoints(props) {\n var animation = props.animation,\n domains = props.domains,\n data = props.data,\n startingAngle = props.startingAngle,\n style = props.style,\n onValueMouseOver = props.onValueMouseOver,\n onValueMouseOut = props.onValueMouseOut;\n\n if (!onValueMouseOver) {\n return;\n }\n var scales = domains.reduce(function (acc, _ref4) {\n var domain = _ref4.domain,\n name = _ref4.name;\n\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\n var dataPoint = getValue ? getValue(row) : row[name];\n // error handling if point doesn't exist\n var angle = index / domains.length * Math.PI * 2 + startingAngle;\n // dont let the radius become negative\n var radius = Math.max(scales[name](dataPoint), 0);\n return {\n x: radius * Math.cos(angle),\n y: radius * Math.sin(angle),\n domain: name,\n value: dataPoint,\n dataName: row.name\n };\n });\n\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\n\n var axes = getAxes({\n domains: domains,\n animation: animation,\n hideInnerMostValues: hideInnerMostValues,\n startingAngle: startingAngle,\n style: style,\n tickFormat: tickFormat\n });\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\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\n var labelSeries = React.createElement(LabelSeries, {\n animation: animation,\n key: className,\n className: predefinedClassName + '-label',\n data: getLabels({ domains: domains, style: style.labels, startingAngle: startingAngle }) });\n return React.createElement(\n XYPlot,\n {\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,\n !renderAxesOverPolygons && axes.concat(polygons).concat(labelSeries).concat(polygonPoints),\n renderAxesOverPolygons && polygons.concat(labelSeries).concat(axes).concat(polygonPoints)\n );\n}\n\nRadarChart.displayName = 'RadarChart';\nRadarChart.propTypes = {\n animation: AnimationPropType,\n className: PropTypes.string,\n colorType: PropTypes.string,\n colorRange: PropTypes.arrayOf(PropTypes.string),\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\n domains: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n domain: PropTypes.arrayOf(PropTypes.number).isRequired,\n tickFormat: PropTypes.func\n })).isRequired,\n height: PropTypes.number.isRequired,\n hideInnerMostValues: PropTypes.bool,\n margin: MarginPropType,\n startingAngle: PropTypes.number,\n style: PropTypes.shape({\n axes: PropTypes.object,\n labels: PropTypes.object,\n polygons: PropTypes.object\n }),\n tickFormat: PropTypes.func,\n width: PropTypes.number.isRequired,\n renderAxesOverPolygons: PropTypes.bool,\n onValueMouseOver: PropTypes.func,\n onValueMouseOut: PropTypes.func,\n onSeriesMouseOver: PropTypes.func,\n onSeriesMouseOut: PropTypes.func\n};\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};\n\nexport default RadarChart;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { pie as pieBuilder } from 'd3-shape';\n\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';\n\nvar predefinedClassName = 'rv-radial-chart';\n\nvar DEFAULT_RADIUS_MARGIN = 15;\n\n/**\n * Create the list of wedges to render.\n * @param {Object} props\n props.data {Object} - tree structured data (each node has a name anc an array of children)\n * @returns {Array} Array of nodes.\n */\nfunction getWedgesToRender(_ref) {\n var data = _ref.data,\n getAngle = _ref.getAngle;\n\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\n return mappedData.reduce(function (res, row) {\n var angle = row.angle,\n angle0 = row.angle0,\n radius = row.radius;\n\n var centeredAngle = (angle + angle0) / 2;\n\n // unfortunate, but true fact: d3 starts its radians at 12 oclock rather than 3\n // and move clockwise rather than counter clockwise. why why why!\n var updatedAngle = -1 * centeredAngle + Math.PI / 2;\n var newLabels = [];\n if (getLabel(row)) {\n newLabels.push({\n angle: updatedAngle,\n radius: radius * labelsRadiusMultiplier,\n label: getLabel(row)\n });\n }\n\n if (getSubLabel(row)) {\n newLabels.push({\n angle: updatedAngle,\n radius: radius * labelsRadiusMultiplier,\n label: getSubLabel(row),\n style: { fontSize: 10 },\n yOffset: 12\n });\n }\n return res.concat(newLabels);\n }, []);\n // could add force direction here to make sure the labels dont overlap\n}\n\n/**\n * Get the max radius so the chart can extend to the margin.\n * @param {Number} width - container width\n * @param {Number} height - container height\n * @return {Number} radius\n */\nfunction getMaxRadius(width, height) {\n return Math.min(width, height) / 2 - DEFAULT_RADIUS_MARGIN;\n}\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\n var mappedData = getWedgesToRender({\n data: data,\n height: height,\n hideRootNode: hideRootNode,\n width: width,\n getAngle: getAngle\n });\n var radialDomain = getRadialDomain(mappedData);\n var arcProps = _extends({\n colorType: colorType\n }, props, {\n animation: animation,\n radiusDomain: [0, radialDomain],\n data: mappedData,\n radiusNoFallBack: true,\n style: style,\n arcClassName: 'rv-radial-chart__series--pie__slice'\n });\n if (radius) {\n arcProps.radiusDomain = [0, 1];\n arcProps.radiusRange = [innerRadius || 0, radius];\n arcProps.radiusType = 'linear';\n }\n var maxRadius = radius ? radius : getMaxRadius(width, height);\n var defaultMargin = getRadialLayoutMargin(width, height, maxRadius);\n\n var labels = generateLabels(mappedData, {\n getLabel: getLabel,\n getSubLabel: getSubLabel\n }, labelsRadiusMultiplier);\n return React.createElement(\n XYPlot,\n {\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 },\n React.createElement(ArcSeries, _extends({}, arcProps, { getAngle: function getAngle(d) {\n return d.angle;\n } })),\n showLabels && !labelsAboveChildren && React.createElement(LabelSeries, { data: labels, style: labelsStyle }),\n children,\n showLabels && labelsAboveChildren && React.createElement(LabelSeries, { data: labels, style: labelsStyle })\n );\n}\n\nRadialChart.displayName = 'RadialChart';\nRadialChart.propTypes = {\n animation: AnimationPropType,\n className: PropTypes.string,\n colorType: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.shape({\n angle: PropTypes.number,\n className: PropTypes.string,\n label: PropTypes.string,\n radius: PropTypes.number,\n style: PropTypes.object\n })).isRequired,\n getAngle: PropTypes.func,\n getAngle0: PropTypes.func,\n padAngle: PropTypes.oneOfType([PropTypes.func, PropTypes.number]),\n getRadius: PropTypes.func,\n getRadius0: PropTypes.func,\n getLabel: PropTypes.func,\n height: PropTypes.number.isRequired,\n labelsAboveChildren: PropTypes.bool,\n labelsStyle: PropTypes.object,\n margin: MarginPropType,\n onValueClick: PropTypes.func,\n onValueMouseOver: PropTypes.func,\n onValueMouseOut: PropTypes.func,\n showLabels: PropTypes.bool,\n style: PropTypes.object,\n subLabel: PropTypes.func,\n width: PropTypes.number.isRequired\n};\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};\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}\n\nexport function right(node, n) {\n return n - 1 - node.height;\n}\n\nexport function justify(node, n) {\n return node.sourceLinks.length ? node.depth : n - 1;\n}\n\nexport function center(node) {\n return node.targetLinks.length ? node.depth\n : node.sourceLinks.length ? min(node.sourceLinks, targetDepth) - 1\n : 0;\n}\n","export default function constant(x) {\n return function() {\n return x;\n };\n}\n","import {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, y0 = 0, x1 = 1, y1 = 1, // extent\n dx = 24, // nodeWidth\n py = 8, // nodePadding\n id = defaultId,\n align = justify,\n nodes = defaultNodes,\n links = defaultLinks,\n iterations = 32;\n\n function sankey() {\n var graph = {nodes: nodes.apply(null, arguments), links: links.apply(null, arguments)};\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 };\n\n // Populate the sourceLinks and targetLinks for each node.\n // Also, if the source and target are not objects, assume they are indices.\n function computeNodeLinks(graph) {\n graph.nodes.forEach(function(node, i) {\n node.index = i;\n node.sourceLinks = [];\n node.targetLinks = [];\n });\n var nodeById = map(graph.nodes, id);\n graph.links.forEach(function(link, i) {\n link.index = i;\n var source = link.source, target = link.target;\n if (typeof source !== \"object\") source = link.source = find(nodeById, source);\n if (typeof target !== \"object\") target = link.target = find(nodeById, target);\n source.sourceLinks.push(link);\n target.targetLinks.push(link);\n });\n }\n\n // Compute the value (size) of each node by summing the associated links.\n function computeNodeValues(graph) {\n graph.nodes.forEach(function(node) {\n node.value = Math.max(\n sum(node.sourceLinks, value),\n sum(node.targetLinks, value)\n );\n });\n }\n\n // Iteratively assign the depth (x-position) for each node.\n // Nodes are assigned the maximum depth of incoming neighbors plus one;\n // nodes with no incoming links are assigned depth zero, while\n // nodes with no outgoing links are assigned the maximum depth.\n function computeNodeDepths(graph) {\n var nodes, next, x;\n\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()\n .key(function(d) { return d.x0; })\n .sortKeys(ascending)\n .entries(graph.nodes)\n .map(function(d) { return d.values; });\n\n //\n initializeNodeBreadth();\n resolveCollisions();\n for (var alpha = 1, n = iterations; n > 0; --n) {\n relaxRightToLeft(alpha *= 0.99);\n resolveCollisions();\n relaxLeftToRight(alpha);\n resolveCollisions();\n }\n\n function initializeNodeBreadth() {\n var ky = min(columns, function(nodes) {\n return (y1 - y0 - (nodes.length - 1) * py) / sum(nodes, value);\n });\n\n columns.forEach(function(nodes) {\n nodes.forEach(function(node, i) {\n node.y1 = (node.y0 = i) + node.value * ky;\n });\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;\n\n // Push any overlapping nodes down.\n nodes.sort(ascendingBreadth);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dy = y - node.y0;\n if (dy > 0) node.y0 += dy, node.y1 += dy;\n y = node.y1 + py;\n }\n\n // If the bottommost node goes outside the bounds, push it back up.\n dy = y - py - y1;\n if (dy > 0) {\n y = (node.y0 -= dy), node.y1 -= dy;\n\n // Push any overlapping nodes back up.\n for (i = n - 2; i >= 0; --i) {\n node = nodes[i];\n dy = node.y1 + py - y;\n if (dy > 0) node.y0 -= dy, node.y1 -= dy;\n y = node.y0;\n }\n }\n });\n }\n }\n\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, 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}\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()\n .source(horizontalSource)\n .target(horizontalTarget);\n}\n","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport { DISCRETE_COLOR_RANGE } from '../theme';\nimport Animation from '../animation';\nimport { ANIMATED_SERIES_PROPS } from '../utils/series-utils';\n\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(\n Animation,\n _extends({}, props, { animatedProps: ANIMATED_SERIES_PROPS }),\n React.createElement(SankeyLink, _extends({}, props, { animation: null }))\n );\n }\n return React.createElement('path', _extends({\n d: data\n }, style, {\n className: 'rv-sankey__link',\n opacity: Number.isFinite(opacity) ? opacity : DEFAULT_LINK_OPACITY,\n stroke: color || DEFAULT_LINK_COLOR,\n onClick: function onClick(e) {\n return onLinkClick(node, e);\n },\n onMouseOver: function onMouseOver(e) {\n return onLinkMouseOver(node, e);\n },\n onMouseOut: function onMouseOut(e) {\n return onLinkMouseOut(node, e);\n },\n strokeWidth: strokeWidth,\n fill: 'none'\n }));\n}\n\nSankeyLink.displayName = 'SankeyLink';\nSankeyLink.requiresSVG = true;\nexport default SankeyLink;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { sankey, sankeyLinkHorizontal, sankeyLeft, sankeyRight, sankeyCenter, sankeyJustify } from 'd3-sankey';\nimport XYPlot from '../plot/xy-plot';\n\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';\n\nimport SankeyLink from './sankey-link';\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};\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\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\n var nWidth = sankeyInstance.nodeWidth();\n var path = sankeyLinkHorizontal();\n\n return React.createElement(\n XYPlot,\n _extends({}, props, { yType: 'literal', 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 }),\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 }),\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 }),\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 }),\n children\n );\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};\n\nSankey.propTypes = {\n align: PropTypes.oneOf(['justify', 'left', 'right', 'center']),\n className: PropTypes.string,\n hasVoronoi: PropTypes.bool,\n height: PropTypes.number.isRequired,\n hideLabels: PropTypes.bool,\n labelRotation: PropTypes.number,\n layout: PropTypes.number,\n links: PropTypes.arrayOf(PropTypes.shape({\n source: PropTypes.oneOfType([PropTypes.number, PropTypes.object]).isRequired,\n target: PropTypes.oneOfType([PropTypes.number, PropTypes.object]).isRequired\n })).isRequired,\n margin: MarginPropType,\n nodePadding: PropTypes.number,\n nodes: PropTypes.arrayOf(PropTypes.object).isRequired,\n nodeWidth: PropTypes.number,\n onValueMouseOver: PropTypes.func,\n onValueClick: PropTypes.func,\n onValueMouseOut: PropTypes.func,\n onLinkClick: PropTypes.func,\n onLinkMouseOver: PropTypes.func,\n onLinkMouseOut: PropTypes.func,\n style: PropTypes.shape({\n links: PropTypes.object,\n rects: PropTypes.object,\n labels: PropTypes.object\n }),\n width: PropTypes.number.isRequired\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}\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}\n","import roundNode from \"./treemap/round.js\";\nimport treemapDice from \"./treemap/dice.js\";\n\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 =\n 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 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}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\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\";\n\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\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\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 do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\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};\n","export default function(callback) {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], next = [], children, i, n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], children, i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n}\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}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { hierarchy, partition } from 'd3-hierarchy';\n\nimport { scaleLinear, scaleSqrt } from 'd3-scale';\n\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';\n\nvar predefinedClassName = 'rv-sunburst';\n\nvar LISTENERS_TO_OVERWRITE = ['onValueMouseOver', 'onValueMouseOut', 'onValueClick', 'onValueRightClick', 'onSeriesMouseOver', 'onSeriesMouseOut', 'onSeriesClick', 'onSeriesRightClick'];\n\n/**\n * Create the list of nodes to render.\n * @param {Object} props\n props.data {Object} - tree structured data (each node has a name anc an array of children)\n props.height {number} - the height of the graphic to be rendered\n props.hideRootNode {boolean} - whether or not to hide the root node\n props.width {number} - the width of the graphic to be rendered\n props.getSize {function} - accessor for the size\n * @returns {Array} Array of nodes.\n */\nfunction getNodesToRender(_ref) {\n var data = _ref.data,\n height = _ref.height,\n hideRootNode = _ref.hideRootNode,\n width = _ref.width,\n getSize = _ref.getSize;\n\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\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/**\n * Convert arc nodes into label rows.\n * Important to use mappedData rather than regular data, bc it is already unrolled\n * @param {Array} mappedData - Array of nodes.\n * @param {Object} accessors - object of accessors\n * @returns {Array} array of node for rendering as labels\n */\nfunction buildLabels(mappedData, accessors) {\n var getAngle = accessors.getAngle,\n getAngle0 = accessors.getAngle0,\n getLabel = accessors.getLabel,\n getRadius0 = accessors.getRadius0;\n\n\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\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\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\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 return React.createElement(\n XYPlot,\n {\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 },\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 }, {}))),\n labelData.length > 0 && React.createElement(LabelSeries, { data: labelData, getLabel: getLabel }),\n children\n );\n}\n\nSunburst.displayName = 'Sunburst';\nSunburst.propTypes = {\n animation: AnimationPropType,\n getAngle: PropTypes.func,\n getAngle0: PropTypes.func,\n className: PropTypes.string,\n colorType: PropTypes.string,\n data: PropTypes.object.isRequired,\n height: PropTypes.number.isRequired,\n hideRootNode: PropTypes.bool,\n getLabel: PropTypes.func,\n onValueClick: PropTypes.func,\n onValueMouseOver: PropTypes.func,\n onValueMouseOut: PropTypes.func,\n getSize: PropTypes.func,\n width: PropTypes.number.isRequired,\n padAngle: PropTypes.oneOfType([PropTypes.func, PropTypes.number])\n};\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};\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}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\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, 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;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\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);\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nimport {phi, squarifyRatio} from \"./squarify.js\";\n\nexport default (function custom(ratio) {\n\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 for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);\n 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);\n","export var slice = Array.prototype.slice;\n\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}\n","import {shuffle, slice} from \"../array.js\";\n\nexport default function(circles) {\n var i = 0, n = (circles = shuffle(slice.call(circles))).length, B = [], p, e;\n\n while (i < n) {\n p = circles[i];\n if (e && enclosesWeak(e, p)) ++i;\n 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\n if (enclosesWeakAll(p, B)) return [p];\n\n // If we get here then B must have at least one element.\n for (i = 0; i < B.length; ++i) {\n if (enclosesNot(p, B[i])\n && enclosesWeakAll(encloseBasis2(B[i], p), B)) {\n return [B[i], p];\n }\n }\n\n // If we get here then B must have at least two elements.\n for (i = 0; i < B.length - 1; ++i) {\n for (j = i + 1; j < B.length; ++j) {\n if (enclosesNot(encloseBasis2(B[i], B[j]), p)\n && enclosesNot(encloseBasis2(B[i], p), B[j])\n && enclosesNot(encloseBasis2(B[j], p), B[i])\n && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {\n return [B[i], B[j], p];\n }\n }\n }\n\n // If we get here then something is very wrong.\n throw new Error;\n}\n\nfunction enclosesNot(a, b) {\n var dr = a.r - b.r, dx = b.x - a.x, 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, dx = b.x - a.x, 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 return true;\n}\n\nfunction encloseBasis(B) {\n switch (B.length) {\n case 1: return encloseBasis1(B[0]);\n case 2: return encloseBasis2(B[0], B[1]);\n case 3: 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, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x21 = x2 - x1, y21 = y2 - y1, 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, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x3 = c.x, y3 = c.y, 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}\n","import enclose from \"./enclose.js\";\n\nfunction place(b, a, c) {\n var dx = b.x - a.x, x, a2,\n dy = b.y - a.y, y, b2,\n d2 = dx * dx + dy * dy;\n if (d2) {\n a2 = a.r + c.r, a2 *= a2;\n b2 = b.r + c.r, b2 *= b2;\n if (a2 > b2) {\n x = (d2 + b2 - a2) / (2 * d2);\n y = Math.sqrt(Math.max(0, b2 / d2 - x * x));\n c.x = b.x - x * dx - y * dy;\n c.y = b.y - x * dy + y * dx;\n } else {\n x = (d2 + a2 - b2) / (2 * d2);\n y = Math.sqrt(Math.max(0, a2 / d2 - x * x));\n c.x = a.x + x * dx - y * dy;\n c.y = a.y + x * dy + y * dx;\n }\n } else {\n c.x = a.x + c.r;\n c.y = a.y;\n }\n}\n\nfunction intersects(a, b) {\n var dr = a.r + b.r - 1e-6, dx = b.x - a.x, 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\n var a, b, c, n, aa, ca, i, j, k, sj, sk;\n\n // Place the first circle.\n a = circles[0], a.x = 0, a.y = 0;\n if (!(n > 1)) return a.r;\n\n // Place the second circle.\n b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n if (!(n > 2)) return a.r + b.r;\n\n // Place the third circle.\n place(b, a, c = circles[2]);\n\n // Initialize the front-chain using the first three circles a, b and c.\n a = new Node(a), b = new Node(b), c = new Node(c);\n a.next = c.previous = b;\n b.next = a.previous = c;\n c.next = b.previous = a;\n\n // Attempt to place each remaining circle…\n pack: for (i = 3; i < n; ++i) {\n place(a._, b._, c = circles[i]), c = new Node(c);\n\n // Find the closest intersecting circle on the front-chain, if any.\n // “Closeness” is determined by linear distance along the front-chain.\n // “Ahead” or “behind” is likewise determined by linear distance.\n j = b.next, k = a.previous, sj = b._.r, sk = a._.r;\n do {\n if (sj <= sk) {\n if (intersects(j._, c._)) {\n b = j, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sj += j._.r, j = j.next;\n } else {\n if (intersects(k._, c._)) {\n a = k, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sk += k._.r, k = k.previous;\n }\n } while (j !== k.next);\n\n // Success! Insert the new circle c between a and b.\n c.previous = a, c.next = b, a.next = b.previous = b = c;\n\n // Compute the new closest circle pair to the centroid.\n aa = score(a);\n while ((c = c.next) !== b) {\n if ((ca = score(c)) < aa) {\n a = c, aa = ca;\n }\n }\n b = a.next;\n }\n\n // Compute the enclosing circle of the front chain.\n a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = enclose(a);\n\n // Translate the circles to put the enclosing circle around the origin.\n for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;\n\n return c.r;\n}\n\nexport default function(circles) {\n packEnclose(circles);\n return circles;\n}\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\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 if (radius) {\n root.eachBefore(radiusLeaf(radius))\n .eachAfter(packChildren(padding, 0.5))\n .eachBefore(translateChild(1));\n } else {\n root.eachBefore(radiusLeaf(defaultRadius))\n .eachAfter(packChildren(constantZero, 1))\n .eachAfter(packChildren(padding, root.r / Math.min(dx, dy)))\n .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));\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\n if (r) for (i = 0; i < n; ++i) children[i].r += r;\n e = packEnclose(children);\n if (r) for (i = 0; i < n; ++i) children[i].r -= r;\n node.r = e + r;\n }\n };\n}\n\nfunction translateChild(k) {\n return function(node) {\n var parent = node.parent;\n node.r *= k;\n if (parent) {\n node.x = parent.x + k * node.x;\n node.y = parent.y + k * node.y;\n }\n };\n}\n","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport Animation, { AnimationPropType } from '../animation';\nimport { getFontColorFromBackground } from '../utils/scales-utils';\n\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\n if (animation) {\n return React.createElement(\n Animation,\n _extends({}, props, { animatedProps: ANIMATED_PROPS }),\n React.createElement(TreemapLeaf, _extends({}, props, { animation: null }))\n );\n }\n var useCirclePacking = mode === 'circlePack';\n var background = scales.color(node);\n var opacity = scales.opacity(node);\n var color = getFontColorFromBackground(background);\n var data = node.data;\n\n var title = getLabel(data);\n var leafStyle = _extends({\n top: useCirclePacking ? y0 - r : y0,\n left: useCirclePacking ? x0 - r : x0,\n width: useCirclePacking ? r * 2 : x1 - x0,\n height: useCirclePacking ? r * 2 : y1 - y0,\n background: background,\n opacity: opacity,\n color: color\n }, style, node.data.style);\n\n return React.createElement(\n 'div',\n {\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 },\n React.createElement(\n 'div',\n { className: 'rv-treemap__leaf__content' },\n title\n )\n );\n}\n\nTreemapLeaf.propTypes = {\n animation: AnimationPropType,\n height: PropTypes.number.isRequired,\n mode: PropTypes.string,\n node: PropTypes.object.isRequired,\n onLeafClick: PropTypes.func,\n onLeafMouseOver: PropTypes.func,\n onLeafMouseOut: PropTypes.func,\n scales: PropTypes.object.isRequired,\n width: PropTypes.number.isRequired,\n r: PropTypes.number.isRequired,\n x0: PropTypes.number.isRequired,\n x1: PropTypes.number.isRequired,\n y0: PropTypes.number.isRequired,\n y1: PropTypes.number.isRequired\n};\nexport default TreemapLeaf;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\nimport React from 'react';\n\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\n var useCirclePacking = mode === 'circlePack';\n return React.createElement(\n 'div',\n {\n className: 'rv-treemap ' + (useCirclePacking ? 'rv-treemap-circle-packed' : '') + ' ' + className,\n style: { height: height, 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 return React.createElement(TreemapLeaf, _extends({}, nodeProps, { key: 'leaf-' + index }));\n })\n );\n}\n\nTreemapDOM.displayName = 'TreemapDOM';\nexport default TreemapDOM;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\n\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';\n\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 var x = node.x,\n y = node.y,\n r = node.r;\n\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\n return nodes.reduce(function (acc, node, index) {\n if (!index && hideRootNode) {\n return acc;\n }\n var x0 = node.x0,\n x1 = node.x1,\n y1 = node.y1,\n y0 = node.y0;\n\n var x = x0;\n var y = y0;\n var nodeHeight = y1 - y0;\n var nodeWidth = x1 - x0;\n\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\n var data = [{ x: x, y: y }, { x: x, y: y + nodeHeight }, { x: x + nodeWidth, y: y + nodeHeight }, { x: x + nodeWidth, 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\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 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\n return React.createElement(\n XYPlot,\n _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),\n updatedNodes,\n React.createElement(LabelSeries, { data: labels })\n );\n }\n }]);\n\n return TreemapSVG;\n}(React.Component);\n\nTreemapSVG.displayName = 'TreemapSVG';\n\nexport default TreemapSVG;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { hierarchy, pack, partition, treemapSquarify, treemapResquarify, treemapSlice, treemapDice, treemapSliceDice, treemapBinary, treemap } from 'd3-hierarchy';\n\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';\n\nimport TreemapDOM from './treemap-dom';\nimport TreemapSVG from './treemap-svg';\n\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 TREEMAP_LAYOUT_MODES = ['circlePack', 'partition', 'partition-pivot'];\n\nvar NOOP = function NOOP(d) {\n return d;\n};\n\nvar ATTRIBUTES = ['opacity', 'color'];\n\nvar DEFAULT_MARGINS = {\n left: 40,\n right: 10,\n top: 10,\n bottom: 40\n};\n\n/**\n * Get the map of scale functions from the given props.\n * @param {Object} props Props for the component.\n * @returns {Object} Map of scale functions.\n * @private\n */\nfunction _getScaleFns(props) {\n var data = props.data;\n\n var allData = data.children || [];\n\n // Adding _allData property to the object to reuse the existing\n // getAttributeFunctor function.\n var compatibleProps = _extends({}, props, getMissingScaleProps(props, allData, ATTRIBUTES), {\n _allData: allData\n });\n return {\n opacity: getAttributeFunctor(compatibleProps, 'opacity'),\n color: getAttributeFunctor(compatibleProps, 'color')\n };\n}\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 /**\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 var _structuredInput = hierarchy(data).sum(getSize).sort(function (a, b) {\n return sortFunction(a, b, getSize);\n });\n var mappedNodes = partitionFunction(_structuredInput).descendants();\n if (mode === 'partition-pivot') {\n return mappedNodes.map(function (node) {\n return _extends({}, node, {\n x0: node.y0,\n x1: node.y1,\n y0: node.x0,\n y1: node.x1\n });\n });\n }\n return mappedNodes;\n }\n if (mode === 'circlePack') {\n var packingFunction = pack().size([innerWidth, innerHeight]).padding(padding);\n var _structuredInput2 = hierarchy(data).sum(getSize).sort(function (a, b) {\n return sortFunction(a, b, getSize);\n });\n return packingFunction(_structuredInput2).descendants();\n }\n\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 var TreemapElement = renderMode === 'SVG' ? TreemapSVG : TreemapDOM;\n return React.createElement(TreemapElement, _extends({}, this.props, { nodes: nodes, scales: scales }));\n }\n }]);\n\n return Treemap;\n}(React.Component);\n\nTreemap.displayName = 'Treemap';\nTreemap.propTypes = {\n animation: AnimationPropType,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n height: PropTypes.number.isRequired,\n hideRootNode: PropTypes.bool,\n margin: MarginPropType,\n mode: PropTypes.oneOf(Object.keys(TREEMAP_TILE_MODES).concat(TREEMAP_LAYOUT_MODES)),\n onLeafClick: PropTypes.func,\n onLeafMouseOver: PropTypes.func,\n onLeafMouseOut: PropTypes.func,\n useCirclePacking: PropTypes.bool,\n padding: PropTypes.number.isRequired,\n sortFunction: PropTypes.func,\n width: PropTypes.number.isRequired,\n getSize: PropTypes.func,\n getColor: PropTypes.func\n};\n\nTreemap.defaultProps = {\n className: '',\n colorRange: CONTINUOUS_COLOR_RANGE,\n _colorValue: DEFAULT_COLOR,\n data: {\n children: []\n },\n hideRootNode: false,\n margin: DEFAULT_MARGINS,\n mode: 'squarify',\n onLeafClick: NOOP,\n onLeafMouseOver: NOOP,\n onLeafMouseOut: NOOP,\n opacityType: OPACITY_TYPE,\n _opacityValue: DEFAULT_OPACITY,\n padding: 1,\n sortFunction: function sortFunction(a, b, accessor) {\n if (!accessor) {\n return 0;\n }\n return accessor(a) - accessor(b);\n },\n getSize: function getSize(d) {\n return d.size;\n },\n getColor: function getColor(d) {\n return d.color;\n },\n getLabel: function getLabel(d) {\n return d.title;\n }\n};\nexport default Treemap;","import dice from \"./dice.js\";\nimport slice from \"./slice.js\";\n\nexport default function(parent, x0, y0, x1, y1) {\n (parent.depth & 1 ? slice : dice)(parent, x0, y0, x1, y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n i, n = nodes.length,\n sum, 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;\n else hi = mid;\n }\n\n if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;\n\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}\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\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 =\n 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 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}\n","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport React from 'react';\nimport window from 'global/window';\n\nimport XYPlot from './plot/xy-plot';\nimport { getDOMNode } from './utils/react-utils';\n\nvar CONTAINER_REF = 'container';\n\n// As a performance enhancement, we want to only listen once\nvar resizeSubscribers = [];\nvar DEBOUNCE_DURATION = 100;\nvar timeoutId = null;\n\n/**\n * Calls each subscriber, debounced to the\n */\nfunction debounceEmitResize() {\n window.clearTimeout(timeoutId);\n timeoutId = window.setTimeout(emitResize, DEBOUNCE_DURATION);\n}\n\n/**\n * Calls each subscriber once syncronously.\n */\nfunction emitResize() {\n resizeSubscribers.forEach(function (cb) {\n return cb();\n });\n}\n\n/**\n * Add the given callback to the list of subscribers to be caled when the\n * window resizes. Returns a function that, when called, removes the given\n * callback from the list of subscribers. This function is also resposible for\n * adding and removing the resize listener on `window`.\n *\n * @param {Function} cb - Subscriber callback function\n * @returns {Function} Unsubscribe function\n */\nfunction subscribeToDebouncedResize(cb) {\n resizeSubscribers.push(cb);\n\n // if we go from zero to one Flexible components instances, add the listener\n if (resizeSubscribers.length === 1) {\n window.addEventListener('resize', debounceEmitResize);\n }\n return function unsubscribe() {\n removeSubscriber(cb);\n\n // if we have no Flexible components, remove the listener\n if (resizeSubscribers.length === 0) {\n window.clearTimeout(timeoutId);\n window.removeEventListener('resize', debounceEmitResize);\n }\n };\n}\n\n/**\n * Helper for removing the given callback from the list of subscribers.\n *\n * @param {Function} cb - Subscriber callback function\n */\nfunction removeSubscriber(cb) {\n var index = resizeSubscribers.indexOf(cb);\n if (index > -1) {\n resizeSubscribers.splice(index, 1);\n }\n}\n\n/**\n * Helper for getting a display name for the child component\n * @param {*} Component React class for the child component.\n * @returns {String} The child components name\n */\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n\n/**\n * Add the ability to stretch the visualization on window resize.\n * @param {*} Component React class for the child component.\n * @returns {*} Flexible component.\n */\n\nfunction makeFlexible(Component, isWidthFlexible, isHeightFlexible) {\n var ResultClass = function (_React$Component) {\n _inherits(ResultClass, _React$Component);\n\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\n\n var newHeight = _this.state.height === offsetHeight ? {} : { height: offsetHeight };\n\n var newWidth = _this.state.width === offsetWidth ? {} : { width: offsetWidth };\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 /**\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 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 ? { height: height } : {}, isWidthFlexible ? { width: width } : {});\n\n return React.createElement(\n 'div',\n {\n ref: function ref(_ref) {\n return _this2[CONTAINER_REF] = _ref;\n },\n style: { width: '100%', height: '100%' }\n },\n React.createElement(Component, _extends({}, updatedDimensions, props))\n );\n }\n }]);\n\n return ResultClass;\n }(React.Component);\n\n ResultClass.displayName = 'Flexible' + getDisplayName(Component);\n\n return ResultClass;\n}\n\nexport function makeHeightFlexible(component) {\n return makeFlexible(component, false, true);\n}\n\nexport function makeVisFlexible(component) {\n return makeFlexible(component, true, true);\n}\n\nexport function makeWidthFlexible(component) {\n return makeFlexible(component, true, false);\n}\n\nexport var FlexibleWidthXYPlot = makeWidthFlexible(XYPlot);\nexport var FlexibleHeightXYPlot = makeHeightFlexible(XYPlot);\nexport var FlexibleXYPlot = makeVisFlexible(XYPlot);","import React, { Component } from 'react';\r\nimport { timeFormatDefaultLocale } from 'd3-time-format';\r\n\r\nimport {\r\n XYPlot,\r\n LineSeries,\r\n VerticalGridLines,\r\n HorizontalGridLines,\r\n XAxis,\r\n YAxis\r\n} from 'react-vis';\r\n\r\n\r\ntimeFormatDefaultLocale({\r\n \"dateTime\": \"%a %e %b %X %Y\",\r\n \"date\": \"%d/%m/%Y\",\r\n \"time\": \"%H:%M:%S\",\r\n \"periods\": [\"AM\", \"PM\"],\r\n \"days\": [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\r\n \"shortDays\": [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\r\n \"months\": [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\r\n \"shortMonths\": [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\r\n});\r\n\r\n\r\n\r\n\r\n\r\nexport class DisplayData extends Component {\r\n static displayName = DisplayData.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { PiData: [], loading: true, currentCount: 288\r\n };\r\n this.incrementCounter = this.incrementCounter.bind(this);\r\n this.decrementCounter = this.decrementCounter.bind(this);\r\n \r\n }\r\n\r\n\r\n\r\n\r\n incrementCounter() {\r\n if (this.state.currentCount < 4319) {\r\n this.setState({\r\n currentCount: this.state.currentCount + 144\r\n });\r\n }\r\n else {\r\n this.setState({\r\n currentCount: this.state.currentCount + 0\r\n });\r\n }\r\n }\r\n\r\n decrementCounter() {\r\n if (this.state.currentCount > 150) {\r\n this.setState({\r\n currentCount: this.state.currentCount - 144\r\n });\r\n }\r\n else {\r\n this.setState({\r\n currentCount: this.state.currentCount + 0\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n componentDidMount() {\r\n this.getPiData();\r\n }\r\n\r\n\r\n componentDidUpdate(_prevProps, prevState) {\r\n if (prevState.currentCount !== this.state.currentCount) {\r\n this.getPiData();\r\n }\r\n }\r\n\r\n\r\n\r\n static renderPiDataChart(PiData) {\r\n\r\n //let PiDataTemp1 = PiData[0]; //temp1data lineStyle={{ stroke: \"black\" }, { fill: 'none' }}\r\n //let PiDataTemp2 = PiData[1]; //temp2data\r\n //let PiDataHumidity = PiData[2]; //humdata lineStyle={{ stroke: \"red\" }, { fill: 'none' }}\r\n //let PiDataPressure = PiData[3]; //pressdata\r\n //let PiDataRain = PiData[4]; //raindata lineStyle={{ stroke: \"blue\" }, { fill: 'none' }}\r\n //let PiDataSunlight = PiData[5]; //sundata\r\n //let PiDataWinddir = PiData[6]; //winddirdata\r\n //let PiDataWindspeed = PiData[7]; //windsdata\r\n\r\n //map data to lineseries\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n\r\n\r\n\r\n\r\n render() {\r\n\r\n let contents = this.state.loading\r\n ?

....Crunching the numbers....

\r\n : DisplayData.renderPiDataChart(this.state.PiData);\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n\r\n {contents}\r\n\r\n\r\n
\r\n \r\n \r\n\r\n );\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n async getPiData() {\r\n\r\n\r\n const response = await fetch(`https://api.dhncode.com/hellvikdata/getlast/${this.state.currentCount}`);\r\n const Data = await response.json();\r\n \r\n\r\n\r\n var temp1data = []; \r\n var temp2data = [];\r\n var humdata = [];\r\n var pressdata = [];\r\n var raindata = [];\r\n var sundata = [];\r\n var winddirdata = [];\r\n var windsdata = [];\r\n var chartdata = [ temp1data, temp2data, humdata, pressdata, raindata, sundata, winddirdata, windsdata ];\r\n\r\n function temp1chartdata() {\r\n\r\n for (var i = 0; i < Data.length; i++) {\r\n temp1data.push({\r\n x: new Date(Data[i].timeStamp).getTime(),\r\n y: Data[i].temp1\r\n });\r\n temp2data.push({\r\n x: new Date(Data[i].timeStamp).getTime(),\r\n y: Data[i].temp2\r\n });\r\n humdata.push({\r\n x: new Date(Data[i].timeStamp).getTime(),\r\n y: Data[i].humidity\r\n });\r\n pressdata.push({\r\n x: new Date(Data[i].timeStamp).getTime(),\r\n y: Data[i].pressure\r\n });\r\n raindata.push({\r\n x: new Date(Data[i].timeStamp).getTime(),\r\n y: Data[i].rain\r\n });\r\n sundata.push({\r\n x: new Date(Data[i].timeStamp).getTime(),\r\n y: Data[i].sunlight\r\n });\r\n winddirdata.push({\r\n x: new Date(Data[i].timeStamp).getTime(),\r\n y: Data[i].windDir\r\n });\r\n windsdata.push({\r\n x: new Date(Data[i].timeStamp).getTime(),\r\n y: Data[i].windSpeed\r\n });\r\n }\r\n }\r\n temp1chartdata();\r\n\r\n\r\n \r\n console.log(chartdata);\r\n\r\n // use if one const piArray = [Data];\r\n // use if one console.log(piArray);\r\n\r\n\r\n\r\n this.setState({PiData : chartdata,\r\n loading: false\r\n });\r\n\r\n }\r\n }","import React, { Component } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport topVideo from './images/topVideo.mp4';\r\n\r\n\r\n\r\nimport {DisplayData} from './DisplayData';\r\n\r\n\r\nexport class Home extends Component {\r\n static displayName = Home.name;\r\n \r\n render() {\r\n return (\r\n \r\n
\r\n

Weather station

\r\n

..coming soon..

\r\n\r\n

I am not a weather enthusiast, but need data to do some coding.
My own weather data secures a copyright and GDPR safe data set to play with.

\r\n\r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n

Click printer to view progress

\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\n","import { Contact } from \"./components/Contact\";\r\nimport { Privacy } from \"./components/Privacy\";\r\nimport { Counter } from \"./components/Counter\";\r\nimport { PastProjects } from \"./components/PastProjects\";\r\nimport { ProgressLog } from \"./components/ProgressLog\";\r\nimport { FetchData } from \"./components/FetchData\";\r\nimport { Home } from \"./components/Home\";\r\n\r\n\r\nconst AppRoutes = [\r\n {\r\n index: true,\r\n element: \r\n },\r\n {\r\n path: '/counter',\r\n element: \r\n },\r\n {\r\n path: '/fetch-data',\r\n element: \r\n },\r\n {\r\n path: '/Contact',\r\n element: \r\n },\r\n {\r\n path: 'Privacy',\r\n element: \r\n },\r\n {\r\n path: 'PastProjects',\r\n element: \r\n },\r\n {\r\n path: 'ProgressLog',\r\n element: \r\n },\r\n \r\n\r\n\r\n];\r\n\r\nexport default AppRoutes;\r\n","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import * as React from 'react';\nexport var ManagerReferenceNodeContext = React.createContext();\nexport var ManagerReferenceNodeSetterContext = React.createContext();\nexport function Manager(_ref) {\n var children = _ref.children;\n\n var _React$useState = React.useState(null),\n referenceNode = _React$useState[0],\n setReferenceNode = _React$useState[1];\n\n var hasUnmounted = React.useRef(false);\n React.useEffect(function () {\n return function () {\n hasUnmounted.current = true;\n };\n }, []);\n var handleSetReferenceNode = React.useCallback(function (node) {\n if (!hasUnmounted.current) {\n setReferenceNode(node);\n }\n }, []);\n return /*#__PURE__*/React.createElement(ManagerReferenceNodeContext.Provider, {\n value: referenceNode\n }, /*#__PURE__*/React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: handleSetReferenceNode\n }, children));\n}","import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === 'function') {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === 'function') {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n return entries.reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[key] = value;\n return acc;\n }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nexport default function getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n if (options === void 0) {\n options = {};\n }\n\n var prevOptions = React.useRef(null);\n var optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n\n var _React$useState = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n },\n arrow: {\n position: 'absolute'\n }\n },\n attributes: {}\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var updateStateModifier = React.useMemo(function () {\n return {\n name: 'updateState',\n enabled: true,\n phase: 'write',\n fn: function fn(_ref) {\n var state = _ref.state;\n var elements = Object.keys(state.elements);\n ReactDOM.flushSync(function () {\n setState({\n styles: fromEntries(elements.map(function (element) {\n return [element, state.styles[element] || {}];\n })),\n attributes: fromEntries(elements.map(function (element) {\n return [element, state.attributes[element]];\n }))\n });\n });\n },\n requires: ['computeStyles']\n };\n }, []);\n var popperOptions = React.useMemo(function () {\n var newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n name: 'applyStyles',\n enabled: false\n }])\n };\n\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n } else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n var popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(function () {\n if (popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(function () {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n\n var createPopper = options.createPopper || defaultCreatePopper;\n var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return function () {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};","import * as React from 'react';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef } from './utils';\nimport { usePopper } from './usePopper';\n\nvar NOOP = function NOOP() {\n return void 0;\n};\n\nvar NOOP_PROMISE = function NOOP_PROMISE() {\n return Promise.resolve(null);\n};\n\nvar EMPTY_MODIFIERS = [];\nexport function Popper(_ref) {\n var _ref$placement = _ref.placement,\n placement = _ref$placement === void 0 ? 'bottom' : _ref$placement,\n _ref$strategy = _ref.strategy,\n strategy = _ref$strategy === void 0 ? 'absolute' : _ref$strategy,\n _ref$modifiers = _ref.modifiers,\n modifiers = _ref$modifiers === void 0 ? EMPTY_MODIFIERS : _ref$modifiers,\n referenceElement = _ref.referenceElement,\n onFirstUpdate = _ref.onFirstUpdate,\n innerRef = _ref.innerRef,\n children = _ref.children;\n var referenceNode = React.useContext(ManagerReferenceNodeContext);\n\n var _React$useState = React.useState(null),\n popperElement = _React$useState[0],\n setPopperElement = _React$useState[1];\n\n var _React$useState2 = React.useState(null),\n arrowElement = _React$useState2[0],\n setArrowElement = _React$useState2[1];\n\n React.useEffect(function () {\n setRef(innerRef, popperElement);\n }, [innerRef, popperElement]);\n var options = React.useMemo(function () {\n return {\n placement: placement,\n strategy: strategy,\n onFirstUpdate: onFirstUpdate,\n modifiers: [].concat(modifiers, [{\n name: 'arrow',\n enabled: arrowElement != null,\n options: {\n element: arrowElement\n }\n }])\n };\n }, [placement, strategy, onFirstUpdate, modifiers, arrowElement]);\n\n var _usePopper = usePopper(referenceElement || referenceNode, popperElement, options),\n state = _usePopper.state,\n styles = _usePopper.styles,\n forceUpdate = _usePopper.forceUpdate,\n update = _usePopper.update;\n\n var childrenProps = React.useMemo(function () {\n return {\n ref: setPopperElement,\n style: styles.popper,\n placement: state ? state.placement : placement,\n hasPopperEscaped: state && state.modifiersData.hide ? state.modifiersData.hide.hasPopperEscaped : null,\n isReferenceHidden: state && state.modifiersData.hide ? state.modifiersData.hide.isReferenceHidden : null,\n arrowProps: {\n style: styles.arrow,\n ref: setArrowElement\n },\n forceUpdate: forceUpdate || NOOP,\n update: update || NOOP_PROMISE\n };\n }, [setPopperElement, setArrowElement, placement, state, styles, update, forceUpdate]);\n return unwrapArray(children)(childrenProps);\n}","import * as React from 'react';\nimport warning from 'warning';\nimport { ManagerReferenceNodeSetterContext } from './Manager';\nimport { safeInvoke, unwrapArray, setRef } from './utils';\nexport function Reference(_ref) {\n var children = _ref.children,\n innerRef = _ref.innerRef;\n var setReferenceNode = React.useContext(ManagerReferenceNodeSetterContext);\n var refHandler = React.useCallback(function (node) {\n setRef(innerRef, node);\n safeInvoke(setReferenceNode, node);\n }, [innerRef, setReferenceNode]); // ran on unmount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n\n React.useEffect(function () {\n return function () {\n return setRef(innerRef, null);\n };\n }, []);\n React.useEffect(function () {\n warning(Boolean(setReferenceNode), '`Reference` should not be used outside of a `Manager` component.');\n }, [setReferenceNode]);\n return unwrapArray(children)({\n ref: refHandler\n });\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","import PropTypes from 'prop-types';\n\n// https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/js/src/modal.js#L436-L443\nexport function getScrollbarWidth() {\n let scrollDiv = document.createElement('div');\n // .modal-scrollbar-measure styles // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/scss/_modal.scss#L106-L113\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n}\n\nexport function setScrollbarWidth(padding) {\n document.body.style.paddingRight = padding > 0 ? `${padding}px` : null;\n}\n\nexport function isBodyOverflowing() {\n return document.body.clientWidth < window.innerWidth;\n}\n\nexport function getOriginalBodyPadding() {\n const style = window.getComputedStyle(document.body, null);\n\n return parseInt((style && style.getPropertyValue('padding-right')) || 0, 10);\n}\n\nexport function conditionallyUpdateScrollbar() {\n const scrollbarWidth = getScrollbarWidth();\n // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.6/js/src/modal.js#L433\n const fixedContent = document.querySelectorAll(\n '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\n )[0];\n const bodyPadding = fixedContent\n ? parseInt(fixedContent.style.paddingRight || 0, 10)\n : 0;\n\n if (isBodyOverflowing()) {\n setScrollbarWidth(bodyPadding + scrollbarWidth);\n }\n}\n\nlet globalCssModule;\n\nexport function setGlobalCssModule(cssModule) {\n globalCssModule = cssModule;\n}\n\nexport function mapToCssModules(className = '', cssModule = globalCssModule) {\n if (!cssModule) return className;\n return className\n .split(' ')\n .map(c => cssModule[c] || c)\n .join(' ');\n}\n\n/**\n * Returns a new object with the key/value pairs from `obj` that are not in the array `omitKeys`.\n */\nexport function omit(obj, omitKeys) {\n const result = {};\n Object.keys(obj).forEach(key => {\n if (omitKeys.indexOf(key) === -1) {\n result[key] = obj[key];\n }\n });\n return result;\n}\n\n/**\n * Returns a filtered copy of an object with only the specified keys.\n */\nexport function pick(obj, keys) {\n const pickKeys = Array.isArray(keys) ? keys : [keys];\n let length = pickKeys.length;\n let key;\n const result = {};\n\n while (length > 0) {\n length -= 1;\n key = pickKeys[length];\n result[key] = obj[key];\n }\n return result;\n}\n\nlet warned = {};\n\nexport function warnOnce(message) {\n if (!warned[message]) {\n /* istanbul ignore else */\n if (typeof console !== 'undefined') {\n console.error(message); // eslint-disable-line no-console\n }\n warned[message] = true;\n }\n}\n\nexport function deprecated(propType, explanation) {\n return function validate(props, propName, componentName, ...rest) {\n if (props[propName] !== null && typeof props[propName] !== 'undefined') {\n warnOnce(\n `\"${propName}\" property of \"${componentName}\" has been deprecated.\\n${explanation}`\n );\n }\n\n return propType(props, propName, componentName, ...rest);\n };\n}\n\n// Shim Element if needed (e.g. in Node environment)\nconst Element = (typeof window === 'object' && window.Element) || function() {};\n\nexport function DOMElement(props, propName, componentName) {\n if (!(props[propName] instanceof Element)) {\n return new Error(\n 'Invalid prop `' +\n propName +\n '` supplied to `' +\n componentName +\n '`. Expected prop to be an instance of Element. Validation failed.'\n );\n }\n}\n\nexport const targetPropType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n DOMElement,\n PropTypes.shape({ current: PropTypes.any }),\n]);\n\nexport const tagPropType = PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.string,\n PropTypes.shape({ $$typeof: PropTypes.symbol, render: PropTypes.func }),\n PropTypes.arrayOf(PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.string,\n PropTypes.shape({ $$typeof: PropTypes.symbol, render: PropTypes.func }),\n ]))\n]);\n\n/* eslint key-spacing: [\"error\", { afterColon: true, align: \"value\" }] */\n// These are all setup to match what is in the bootstrap _variables.scss\n// https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss\nexport const TransitionTimeouts = {\n Fade: 150, // $transition-fade\n Collapse: 350, // $transition-collapse\n Modal: 300, // $modal-transition\n Carousel: 600, // $carousel-transition\n Offcanvas: 300, // $offcanvas-transition\n};\n\n// Duplicated Transition.propType keys to ensure that Reactstrap builds\n// for distribution properly exclude these keys for nested child HTML attributes\n// since `react-transition-group` removes propTypes in production builds.\nexport const TransitionPropTypeKeys = [\n 'in',\n 'mountOnEnter',\n 'unmountOnExit',\n 'appear',\n 'enter',\n 'exit',\n 'timeout',\n 'onEnter',\n 'onEntering',\n 'onEntered',\n 'onExit',\n 'onExiting',\n 'onExited',\n];\n\nexport const TransitionStatuses = {\n ENTERING: 'entering',\n ENTERED: 'entered',\n EXITING: 'exiting',\n EXITED: 'exited',\n};\n\nexport const keyCodes = {\n esc: 27,\n space: 32,\n enter: 13,\n tab: 9,\n up: 38,\n down: 40,\n home: 36,\n end: 35,\n n: 78,\n p: 80,\n};\n\nexport const PopperPlacements = [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n\nexport const canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\nexport function isReactRefObj(target) {\n if (target && typeof target === 'object') {\n return 'current' in target;\n }\n return false;\n}\n\nfunction getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]'\n }\n return Object.prototype.toString.call(value)\n}\n\nexport function toNumber(value) {\n const type = typeof value;\n const NAN = 0 / 0;\n if (type === 'number') {\n return value\n }\n if (type === 'symbol' || (type === 'object' && getTag(value) === '[object Symbol]')) {\n return NAN\n }\n if (isObject(value)) {\n const other = typeof value.valueOf === 'function' ? value.valueOf() : value;\n value = isObject(other) ? `${other}` : other\n }\n if (type !== 'string') {\n return value === 0 ? value : +value\n }\n value = value.replace(/^\\s+|\\s+$/g, '');\n const isBinary = /^0b[01]+$/i.test(value);\n return (isBinary || /^0o[0-7]+$/i.test(value))\n ? parseInt(value.slice(2), isBinary ? 2 : 8)\n : (/^[-+]0x[0-9a-f]+$/i.test(value) ? NAN : +value)\n}\n\nexport function isObject(value) {\n const type = typeof value;\n return value != null && (type === 'object' || type === 'function')\n}\n\nexport function isFunction(value) {\n if (!isObject(value)) {\n return false\n }\n\n const tag = getTag(value);\n return tag === '[object Function]' || tag === '[object AsyncFunction]' ||\n tag === '[object GeneratorFunction]' || tag === '[object Proxy]'\n}\n\nexport function findDOMElements(target) {\n if (isReactRefObj(target)) {\n return target.current;\n }\n if (isFunction(target)) {\n return target();\n }\n if (typeof target === 'string' && canUseDOM) {\n let selection = document.querySelectorAll(target);\n if (!selection.length) {\n selection = document.querySelectorAll(`#${target}`);\n }\n if (!selection.length) {\n throw new Error(\n `The target '${target}' could not be identified in the dom, tip: check spelling`\n );\n }\n return selection;\n }\n return target;\n}\n\nexport function isArrayOrNodeList(els) {\n if (els === null) {\n return false;\n }\n return Array.isArray(els) || (canUseDOM && typeof els.length === 'number');\n}\n\nexport function getTarget(target, allElements) {\n const els = findDOMElements(target);\n if (allElements) {\n if (isArrayOrNodeList(els)) {\n return els;\n }\n if (els === null) {\n return [];\n }\n return [els];\n } else {\n if (isArrayOrNodeList(els)) {\n return els[0];\n }\n return els;\n }\n}\n\nexport const defaultToggleEvents = ['touchstart', 'click'];\n\nexport function addMultipleEventListeners(_els, handler, _events, useCapture) {\n let els = _els;\n if (!isArrayOrNodeList(els)) {\n els = [els];\n }\n\n let events = _events;\n if (typeof events === 'string') {\n events = events.split(/\\s+/);\n }\n\n if (\n !isArrayOrNodeList(els) ||\n typeof handler !== 'function' ||\n !Array.isArray(events)\n ) {\n throw new Error(`\n The first argument of this function must be DOM node or an array on DOM nodes or NodeList.\n The second must be a function.\n The third is a string or an array of strings that represents DOM events\n `);\n }\n\n Array.prototype.forEach.call(events, event => {\n Array.prototype.forEach.call(els, el => {\n el.addEventListener(event, handler, useCapture);\n });\n });\n return function removeEvents() {\n Array.prototype.forEach.call(events, event => {\n Array.prototype.forEach.call(els, el => {\n el.removeEventListener(event, handler, useCapture);\n });\n });\n };\n}\n\nexport const focusableElements = [\n 'a[href]',\n 'area[href]',\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'object',\n 'embed',\n '[tabindex]:not(.modal)',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n];\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n fluid: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div',\n};\n\nconst Container = (props) => {\n const {\n className,\n cssModule,\n fluid,\n tag: Tag,\n ...attributes\n } = props;\n\n let containerClass = 'container';\n if (fluid === true) {\n containerClass = 'container-fluid';\n }\n else if (fluid) {\n containerClass = `container-${fluid}`;\n }\n\n const classes = mapToCssModules(classNames(\n className,\n containerClass\n ), cssModule);\n\n return (\n \n );\n};\n\nContainer.propTypes = propTypes;\nContainer.defaultProps = defaultProps;\n\nexport default Container;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType, deprecated } from './utils';\n\nconst rowColWidths = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\nconst rowColsPropType = PropTypes.oneOfType([PropTypes.number, PropTypes.string]);\n\nconst propTypes = {\n tag: tagPropType,\n noGutters: deprecated(PropTypes.bool, \"Please use Bootstrap 5 gutter utility classes. https://getbootstrap.com/docs/5.0/layout/gutters/\"),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n xs: rowColsPropType,\n sm: rowColsPropType,\n md: rowColsPropType,\n lg: rowColsPropType,\n xl: rowColsPropType,\n xxl: rowColsPropType\n};\n\nconst defaultProps = {\n tag: 'div',\n widths: rowColWidths\n};\n\nconst Row = (props) => {\n const {\n className,\n cssModule,\n noGutters,\n tag: Tag,\n widths,\n ...attributes\n } = props;\n\n const colClasses = [];\n\n widths.forEach((colWidth, i) => {\n let colSize = props[colWidth];\n\n delete attributes[colWidth];\n\n if (!colSize) {\n return;\n }\n\n const isXs = !i;\n colClasses.push(isXs ? `row-cols-${colSize}` : `row-cols-${colWidth}-${colSize}`);\n });\n\n const classes = mapToCssModules(classNames(\n className,\n noGutters ? 'gx-0' : null,\n 'row',\n colClasses\n ), cssModule);\n\n return (\n \n );\n};\n\nRow.propTypes = propTypes;\nRow.defaultProps = defaultProps;\n\nexport default Row;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType, isObject } from './utils';\n\nconst colWidths = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\nconst stringOrNumberProp = PropTypes.oneOfType([PropTypes.number, PropTypes.string]);\n\nconst columnProps = PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.number,\n PropTypes.string,\n PropTypes.shape({\n size: PropTypes.oneOfType([PropTypes.bool, PropTypes.number, PropTypes.string]),\n order: stringOrNumberProp,\n offset: stringOrNumberProp\n })\n]);\n\nconst propTypes = {\n tag: tagPropType,\n xs: columnProps,\n sm: columnProps,\n md: columnProps,\n lg: columnProps,\n xl: columnProps,\n xxl: columnProps,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n widths: PropTypes.array,\n};\n\nconst defaultProps = {\n tag: 'div',\n widths: colWidths,\n};\n\nconst getColumnSizeClass = (isXs, colWidth, colSize) => {\n if (colSize === true || colSize === '') {\n return isXs ? 'col' : `col-${colWidth}`;\n } else if (colSize === 'auto') {\n return isXs ? 'col-auto' : `col-${colWidth}-auto`;\n }\n\n return isXs ? `col-${colSize}` : `col-${colWidth}-${colSize}`;\n};\n\n\nexport const getColumnClasses = (attributes, cssModule, widths=colWidths) => {\n const colClasses = [];\n \n widths.forEach((colWidth, i) => {\n let columnProp = attributes[colWidth];\n\n delete attributes[colWidth];\n\n if (!columnProp && columnProp !== '') {\n return;\n }\n\n const isXs = !i;\n\n if (isObject(columnProp)) {\n const colSizeInterfix = isXs ? '-' : `-${colWidth}-`;\n const colClass = getColumnSizeClass(isXs, colWidth, columnProp.size);\n\n colClasses.push(mapToCssModules(classNames({\n [colClass]: columnProp.size || columnProp.size === '',\n [`order${colSizeInterfix}${columnProp.order}`]: columnProp.order || columnProp.order === 0,\n [`offset${colSizeInterfix}${columnProp.offset}`]: columnProp.offset || columnProp.offset === 0\n }), cssModule));\n } else {\n const colClass = getColumnSizeClass(isXs, colWidth, columnProp);\n colClasses.push(colClass);\n }\n });\n\n return {\n colClasses,\n attributes\n }\n}\n\n\nconst Col = (props) => {\n const {\n className,\n cssModule,\n widths,\n tag: Tag,\n ...attributes\n } = props;\n \n let { attributes : modifiedAttributes, colClasses } = getColumnClasses(attributes, cssModule, widths)\n\n if (!colClasses.length) {\n colClasses.push('col');\n }\n\n const classes = mapToCssModules(classNames(\n className,\n colClasses\n ), cssModule);\n\n return (\n \n );\n};\n\nCol.propTypes = propTypes;\nCol.defaultProps = defaultProps;\n\nexport default Col;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n light: PropTypes.bool,\n dark: PropTypes.bool,\n full: PropTypes.bool,\n fixed: PropTypes.string,\n sticky: PropTypes.string,\n color: PropTypes.string,\n role: PropTypes.string,\n tag: tagPropType,\n container: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n expand: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n children: PropTypes.node,\n};\n\nconst defaultProps = {\n tag: 'nav',\n expand: false,\n container: 'fluid',\n};\n\nconst getExpandClass = (expand) => {\n if (expand === false) {\n return false;\n } else if (expand === true || expand === 'xs') {\n return 'navbar-expand';\n }\n\n return `navbar-expand-${expand}`;\n};\n\nconst Navbar = (props) => {\n const {\n expand,\n className,\n cssModule,\n light,\n dark,\n fixed,\n sticky,\n color,\n container,\n tag: Tag,\n children,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'navbar',\n getExpandClass(expand),\n {\n 'navbar-light': light,\n 'navbar-dark': dark,\n [`bg-${color}`]: color,\n [`fixed-${fixed}`]: fixed,\n [`sticky-${sticky}`]: sticky,\n }\n ), cssModule);\n\n const containerClass = container && (container === true) ? 'container' : `container-${container}`;\n\n return (\n \n { container ?\n
\n {children}\n
:\n children\n }\n
\n );\n};\n\nNavbar.propTypes = propTypes;\nNavbar.defaultProps = defaultProps;\n\nexport default Navbar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'a'\n};\n\nconst NavbarBrand = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'navbar-brand'\n ), cssModule);\n\n return (\n \n );\n};\n\nNavbarBrand.propTypes = propTypes;\nNavbarBrand.defaultProps = defaultProps;\n\nexport default NavbarBrand;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\n\nconst defaultProps = {\n tag: 'span'\n};\n\nconst NavbarText = (props) => {\n const {\n className,\n cssModule,\n active,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'navbar-text'\n ), cssModule);\n\n return (\n \n );\n};\n\nNavbarText.propTypes = propTypes;\nNavbarText.defaultProps = defaultProps;\n\nexport default NavbarText;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n type: PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n children: PropTypes.node,\n};\n\nconst defaultProps = {\n tag: 'button',\n type: 'button'\n};\n\nconst NavbarToggler = (props) => {\n const {\n className,\n cssModule,\n children,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'navbar-toggler'\n ), cssModule);\n\n return (\n \n {children || }\n \n );\n};\n\nNavbarToggler.propTypes = propTypes;\nNavbarToggler.defaultProps = defaultProps;\n\nexport default NavbarToggler;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tabs: PropTypes.bool,\n pills: PropTypes.bool,\n vertical: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n horizontal: PropTypes.string,\n justified: PropTypes.bool,\n fill: PropTypes.bool,\n navbar: PropTypes.bool,\n card: PropTypes.bool,\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'ul',\n vertical: false,\n};\n\nconst getVerticalClass = (vertical) => {\n if (vertical === false) {\n return false;\n } else if (vertical === true || vertical === 'xs') {\n return 'flex-column';\n }\n\n return `flex-${vertical}-column`;\n};\n\nconst Nav = (props) => {\n const {\n className,\n cssModule,\n tabs,\n pills,\n vertical,\n horizontal,\n justified,\n fill,\n navbar,\n card,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n navbar ? 'navbar-nav' : 'nav',\n horizontal ? `justify-content-${horizontal}` : false,\n getVerticalClass(vertical),\n {\n 'nav-tabs': tabs,\n 'card-header-tabs': card && tabs,\n 'nav-pills': pills,\n 'card-header-pills': card && pills,\n 'nav-justified': justified,\n 'nav-fill': fill,\n }\n ), cssModule);\n\n return (\n \n );\n};\n\nNav.propTypes = propTypes;\nNav.defaultProps = defaultProps;\n\nexport default Nav;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n active: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'li'\n};\n\nconst NavItem = (props) => {\n const {\n className,\n cssModule,\n active,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'nav-item',\n active ? 'active' : false\n ), cssModule);\n\n return (\n \n );\n};\n\nNavItem.propTypes = propTypes;\nNavItem.defaultProps = defaultProps;\n\nexport default NavItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n disabled: PropTypes.bool,\n active: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n onClick: PropTypes.func,\n href: PropTypes.any,\n};\n\nconst defaultProps = {\n tag: 'a',\n};\n\nclass NavLink extends React.Component {\n constructor(props) {\n super(props);\n\n this.onClick = this.onClick.bind(this);\n }\n\n onClick(e) {\n if (this.props.disabled) {\n e.preventDefault();\n return;\n }\n\n if (this.props.href === '#') {\n e.preventDefault();\n }\n\n if (this.props.onClick) {\n this.props.onClick(e);\n }\n }\n\n render() {\n let {\n className,\n cssModule,\n active,\n tag: Tag,\n innerRef,\n ...attributes\n } = this.props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'nav-link',\n {\n disabled: attributes.disabled,\n active: active\n }\n ), cssModule);\n\n return (\n \n );\n }\n}\n\nNavLink.propTypes = propTypes;\nNavLink.defaultProps = defaultProps;\n\nexport default NavLink;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n listTag: tagPropType,\n className: PropTypes.string,\n listClassName: PropTypes.string,\n cssModule: PropTypes.object,\n children: PropTypes.node,\n 'aria-label': PropTypes.string\n};\n\nconst defaultProps = {\n tag: 'nav',\n listTag: 'ol',\n 'aria-label': 'breadcrumb'\n};\n\nconst Breadcrumb = (props) => {\n const {\n className,\n listClassName,\n cssModule,\n children,\n tag: Tag,\n listTag: ListTag,\n 'aria-label': label,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className\n ), cssModule);\n\n const listClasses = mapToCssModules(classNames(\n 'breadcrumb',\n listClassName\n ), cssModule);\n\n return (\n \n \n {children}\n \n \n );\n};\n\nBreadcrumb.propTypes = propTypes;\nBreadcrumb.defaultProps = defaultProps;\n\nexport default Breadcrumb;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n active: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'li'\n};\n\nconst BreadcrumbItem = (props) => {\n const {\n className,\n cssModule,\n active,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n active ? 'active' : false,\n 'breadcrumb-item'\n ), cssModule);\n\n return (\n \n );\n};\n\nBreadcrumbItem.propTypes = propTypes;\nBreadcrumbItem.defaultProps = defaultProps;\n\nexport default BreadcrumbItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n active: PropTypes.bool,\n 'aria-label': PropTypes.string,\n onClick: PropTypes.func,\n variant: PropTypes.oneOf(['white'])\n}\n\nconst defaultProps = {\n 'aria-label': 'close'\n}\n\nconst CloseButton = (props) => {\n const {\n className,\n cssModule,\n variant,\n innerRef,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'btn-close',\n variant && `btn-close-${variant}`\n ))\n\n return (\n \n )\n}\n\nCloseButton.propTypes = propTypes;\nCloseButton.defaultProps = defaultProps;\n\nexport default CloseButton;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nimport CloseButton from './CloseButton';\n\nconst propTypes = {\n active: PropTypes.bool,\n 'aria-label': PropTypes.string,\n block: PropTypes.bool,\n color: PropTypes.string,\n disabled: PropTypes.bool,\n outline: PropTypes.bool,\n tag: tagPropType,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n onClick: PropTypes.func,\n size: PropTypes.string,\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n close: PropTypes.bool,\n};\n\nconst defaultProps = {\n color: 'secondary',\n tag: 'button',\n};\n\n\nfunction Button(props) {\n const onClick = useCallback((e) => {\n if (props.disabled) {\n e.preventDefault();\n return;\n }\n\n if (props.onClick) {\n return props.onClick(e);\n }\n }, [props.onClick, props.disabled])\n\n\n let {\n active,\n 'aria-label': ariaLabel,\n block,\n className,\n close,\n cssModule,\n color,\n outline,\n size,\n tag: Tag,\n innerRef,\n ...attributes\n } = props;\n\n if (close) {\n return (\n \n )\n }\n\n const btnOutlineColor = `btn${outline ? '-outline' : ''}-${color}`;\n\n const classes = mapToCssModules(classNames(\n className,\n 'btn',\n btnOutlineColor,\n size ? `btn-${size}` : false,\n block ? 'd-block w-100' : false,\n { active, disabled: props.disabled }\n ), cssModule);\n\n if (attributes.href && Tag === 'button') {\n Tag = 'a';\n }\n\n return (\n \n );\n}\n\nButton.propTypes = propTypes;\nButton.defaultProps = defaultProps;\n\nexport default Button;\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport Button from \"./Button\";\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n onClick: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n defaultValue: PropTypes.bool,\n};\n\nconst defaultProps = {\n defaultValue: false,\n};\n\nclass ButtonToggle extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n toggled: props.defaultValue,\n focus: false,\n }\n\n this.onBlur = this.onBlur.bind(this);\n this.onFocus = this.onFocus.bind(this);\n this.onClick = this.onClick.bind(this);\n }\n\n onBlur(e) {\n if(this.props.onBlur) {\n this.props.onBlur(e);\n }\n\n this.setState({\n focus: false,\n });\n }\n\n onFocus(e) {\n if(this.props.onFocus) {\n this.props.onFocus(e);\n }\n\n this.setState({\n focus: true,\n });\n }\n\n onClick(e) {\n if(this.props.onClick) {\n this.props.onClick(e);\n }\n\n this.setState(({ toggled }) => ({\n toggled: !toggled,\n }));\n }\n\n render() {\n const {\n className,\n ...attributes\n } = this.props;\n\n const classes = mapToCssModules(classNames(\n className, \n { \n focus: this.state.focus, \n }\n ), this.props.cssModule);\n\n return ;\n }\n}\n\nButtonToggle.propTypes = propTypes;\nButtonToggle.defaultProps = defaultProps;\n\nexport default ButtonToggle;\n","import React from 'react';\n\n/**\n * DropdownContext\n * {\n * toggle: PropTypes.func.isRequired,\n * isOpen: PropTypes.bool.isRequired,\n * direction: PropTypes.oneOf(['up', 'down', 'start', 'end']).isRequired,\n * inNavbar: PropTypes.bool.isRequired,\n * disabled: PropTypes.bool\n * }\n */\nexport const DropdownContext = React.createContext({});","/* eslint react/no-find-dom-node: 0 */\n// https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-find-dom-node.md\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Manager } from 'react-popper';\nimport classNames from 'classnames';\nimport { DropdownContext } from './DropdownContext';\nimport { mapToCssModules, omit, keyCodes, tagPropType } from './utils';\n\nconst propTypes = {\n a11y: PropTypes.bool,\n disabled: PropTypes.bool,\n direction: PropTypes.oneOf(['up', 'down', 'start', 'end', 'left', 'right']),\n group: PropTypes.bool,\n isOpen: PropTypes.bool,\n nav: PropTypes.bool,\n active: PropTypes.bool,\n size: PropTypes.string,\n tag: tagPropType,\n toggle: PropTypes.func,\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n inNavbar: PropTypes.bool,\n setActiveFromChild: PropTypes.bool,\n menuRole: PropTypes.oneOf(['listbox', 'menu'])\n};\n\nconst defaultProps = {\n a11y: true,\n isOpen: false,\n direction: 'down',\n nav: false,\n active: false,\n inNavbar: false,\n setActiveFromChild: false\n};\n\nconst preventDefaultKeys = [\n keyCodes.space,\n keyCodes.enter,\n keyCodes.up,\n keyCodes.down,\n keyCodes.end,\n keyCodes.home\n]\n\nclass Dropdown extends React.Component {\n constructor(props) {\n super(props);\n\n this.addEvents = this.addEvents.bind(this);\n this.handleDocumentClick = this.handleDocumentClick.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.removeEvents = this.removeEvents.bind(this);\n this.toggle = this.toggle.bind(this);\n this.handleMenuRef = this.handleMenuRef.bind(this);\n\n this.containerRef = React.createRef();\n this.menuRef = React.createRef();\n }\n\n handleMenuRef(menuRef) {\n this.menuRef.current = menuRef;\n }\n\n getContextValue() {\n return {\n toggle: this.toggle,\n isOpen: this.props.isOpen,\n direction: (this.props.direction === 'down' && this.props.dropup) ? 'up' : this.props.direction,\n inNavbar: this.props.inNavbar,\n disabled: this.props.disabled,\n // Callback that should be called by DropdownMenu to provide a ref to\n // a HTML tag that's used for the DropdownMenu\n onMenuRef: this.handleMenuRef,\n menuRole: this.props.menuRole\n };\n }\n\n componentDidMount() {\n this.handleProps();\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.isOpen !== prevProps.isOpen) {\n this.handleProps();\n }\n }\n\n componentWillUnmount() {\n this.removeEvents();\n }\n\n getContainer() {\n return this.containerRef.current;\n }\n\n getMenu() {\n return this.menuRef.current;\n }\n\n getMenuCtrl() {\n if (this._$menuCtrl) return this._$menuCtrl;\n this._$menuCtrl = this.getContainer().querySelector('[aria-expanded]');\n return this._$menuCtrl;\n }\n\n getItemType() {\n if(this.context.menuRole === 'listbox') {\n return 'option'\n }\n return 'menuitem'\n }\n\n getMenuItems() {\n // In a real menu with a child DropdownMenu, `this.getMenu()` should never\n // be null, but it is sometimes null in tests. To mitigate that, we just\n // use `this.getContainer()` as the fallback `menuContainer`.\n const menuContainer = this.getMenu() || this.getContainer();\n return [].slice.call(menuContainer.querySelectorAll(`[role=\"${this.getItemType()}\"]`));\n }\n\n addEvents() {\n ['click', 'touchstart', 'keyup'].forEach(event =>\n document.addEventListener(event, this.handleDocumentClick, true)\n );\n }\n\n removeEvents() {\n ['click', 'touchstart', 'keyup'].forEach(event =>\n document.removeEventListener(event, this.handleDocumentClick, true)\n );\n }\n\n handleDocumentClick(e) {\n if (e && (e.which === 3 || (e.type === 'keyup' && e.which !== keyCodes.tab))) return;\n const container = this.getContainer();\n const menu = this.getMenu();\n const clickIsInContainer = container.contains(e.target) && container !== e.target;\n const clickIsInInput = container.classList.contains('input-group') && container.classList.contains('dropdown') && e.target.tagName === 'INPUT';\n const clickIsInMenu = menu && menu.contains(e.target) && menu !== e.target;\n if (((clickIsInContainer && !clickIsInInput) || clickIsInMenu) && (e.type !== 'keyup' || e.which === keyCodes.tab)) {\n return;\n }\n\n this.toggle(e);\n }\n\n handleKeyDown(e) {\n const isTargetMenuItem = e.target.getAttribute('role') === 'menuitem' || e.target.getAttribute('role') === 'option';\n const isTargetMenuCtrl = this.getMenuCtrl() === e.target;\n const isTab = keyCodes.tab === e.which;\n\n if (\n /input|textarea/i.test(e.target.tagName)\n || (isTab && !this.props.a11y)\n || (isTab && !(isTargetMenuItem || isTargetMenuCtrl))\n ) {\n return;\n }\n\n if (preventDefaultKeys.indexOf(e.which) !== -1 || ((e.which >= 48) && (e.which <= 90))) {\n e.preventDefault();\n }\n\n if (this.props.disabled) return;\n\n if (isTargetMenuCtrl) {\n if ([keyCodes.space, keyCodes.enter, keyCodes.up, keyCodes.down].indexOf(e.which) > -1) {\n // Open the menu (if not open) and focus the first menu item\n if (!this.props.isOpen) {\n this.toggle(e);\n }\n setTimeout(() => this.getMenuItems()[0].focus());\n } else if (this.props.isOpen && isTab) {\n // Focus the first menu item if tabbing from an open menu. We need this\n // for cases where the DropdownMenu sets a custom container, which may\n // not be the natural next item to tab to from the DropdownToggle.\n e.preventDefault();\n this.getMenuItems()[0].focus();\n } else if (this.props.isOpen && e.which === keyCodes.esc) {\n this.toggle(e);\n }\n }\n\n if (this.props.isOpen && isTargetMenuItem) {\n if ([keyCodes.tab, keyCodes.esc].indexOf(e.which) > -1) {\n this.toggle(e);\n this.getMenuCtrl().focus();\n } else if ([keyCodes.space, keyCodes.enter].indexOf(e.which) > -1) {\n e.target.click();\n this.getMenuCtrl().focus();\n } else if (\n [keyCodes.down, keyCodes.up].indexOf(e.which) > -1\n || ([keyCodes.n, keyCodes.p].indexOf(e.which) > -1 && e.ctrlKey)\n ) {\n const $menuitems = this.getMenuItems();\n let index = $menuitems.indexOf(e.target);\n if (keyCodes.up === e.which || (keyCodes.p === e.which && e.ctrlKey)) {\n index = index !== 0 ? index - 1 : $menuitems.length - 1;\n } else if (keyCodes.down === e.which || (keyCodes.n === e.which && e.ctrlKey)) {\n index = index === $menuitems.length - 1 ? 0 : index + 1;\n }\n $menuitems[index].focus();\n } else if (keyCodes.end === e.which) {\n const $menuitems = this.getMenuItems();\n $menuitems[$menuitems.length - 1].focus();\n } else if (keyCodes.home === e.which) {\n const $menuitems = this.getMenuItems();\n $menuitems[0].focus();\n } else if ((e.which >= 48) && (e.which <= 90)) {\n const $menuitems = this.getMenuItems();\n const charPressed = String.fromCharCode(e.which).toLowerCase();\n for (let i = 0; i < $menuitems.length; i += 1) {\n const firstLetter = $menuitems[i].textContent && $menuitems[i].textContent[0].toLowerCase();\n if (firstLetter === charPressed) {\n $menuitems[i].focus();\n break;\n }\n }\n }\n }\n }\n\n handleProps() {\n if (this.props.isOpen) {\n this.addEvents();\n } else {\n this.removeEvents();\n }\n }\n\n toggle(e) {\n if (this.props.disabled) {\n return e && e.preventDefault();\n }\n\n return this.props.toggle(e);\n }\n\n render() {\n const {\n className,\n cssModule,\n direction,\n isOpen,\n group,\n size,\n nav,\n setActiveFromChild,\n active,\n tag,\n menuRole,\n ...attrs\n } = omit(this.props, ['toggle', 'disabled', 'inNavbar', 'a11y']);\n\n const Tag = tag || (nav ? 'li' : 'div');\n\n let subItemIsActive = false;\n if (setActiveFromChild) {\n React.Children.map(this.props.children[1].props.children,\n (dropdownItem) => {\n if (dropdownItem && dropdownItem.props.active) subItemIsActive = true;\n }\n );\n }\n\n const classes = mapToCssModules(classNames(\n className,\n nav && active ? 'active' : false,\n setActiveFromChild && subItemIsActive ? 'active' : false,\n {\n 'btn-group': group,\n [`btn-group-${size}`]: !!size,\n dropdown: !group,\n dropup: direction === 'up',\n dropstart: direction === 'start' || direction === 'left',\n dropend: direction === 'end' || direction === 'right',\n show: isOpen,\n 'nav-item': nav\n }\n ), cssModule);\n\n return (\n \n \n \n \n \n );\n }\n}\n\nDropdown.propTypes = propTypes;\nDropdown.defaultProps = defaultProps;\n\nexport default Dropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Dropdown from './Dropdown';\n\nconst propTypes = {\n children: PropTypes.node,\n};\n\nconst ButtonDropdown = (props) => {\n return (\n \n );\n};\n\nButtonDropdown.propTypes = propTypes;\n\nexport default ButtonDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n 'aria-label': PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n role: PropTypes.string,\n size: PropTypes.string,\n vertical: PropTypes.bool,\n};\n\nconst defaultProps = {\n tag: 'div',\n role: 'group',\n};\n\nconst ButtonGroup = (props) => {\n const {\n className,\n cssModule,\n size,\n vertical,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n size ? 'btn-group-' + size : false,\n vertical ? 'btn-group-vertical' : 'btn-group'\n ), cssModule);\n\n return (\n \n );\n};\n\nButtonGroup.propTypes = propTypes;\nButtonGroup.defaultProps = defaultProps;\n\nexport default ButtonGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n 'aria-label': PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n role: PropTypes.string,\n};\n\nconst defaultProps = {\n tag: 'div',\n role: 'toolbar',\n};\n\nconst ButtonToolbar = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'btn-toolbar'\n ), cssModule);\n\n return (\n \n );\n};\n\nButtonToolbar.propTypes = propTypes;\nButtonToolbar.defaultProps = defaultProps;\n\nexport default ButtonToolbar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { DropdownContext } from './DropdownContext';\nimport { mapToCssModules, omit, tagPropType } from './utils';\n\nconst propTypes = {\n children: PropTypes.node,\n active: PropTypes.bool,\n disabled: PropTypes.bool,\n divider: PropTypes.bool,\n tag: tagPropType,\n header: PropTypes.bool,\n onClick: PropTypes.func,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n toggle: PropTypes.bool,\n text: PropTypes.bool\n};\n\nconst defaultProps = {\n tag: 'button',\n toggle: true\n};\n\nclass DropdownItem extends React.Component {\n constructor(props) {\n super(props);\n\n this.onClick = this.onClick.bind(this);\n this.getTabIndex = this.getTabIndex.bind(this);\n }\n\n getRole() {\n if(this.context.menuRole === 'listbox') {\n return 'option'\n }\n return 'menuitem'\n }\n\n onClick(e) {\n const { disabled, header, divider, text } = this.props;\n if (disabled || header || divider || text) {\n e.preventDefault();\n return;\n }\n\n if (this.props.onClick) {\n this.props.onClick(e);\n }\n\n if (this.props.toggle) {\n this.context.toggle(e);\n }\n }\n\n getTabIndex() {\n const { disabled, header, divider, text } = this.props;\n if (disabled || header || divider || text) {\n return '-1';\n }\n\n return '0';\n }\n\n render() {\n const tabIndex = this.getTabIndex();\n const role = tabIndex > -1 ? this.getRole() : undefined;\n let {\n className,\n cssModule,\n divider,\n tag: Tag,\n header,\n active,\n text,\n ...props } = omit(this.props, ['toggle']);\n\n const classes = mapToCssModules(classNames(\n className,\n {\n disabled: props.disabled,\n 'dropdown-item': !divider && !header && !text,\n active: active,\n 'dropdown-header': header,\n 'dropdown-divider': divider,\n 'dropdown-item-text': text\n }\n ), cssModule);\n\n if (Tag === 'button') {\n if (header) {\n Tag = 'h6';\n } else if (divider) {\n Tag = 'div';\n } else if (props.href) {\n Tag = 'a';\n } else if (text) {\n Tag = 'span';\n }\n }\n\n return (\n \n );\n }\n}\n\nDropdownItem.propTypes = propTypes;\nDropdownItem.defaultProps = defaultProps;\nDropdownItem.contextType = DropdownContext;\n\nexport default DropdownItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport { Popper } from 'react-popper';\nimport { DropdownContext } from './DropdownContext';\nimport { mapToCssModules, tagPropType, targetPropType, getTarget, deprecated } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n children: PropTypes.node.isRequired,\n dark: PropTypes.bool,\n end: PropTypes.bool,\n flip: PropTypes.bool,\n modifiers: PropTypes.array,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n persist: PropTypes.bool,\n strategy: PropTypes.string,\n container: targetPropType,\n /** Update popper layout when a click event comes up. This leverages event bubbling. */\n updateOnSelect: PropTypes.bool,\n right: deprecated(PropTypes.bool, 'Please use \"end\" instead.'),\n};\n\nconst defaultProps = {\n tag: 'div',\n flip: true,\n modifiers: [],\n};\n\nconst directionPositionMap = {\n up: 'top',\n left: 'left',\n right: 'right',\n start: 'left',\n end: 'right',\n down: 'bottom',\n};\n\nclass DropdownMenu extends React.Component {\n\n getRole() {\n if(this.context.menuRole === 'listbox') {\n return 'listbox'\n }\n return 'menu'\n }\n\n render() {\n const {\n className,\n cssModule,\n dark,\n end,\n right,\n tag,\n flip,\n modifiers,\n persist,\n strategy,\n container,\n updateOnSelect,\n ...attrs\n } = this.props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'dropdown-menu',\n {\n 'dropdown-menu-dark': dark,\n 'dropdown-menu-end': end || right,\n show: this.context.isOpen,\n }\n ), cssModule);\n\n const Tag = tag;\n\n if (persist || (this.context.isOpen && !this.context.inNavbar)) {\n\n const position1 = directionPositionMap[this.context.direction] || 'bottom';\n const position2 = (end || right) ? 'end' : 'start';\n const poperPlacement = `${position1}-${position2}`;\n const poperModifiers = [\n ...modifiers,\n {\n name: 'flip',\n enabled: !!flip,\n },\n ];\n\n const popper = (\n \n {({ ref, style, placement, update }) => {\n let combinedStyle = { ...this.props.style, ...style };\n\n const handleRef = (tagRef) => {\n // Send the ref to `react-popper`\n ref(tagRef);\n // Send the ref to the parent Dropdown so that clicks outside\n // it will cause it to close\n const { onMenuRef } = this.context;\n if (onMenuRef) onMenuRef(tagRef);\n };\n\n return (\n updateOnSelect && update()}\n />\n );\n }}\n \n );\n\n if (container) {\n return ReactDOM.createPortal(popper, getTarget(container));\n } else {\n return popper;\n }\n }\n\n return (\n \n );\n }\n};\n\nDropdownMenu.propTypes = propTypes;\nDropdownMenu.defaultProps = defaultProps;\nDropdownMenu.contextType = DropdownContext;\n\nexport default DropdownMenu;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Reference } from 'react-popper';\nimport { DropdownContext } from './DropdownContext';\nimport { mapToCssModules, tagPropType } from './utils';\nimport Button from './Button';\n\nconst propTypes = {\n caret: PropTypes.bool,\n color: PropTypes.string,\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n 'aria-haspopup': PropTypes.bool,\n split: PropTypes.bool,\n tag: tagPropType,\n nav: PropTypes.bool,\n};\n\nconst defaultProps = {\n color: 'secondary',\n 'aria-haspopup': true\n};\n\nclass DropdownToggle extends React.Component {\n constructor(props) {\n super(props);\n\n this.onClick = this.onClick.bind(this);\n }\n\n onClick(e) {\n if (this.props.disabled || this.context.disabled) {\n e.preventDefault();\n return;\n }\n\n if (this.props.nav && !this.props.tag) {\n e.preventDefault();\n }\n\n if (this.props.onClick) {\n this.props.onClick(e);\n }\n\n this.context.toggle(e);\n }\n\n getRole() {\n return this.context.menuRole || this.props['aria-haspopup'];\n }\n\n render() {\n const { className, color, cssModule, caret, split, nav, tag, innerRef, ...props } = this.props;\n const ariaLabel = props['aria-label'] || 'Toggle Dropdown';\n const classes = mapToCssModules(classNames(\n className,\n {\n 'dropdown-toggle': caret || split,\n 'dropdown-toggle-split': split,\n 'nav-link': nav\n }\n ), cssModule);\n const children =\n typeof props.children !== 'undefined' ? (\n props.children\n ) : (\n {ariaLabel}\n );\n\n let Tag;\n\n if (nav && !tag) {\n Tag = 'a';\n props.href = '#';\n } else if (!tag) {\n Tag = Button;\n props.color = color;\n props.cssModule = cssModule;\n } else {\n Tag = tag;\n }\n\n if (this.context.inNavbar) {\n return (\n \n );\n }\n\n return (\n \n {({ ref }) => (\n \n )}\n \n );\n }\n}\n\nDropdownToggle.propTypes = propTypes;\nDropdownToggle.defaultProps = defaultProps;\nDropdownToggle.contextType = DropdownContext;\n\nexport default DropdownToggle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Transition } from 'react-transition-group';\nimport { mapToCssModules, omit, pick, TransitionPropTypeKeys, TransitionTimeouts, tagPropType } from './utils';\n\nconst propTypes = {\n ...Transition.propTypes,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n tag: tagPropType,\n baseClass: PropTypes.string,\n baseClassActive: PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n};\n\nconst defaultProps = {\n ...Transition.defaultProps,\n tag: 'div',\n baseClass: 'fade',\n baseClassActive: 'show',\n timeout: TransitionTimeouts.Fade,\n appear: true,\n enter: true,\n exit: true,\n in: true,\n};\n\nfunction Fade(props) {\n const {\n tag: Tag,\n baseClass,\n baseClassActive,\n className,\n cssModule,\n children,\n innerRef,\n ...otherProps\n } = props;\n\n const transitionProps = pick(otherProps, TransitionPropTypeKeys);\n const childProps = omit(otherProps, TransitionPropTypeKeys);\n\n return (\n \n {(status) => {\n const isActive = status === 'entered';\n const classes = mapToCssModules(classNames(\n className,\n baseClass,\n isActive && baseClassActive\n ), cssModule);\n return (\n \n {children}\n \n );\n }}\n \n );\n}\n\nFade.propTypes = propTypes;\nFade.defaultProps = defaultProps;\n\nexport default Fade;\n","import React from 'react';\n\n/**\n * AccordionContext\n * {\n * toggle: PropTypes.func.isRequired,\n * openId: PropTypes.string, \n * }\n */\nexport const AccordionContext = React.createContext({});\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nimport { AccordionContext } from './AccordionContext';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n children: PropTypes.node,\n flush: PropTypes.bool,\n open: PropTypes.oneOfType([PropTypes.array, PropTypes.string]).isRequired,\n toggle: PropTypes.func.isRequired,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst Accordion = (props) => {\n const {\n flush,\n open,\n toggle,\n className,\n cssModule,\n tag: Tag,\n innerRef,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'accordion',\n {\n 'accordion-flush': flush\n }\n ), cssModule);\n\n const accordionContext = useMemo(() => ({\n open,\n toggle,\n }));\n\n return (\n \n \n \n );\n};\n\nAccordion.propTypes = propTypes;\nAccordion.defaultProps = defaultProps;\n\nexport default Accordion;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { tagPropType } from './utils';\nimport Accordion from './Accordion';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n children: PropTypes.node,\n defaultOpen: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\n stayOpen: PropTypes.bool,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst UncontrolledAccordion = ({ defaultOpen, stayOpen, ...props }) => {\n const [open, setOpen] = useState(defaultOpen || (stayOpen ? [] : undefined));\n const toggle = (id) => {\n if (stayOpen) {\n open.includes(id) ? setOpen(open.filter(accordionId => accordionId !== id)) : setOpen([...open, id]);\n } else {\n open === id ? setOpen(undefined) : setOpen(id);\n }\n };\n\n return ;\n};\n\nUncontrolledAccordion.propTypes = propTypes;\nUncontrolledAccordion.defaultProps = defaultProps;\n\nexport default UncontrolledAccordion;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nimport { AccordionContext } from './AccordionContext';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n children: PropTypes.node,\n targetId: PropTypes.string.isRequired,\n};\n\nconst defaultProps = {\n tag: 'h2'\n};\n\nconst AccordionHeader = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n innerRef,\n children,\n targetId,\n ...attributes\n } = props;\n const { open, toggle } = useContext(AccordionContext);\n\n const classes = mapToCssModules(classNames(\n className,\n 'accordion-header',\n ), cssModule);\n\n const buttonClasses = mapToCssModules(classNames(\n 'accordion-button',\n {\n collapsed: !(Array.isArray(open) ? open.includes(targetId) : open === targetId)\n },\n ), cssModule);\n\n return (\n \n \n \n );\n};\n\nAccordionHeader.propTypes = propTypes;\nAccordionHeader.defaultProps = defaultProps;\n\nexport default AccordionHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n children: PropTypes.node,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst AccordionItem = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n innerRef,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'accordion-item',\n ), cssModule);\n\n return (\n \n );\n};\n\nAccordionItem.propTypes = propTypes;\nAccordionItem.defaultProps = defaultProps;\n\nexport default AccordionItem;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Transition } from 'react-transition-group';\nimport { mapToCssModules, omit, pick, TransitionTimeouts, TransitionPropTypeKeys, TransitionStatuses, tagPropType } from './utils';\n\nconst propTypes = {\n ...Transition.propTypes,\n horizontal: PropTypes.bool,\n isOpen: PropTypes.bool,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n tag: tagPropType,\n className: PropTypes.node,\n navbar: PropTypes.bool,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.string,\n PropTypes.object\n ]),\n};\n\nconst defaultProps = {\n ...Transition.defaultProps,\n horizontal: false,\n isOpen: false,\n appear: false,\n enter: true,\n exit: true,\n tag: 'div',\n timeout: TransitionTimeouts.Collapse,\n};\n\nconst transitionStatusToClassHash = {\n [TransitionStatuses.ENTERING]: 'collapsing',\n [TransitionStatuses.ENTERED]: 'collapse show',\n [TransitionStatuses.EXITING]: 'collapsing',\n [TransitionStatuses.EXITED]: 'collapse',\n};\n\nfunction getTransitionClass(status) {\n return transitionStatusToClassHash[status] || 'collapse';\n}\n\nclass Collapse extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n dimension: null\n };\n\n ['onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'].forEach((name) => {\n this[name] = this[name].bind(this);\n });\n }\n\n getDimension(node) {\n return this.props.horizontal ? node.scrollWidth : node.scrollHeight;\n }\n\n onEntering(node, isAppearing) {\n this.setState({ dimension: this.getDimension(node) });\n this.props.onEntering(node, isAppearing);\n }\n\n onEntered(node, isAppearing) {\n this.setState({ dimension: null });\n this.props.onEntered(node, isAppearing);\n }\n\n onExit(node) {\n this.setState({ dimension: this.getDimension(node) });\n this.props.onExit(node);\n }\n\n onExiting(node) {\n // getting this variable triggers a reflow\n const _unused = this.getDimension(node); // eslint-disable-line no-unused-vars\n this.setState({ dimension: 0 });\n this.props.onExiting(node);\n }\n\n onExited(node) {\n this.setState({ dimension: null });\n this.props.onExited(node);\n }\n\n render() {\n const {\n tag: Tag,\n horizontal,\n isOpen,\n className,\n navbar,\n cssModule,\n children,\n innerRef,\n ...otherProps\n } = this.props;\n\n const { dimension } = this.state;\n\n const transitionProps = pick(otherProps, TransitionPropTypeKeys);\n const childProps = omit(otherProps, TransitionPropTypeKeys);\n return (\n \n {(status) => {\n let collapseClass = getTransitionClass(status);\n const classes = mapToCssModules(classNames(\n className,\n horizontal && 'collapse-horizontal',\n collapseClass,\n navbar && 'navbar-collapse'\n ), cssModule);\n const style = dimension === null ? null : { [horizontal ? 'width' : 'height']: dimension };\n return (\n \n {children}\n \n );\n }}\n \n );\n }\n}\n\nCollapse.propTypes = propTypes;\nCollapse.defaultProps = defaultProps;\nexport default Collapse;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nimport Collapse from './Collapse';\nimport { AccordionContext } from './AccordionContext';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n children: PropTypes.node,\n accordionId: PropTypes.string.isRequired,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst AccordionBody = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n innerRef,\n children,\n accordionId,\n ...attributes\n } = props;\n\n const { open } = useContext(AccordionContext);\n\n const classes = mapToCssModules(classNames(\n className,\n 'accordion-collapse',\n ), cssModule);\n\n return (\n \n {children}\n \n );\n};\n\nAccordionBody.propTypes = propTypes;\nAccordionBody.defaultProps = defaultProps;\n\nexport default AccordionBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n color: PropTypes.string,\n pill: PropTypes.bool,\n tag: tagPropType,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n color: 'secondary',\n pill: false,\n tag: 'span'\n};\n\nconst Badge = (props) => {\n let {\n className,\n cssModule,\n color,\n innerRef,\n pill,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'badge',\n 'bg-' + color,\n pill ? 'rounded-pill' : false\n ), cssModule);\n\n if (attributes.href && Tag === 'span') {\n Tag = 'a';\n }\n\n return (\n \n );\n};\n\nBadge.propTypes = propTypes;\nBadge.defaultProps = defaultProps;\n\nexport default Badge;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n inverse: PropTypes.bool,\n color: PropTypes.string,\n body: PropTypes.bool,\n outline: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst Card = (props) => {\n const {\n className,\n cssModule,\n color,\n body,\n inverse,\n outline,\n tag: Tag,\n innerRef,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card',\n inverse ? 'text-white' : false,\n body ? 'card-body' : false,\n color ? `${outline ? 'border' : 'bg'}-${color}` : false\n ), cssModule);\n\n return (\n \n );\n};\n\nCard.propTypes = propTypes;\nCard.defaultProps = defaultProps;\n\nexport default Card;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardGroup = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-group'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardGroup.propTypes = propTypes;\nCardGroup.defaultProps = defaultProps;\n\nexport default CardGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div',\n};\n\nconst CardDeck = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-deck'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardDeck.propTypes = propTypes;\nCardDeck.defaultProps = defaultProps;\n\nexport default CardDeck;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardColumns = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-columns'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardColumns.propTypes = propTypes;\nCardColumns.defaultProps = defaultProps;\n\nexport default CardColumns;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardBody = (props) => {\n const {\n className,\n cssModule,\n innerRef,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-body'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardBody.propTypes = propTypes;\nCardBody.defaultProps = defaultProps;\n\nexport default CardBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'a'\n};\n\nconst CardLink = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n innerRef,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-link'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardLink.propTypes = propTypes;\nCardLink.defaultProps = defaultProps;\n\nexport default CardLink;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardFooter = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-footer'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardFooter.propTypes = propTypes;\nCardFooter.defaultProps = defaultProps;\n\nexport default CardFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardHeader = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-header'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardHeader.propTypes = propTypes;\nCardHeader.defaultProps = defaultProps;\n\nexport default CardHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n top: PropTypes.bool,\n bottom: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'img'\n};\n\nconst CardImg = (props) => {\n const {\n className,\n cssModule,\n top,\n bottom,\n tag: Tag,\n ...attributes\n } = props;\n\n let cardImgClassName = 'card-img';\n if (top) {\n cardImgClassName = 'card-img-top';\n }\n if (bottom) {\n cardImgClassName = 'card-img-bottom';\n }\n\n const classes = mapToCssModules(classNames(\n className,\n cardImgClassName\n ), cssModule);\n\n return (\n \n );\n};\n\nCardImg.propTypes = propTypes;\nCardImg.defaultProps = defaultProps;\n\nexport default CardImg;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardImgOverlay = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-img-overlay'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardImgOverlay.propTypes = propTypes;\nCardImgOverlay.defaultProps = defaultProps;\n\nexport default CardImgOverlay;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Transition } from 'react-transition-group';\nimport { mapToCssModules, TransitionTimeouts, TransitionStatuses, tagPropType } from './utils';\n\nclass CarouselItem extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n startAnimation: false,\n };\n\n this.onEnter = this.onEnter.bind(this);\n this.onEntering = this.onEntering.bind(this);\n this.onExit = this.onExit.bind(this);\n this.onExiting = this.onExiting.bind(this);\n this.onExited = this.onExited.bind(this);\n }\n\n onEnter(node, isAppearing) {\n this.setState({ startAnimation: false });\n this.props.onEnter(node, isAppearing);\n }\n\n onEntering(node, isAppearing) {\n // getting this variable triggers a reflow\n const offsetHeight = node.offsetHeight;\n this.setState({ startAnimation: true });\n this.props.onEntering(node, isAppearing);\n return offsetHeight;\n }\n\n onExit(node) {\n this.setState({ startAnimation: false });\n this.props.onExit(node);\n }\n\n onExiting(node) {\n this.setState({ startAnimation: true });\n node.dispatchEvent(new CustomEvent('slide.bs.carousel'));\n this.props.onExiting(node);\n }\n\n onExited(node) {\n node.dispatchEvent(new CustomEvent('slid.bs.carousel'));\n this.props.onExited(node);\n }\n\n render() {\n const { in: isIn, children, cssModule, slide, tag: Tag, className, ...transitionProps } = this.props;\n\n return (\n \n {(status) => {\n const { direction } = this.context;\n const isActive = (status === TransitionStatuses.ENTERED) || (status === TransitionStatuses.EXITING);\n const directionClassName = (status === TransitionStatuses.ENTERING || status === TransitionStatuses.EXITING) &&\n this.state.startAnimation &&\n (direction === 'end' ? 'carousel-item-start' : 'carousel-item-end');\n const orderClassName = (status === TransitionStatuses.ENTERING) &&\n (direction === 'end' ? 'carousel-item-next' : 'carousel-item-prev');\n const itemClasses = mapToCssModules(classNames(\n className,\n 'carousel-item',\n isActive && 'active',\n directionClassName,\n orderClassName,\n ), cssModule);\n\n return (\n \n {children}\n \n );\n }}\n \n );\n }\n}\n\nCarouselItem.propTypes = {\n ...Transition.propTypes,\n tag: tagPropType,\n in: PropTypes.bool,\n cssModule: PropTypes.object,\n children: PropTypes.node,\n slide: PropTypes.bool,\n className: PropTypes.string,\n};\n\nCarouselItem.defaultProps = {\n ...Transition.defaultProps,\n tag: 'div',\n timeout: TransitionTimeouts.Carousel,\n slide: true,\n};\n\nCarouselItem.contextTypes = {\n direction: PropTypes.string\n};\n\nexport default CarouselItem;\n","import React from 'react';\n\n/**\n * CarouselContext\n * {\n * direction: PropTypes.oneOf(['start', 'end']).isRequired,\n * }\n */\nexport const CarouselContext = React.createContext({});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport CarouselItem from './CarouselItem';\nimport { CarouselContext } from './CarouselContext';\nimport { mapToCssModules } from './utils';\n \nconst SWIPE_THRESHOLD = 40;\n\nclass Carousel extends React.Component {\n constructor(props) {\n super(props);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.renderItems = this.renderItems.bind(this);\n this.hoverStart = this.hoverStart.bind(this);\n this.hoverEnd = this.hoverEnd.bind(this);\n this.handleTouchStart = this.handleTouchStart.bind(this);\n this.handleTouchEnd = this.handleTouchEnd.bind(this);\n this.touchStartX = 0;\n this.touchStartY = 0;\n this.state = {\n activeIndex: this.props.activeIndex,\n direction: 'end',\n indicatorClicked: false,\n };\n }\n\n getContextValue() {\n return { direction: this.state.direction };\n }\n\n componentDidMount() {\n // Set up the cycle\n if (this.props.ride === 'carousel') {\n this.setInterval();\n }\n\n // TODO: move this to the specific carousel like bootstrap. Currently it will trigger ALL carousels on the page.\n document.addEventListener('keyup', this.handleKeyPress);\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n let newState = null;\n let { activeIndex, direction, indicatorClicked } = prevState;\n\n if (nextProps.activeIndex !== activeIndex) {\n // Calculate the direction to turn\n if (nextProps.activeIndex === activeIndex + 1) {\n direction = 'end';\n } else if (nextProps.activeIndex === activeIndex -1) {\n direction = 'start';\n } else if (nextProps.activeIndex < activeIndex) {\n direction = indicatorClicked ? 'start' : 'end';\n } else if (nextProps.activeIndex !== activeIndex) {\n direction = indicatorClicked ? 'end' : 'start';\n }\n\n newState = {\n activeIndex: nextProps.activeIndex,\n direction,\n indicatorClicked: false,\n }\n }\n\n return newState;\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevState.activeIndex === this.state.activeIndex) return;\n this.setInterval(this.props);\n }\n\n componentWillUnmount() {\n this.clearInterval();\n document.removeEventListener('keyup', this.handleKeyPress);\n }\n\n setInterval(props = this.props) {\n // make sure not to have multiple intervals going...\n this.clearInterval();\n if (props.interval) {\n this.cycleInterval = setInterval(() => {\n props.next();\n }, parseInt(props.interval, 10));\n }\n }\n\n clearInterval() {\n clearInterval(this.cycleInterval);\n }\n\n hoverStart(...args) {\n if (this.props.pause === 'hover') {\n this.clearInterval();\n }\n if (this.props.mouseEnter) {\n this.props.mouseEnter(...args);\n }\n }\n\n hoverEnd(...args) {\n if (this.props.pause === 'hover') {\n this.setInterval();\n }\n if (this.props.mouseLeave) {\n this.props.mouseLeave(...args);\n }\n }\n\n handleKeyPress(evt) {\n if (this.props.keyboard) {\n if (evt.keyCode === 37) {\n this.props.previous();\n } else if (evt.keyCode === 39) {\n this.props.next();\n }\n }\n }\n\n handleTouchStart(e) {\n if(!this.props.enableTouch) {\n return;\n }\n this.touchStartX = e.changedTouches[0].screenX;\n this.touchStartY = e.changedTouches[0].screenY;\n }\n\n handleTouchEnd(e) {\n if(!this.props.enableTouch) {\n return;\n }\n\n const currentX = e.changedTouches[0].screenX;\n const currentY = e.changedTouches[0].screenY;\n const diffX = Math.abs(this.touchStartX - currentX);\n const diffY = Math.abs(this.touchStartY - currentY);\n\n // Don't swipe if Y-movement is bigger than X-movement\n if(diffX < diffY) {\n return;\n }\n\n if(diffX < SWIPE_THRESHOLD) {\n return;\n }\n\n if(currentX < this.touchStartX) {\n this.props.next();\n } else {\n this.props.previous();\n }\n }\n\n renderItems(carouselItems, className) {\n const { slide } = this.props;\n return (\n
\n {carouselItems.map((item, index) => {\n const isIn = (index === this.state.activeIndex);\n return React.cloneElement(item, {\n in: isIn,\n slide: slide,\n });\n })}\n
\n );\n }\n\n render() {\n const { cssModule, slide, className, dark, fade } = this.props;\n const outerClasses = mapToCssModules(classNames(\n className,\n 'carousel',\n 'carousel-fade' && fade,\n slide && 'slide',\n dark && 'carousel-dark'\n ), cssModule);\n\n const innerClasses = mapToCssModules(classNames(\n 'carousel-inner'\n ), cssModule);\n\n // filter out booleans, null, or undefined\n const children = this.props.children.filter(child => child !== null && child !== undefined && typeof child !== 'boolean');\n\n const slidesOnly = children.every(child => child.type === CarouselItem);\n\n // Rendering only slides\n if (slidesOnly) {\n return (\n
\n \n {this.renderItems(children, innerClasses)}\n \n
\n );\n }\n\n // Rendering slides and controls\n if (children[0] instanceof Array) {\n const carouselItems = children[0];\n const controlLeft = children[1];\n const controlRight = children[2];\n\n return (\n
\n \n {this.renderItems(carouselItems, innerClasses)}\n {controlLeft}\n {controlRight}\n \n
\n );\n }\n\n // Rendering indicators, slides and controls\n const indicators = children[0];\n const wrappedOnClick = (e) => {\n if (typeof indicators.props.onClickHandler === 'function') {\n this.setState({ indicatorClicked: true }, () => indicators.props.onClickHandler(e));\n }\n };\n const wrappedIndicators = React.cloneElement(indicators, { onClickHandler: wrappedOnClick });\n const carouselItems = children[1];\n const controlLeft = children[2];\n const controlRight = children[3];\n\n return (\n
\n \n {wrappedIndicators}\n {this.renderItems(carouselItems, innerClasses)}\n {controlLeft}\n {controlRight}\n \n
\n );\n }\n}\n\nCarousel.propTypes = {\n // the current active slide of the carousel\n activeIndex: PropTypes.number,\n // a function which should advance the carousel to the next slide (via activeIndex)\n next: PropTypes.func.isRequired,\n // a function which should advance the carousel to the previous slide (via activeIndex)\n previous: PropTypes.func.isRequired,\n // controls if the left and right arrow keys should control the carousel\n keyboard: PropTypes.bool,\n /* If set to \"hover\", pauses the cycling of the carousel on mouseenter and resumes the cycling of the carousel on\n * mouseleave. If set to false, hovering over the carousel won't pause it. (default: \"hover\")\n */\n pause: PropTypes.oneOf(['hover', false]),\n // Autoplays the carousel after the user manually cycles the first item. If \"carousel\", autoplays the carousel on load.\n // This is how bootstrap defines it... I would prefer a bool named autoplay or something...\n ride: PropTypes.oneOf(['carousel']),\n // the interval at which the carousel automatically cycles (default: 5000)\n // eslint-disable-next-line react/no-unused-prop-types\n interval: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.bool,\n ]),\n children: PropTypes.array,\n // called when the mouse enters the Carousel\n mouseEnter: PropTypes.func,\n // called when the mouse exits the Carousel\n mouseLeave: PropTypes.func,\n // controls whether the slide animation on the Carousel works or not\n slide: PropTypes.bool,\n // make the controls, indicators and captions dark on the Carousel\n dark: PropTypes.bool,\n cssModule: PropTypes.object,\n className: PropTypes.string,\n enableTouch: PropTypes.bool,\n};\n\nCarousel.defaultProps = {\n interval: 5000,\n pause: 'hover',\n keyboard: true,\n slide: true,\n enableTouch: true,\n fade: false,\n};\n\nCarousel.childContextTypes = {\n direction: PropTypes.string\n};\n\nexport default Carousel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst CarouselControl = (props) => {\n const { direction, onClickHandler, cssModule, directionText, className } = props;\n\n const anchorClasses = mapToCssModules(classNames(\n className,\n `carousel-control-${direction}`\n ), cssModule);\n\n const iconClasses = mapToCssModules(classNames(\n `carousel-control-${direction}-icon`\n ), cssModule);\n\n const screenReaderClasses = mapToCssModules(classNames(\n 'visually-hidden'\n ), cssModule);\n\n\n return (\n // We need to disable this linting rule to use an `` instead of\n // `\n )\n}\n\nPlaceholderButton.propTypes = propTypes;\nPlaceholderButton.defaultProps = defaultProps;\n\nexport default PlaceholderButton ","(() => {\n if ( typeof window !== 'object' || typeof window.CustomEvent === 'function' ) return;\n\n const CustomEvent = (( event, params ) => {\n params = params || { bubbles: false, cancelable: false, detail: null };\n var evt = document.createEvent( 'CustomEvent' );\n evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );\n return evt;\n });\n\n window.CustomEvent = CustomEvent;\n})();\n\n(() => {\n if ( typeof Object.values === 'function' ) return;\n\n const values = ( (O) => Object.keys(O).map((key) => O[key]) );\n\n Object.values = values;\n})();\n","import React, { Component } from 'react';\r\nimport { Collapse, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport './NavMenu.css';\r\nimport logo from './images/logo/DHNCODELong.png';\r\n\r\n\r\nexport class NavMenu extends Component {\r\n static displayName = NavMenu.name;\r\n\r\n constructor (props) {\r\n super(props);\r\n\r\n this.toggleNavbar = this.toggleNavbar.bind(this);\r\n this.state = {\r\n collapsed: true\r\n };\r\n }\r\n\r\n toggleNavbar () {\r\n this.setState({\r\n collapsed: !this.state.collapsed\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \"logo\"' \r\n\r\n
\r\n \r\n \r\n \r\n
    \r\n \r\n Home\r\n \r\n \r\n ProgressLog\r\n \r\n \r\n PastProjects\r\n \r\n \r\n Contact\r\n \r\n \r\n Privacy\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\n\r\nimport './Footer.css';\r\n\r\n\r\n\r\nexport class Footer extends Component {\r\n\r\n\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n

dhncode.com

\r\n\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport { NavMenu } from './NavMenu';\r\nimport { Footer } from './Footer';\r\n\r\nexport class Layout extends Component {\r\n static displayName = Layout.name;\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n {this.props.children}\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { useEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\n\r\nexport default function ScrollToTop() {\r\n const { pathname } = useLocation();\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, [pathname]);\r\n\r\n return null;\r\n} \r\n","import React, { Component } from 'react';\r\nimport { Route, Routes } from 'react-router-dom';\r\nimport AppRoutes from './AppRoutes';\r\nimport { Layout } from './components/Layout';\r\nimport './custom.css';\r\nimport ScrollToTop from \"./components/ScrollToTop\";\r\n\r\nexport default class App extends Component {\r\n static displayName = App.name;\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n {AppRoutes.map((route, index) => {\r\n const { element, ...rest } = route;\r\n return ;\r\n })}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://cra.link/PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://cra.link/PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then((registration) => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://cra.link/PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch((error) => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' },\r\n })\r\n .then((response) => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log('No internet connection found. App is running in offline mode.');\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then((registration) => {\r\n registration.unregister();\r\n })\r\n .catch((error) => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","const reportWebVitals = (onPerfEntry) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import 'bootstrap/dist/css/bootstrap.css';\r\nimport React from 'react';\r\nimport { createRoot } from 'react-dom/client';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\nconst root = createRoot(rootElement);\r\n\r\nroot.render(\r\n \r\n \r\n );\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://cra.link/PWA\r\nserviceWorkerRegistration.unregister();\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","key","call","join","module","exports","default","ReactPropTypesSecret","require","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","err","Error","name","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","aa","ca","p","a","b","c","encodeURIComponent","da","Set","ea","fa","ha","add","ia","window","document","createElement","ja","ka","la","ma","v","d","e","f","g","this","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","type","sanitizeURL","removeEmptyString","z","split","forEach","toLowerCase","ra","sa","toUpperCase","ta","slice","pa","isNaN","qa","test","oa","removeAttribute","setAttribute","setAttributeNS","replace","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","Symbol","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","iterator","Ka","La","A","assign","Ma","stack","trim","match","Na","Oa","prepareStackTrace","defineProperty","set","Reflect","construct","l","h","k","displayName","includes","Pa","tag","render","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","getOwnPropertyDescriptor","constructor","get","configurable","enumerable","getValue","setValue","stopTracking","Ua","Wa","checked","value","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","cb","db","ownerDocument","eb","fb","options","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","children","hb","ib","jb","textContent","kb","lb","mb","nb","namespaceURI","innerHTML","valueOf","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","style","indexOf","setProperty","keys","charAt","substring","tb","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr","ub","vb","is","wb","xb","target","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","addEventListener","removeEventListener","Nb","m","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","current","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","B","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","Math","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","shift","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","hd","id","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","data","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","String","fromCharCode","code","repeat","locale","which","Rd","Td","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","password","range","search","tel","text","time","url","week","me","ne","oe","event","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","offset","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","href","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","start","end","selectionStart","selectionEnd","min","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","concat","nf","Ub","instance","listener","D","of","has","pf","qf","rf","random","sf","bind","capture","passive","n","t","J","x","u","w","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","unshift","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","setTimeout","Gf","clearTimeout","Hf","Promise","Jf","queueMicrotask","resolve","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","context","memoizedValue","next","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","ch","eventTime","lane","payload","callback","dh","K","eh","fh","gh","q","r","y","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","L","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","state","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","ref","_owner","_stringRef","th","uh","vh","index","wh","xh","yh","implementation","zh","Ah","done","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","tagName","Jh","Kh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","P","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","gi","hi","ii","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","pi","qi","ri","create","destroy","deps","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","message","digest","Li","Mi","console","error","Ni","WeakMap","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","yj","Ej","S","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","size","createElementNS","autoFocus","createTextNode","T","Hj","Ij","Jj","Kj","U","Lj","WeakSet","V","Mj","W","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","insertBefore","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","display","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","src","Wk","mk","ceil","nk","ok","pk","Y","Z","qk","rk","sk","tk","uk","Infinity","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","cache","pendingSuspenseBoundaries","dl","el","fl","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","splice","querySelectorAll","JSON","stringify","form","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","version","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","hasElementType","Element","hasMap","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","it","entries","RegExp","warn","__self","__source","jsx","jsxs","setState","forceUpdate","escape","_status","_result","Children","map","count","toArray","only","Fragment","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","pop","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","navigator","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","floor","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","warning","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","$apply","$call","$reflectApply","$gOPD","$defineProperty","$max","originalFunction","desc","applyBind","objectKeys","isArguments","isRegex","isDate","getTime","deepEqual","actual","expected","opts","strict","isUndefinedOrNull","aIsRegex","bIsRegex","aIsBuffer","isBuffer","bIsBuffer","sort","objEquiv","undefined","copy","hasSymbols","toStr","origDefineProperty","hasPropertyDescriptors","supportsDescriptors","predicate","fn","writable","defineProperties","predicates","getOwnPropertySymbols","ERROR_MESSAGE","funcType","that","TypeError","bound","args","binder","result","boundLength","max","boundArgs","Function","Empty","functionsHaveNames","gOPD","functionsHaveConfigurableNames","$bind","boundFunctionsHaveNames","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","getProto","getPrototypeOf","__proto__","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","Atomics","BigInt","BigInt64Array","BigUint64Array","Boolean","DataView","decodeURI","decodeURIComponent","encodeURI","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","Number","parseFloat","parseInt","Proxy","RangeError","ReferenceError","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakRef","errorProto","doEval","gen","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","$exec","exec","rePropName","reEscapeChar","stringToPath","first","quote","subString","getBaseIntrinsic","alias","intrinsicName","parts","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","win","global","self","hasArrayLengthDefineBug","origSymbol","hasSymbolSham","obj","sym","symObj","getOwnPropertyNames","syms","propertyIsEnumerable","descriptor","toStringTag","hasToStringTag","$toString","callBound","isStandardArguments","isLegacyArguments","callee","supportsStandardArguments","getDay","tryDateObject","isRegexMarker","badStringifier","throwRegexMarker","toPrimitive","propIsEnumerable","toObject","val","test1","test2","test3","letter","shouldUseNative","from","symbols","to","s","numberIsNaN","define","getPolyfill","polyfill","keysShim","isArgs","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","o","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","isObject","isFunction","isString","theKeys","skipProto","j","skipConstructor","equalsConstructorPrototypeIfNotBuggy","origKeys","originalKeys","keysWorksWithArguments","str","getNanoSeconds","hrtime","loadTime","process","root","vendors","suffix","raf","caf","_now","cp","cancelled","round","handle","cancel","requestAnimationFrame","cancelAnimationFrame","nodeLoadTime","moduleLoadTime","upTime","uptime","__esModule","_extends","_createClass","Constructor","protoProps","staticProps","_interopRequireDefault","_mapToZero2","_stripStyle2","_stepper4","_performanceNow2","_raf2","_shouldStopAnimation2","_react2","_propTypes2","msPerFrame","Motion","_React$Component","_this","_classCallCheck","wasAnimating","animationID","prevTime","accumulatedTime","unreadPropStyle","clearUnreadPropStyle","destStyle","dirty","_state","currentStyle","currentVelocity","lastIdealStyle","lastIdealVelocity","styleValue","startAnimationIfNecessary","timestamp","propsStyle","onRest","currentTime","timeDelta","currentFrameCompletion","framesToCatchUp","newLastIdealStyle","newLastIdealVelocity","newCurrentStyle","newCurrentVelocity","newLastIdealStyleValue","newLastIdealVelocityValue","_stepper","stiffness","damping","precision","_stepper2","nextIdealX","nextIdealV","defaultState","subClass","superClass","setPrototypeOf","_inherits","defaultStyle","_props","renderedChildren","StaggeredMotion","unreadPropStyles","currentStyles","currentVelocities","lastIdealStyles","lastIdealVelocities","someDirty","destStyles","styles","shouldStopAnimationAll","newLastIdealStyles","newLastIdealVelocities","newCurrentStyles","newCurrentVelocities","defaultStyles","_mergeDiff2","rehydrateStyles","mergedPropsStyles","plainStyles","cUnreadPropStyles","mergedPropsStyle","mergeAndSync","willEnter","willLeave","didLeave","oldMergedPropsStyles","oldCurrentStyles","oldCurrentVelocities","oldLastIdealStyles","oldLastIdealVelocities","newMergedPropsStyles","oldIndex","oldMergedPropsStyle","leavingStyle","newMergedPropsStyleCell","foundOldIndex","plainStyle","velocity","TransitionMotion","unmounting","_mergeAndSync","propStyles","_mergeAndSync2","newMergedPropsStyle","styleThatEntered","defaultStyleCell","_mergeAndSync3","hydratedStyles","ret","prev","onRemove","prevKeyIndex","nextKeyIndex","fill","nextOrderA","nextOrderB","prevOrderA","prevOrderB","pivot","noWobble","gentle","wobbly","stiff","_interopRequire","_Motion","_spring","_presets","config","defaultConfig","_presets2","secondPerFrame","destX","newV","newX","abs","reusedTuple","keyPrefix","suspense","IsSomeRendererActing","_calculateChangedBits","_ctor","$Object","hasIndices","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","flagsBound","calls","TypeErr","regex","proto","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","chunkId","all","reduce","promises","miniCssF","globalThis","prop","inProgress","dataWebpackPrefix","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","timeout","nc","onScriptComplete","onerror","onload","doneFns","head","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","_arrayLikeToArray","arr","len","arr2","_unsupportedIterableToArray","minLen","_i","_s","_e","_arr","_n","_d","NavigationContext","React","LocationContext","RouteContext","outlet","matches","invariant","cond","matchRoutes","routes","locationArg","basename","pathname","stripBasename","parsePath","branches","flattenRoutes","score","siblings","every","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","matchRouteBranch","parentsMeta","parentPath","route","relativePath","path","caseSensitive","startsWith","joinPaths","computeScore","paramRe","isSplat","segments","initialScore","filter","segment","branch","matchedParams","matchedPathname","remainingPathname","matchPath","params","pathnameBase","normalizePathname","pattern","paramNames","regexpSource","_","paramName","endsWith","compilePath","matcher","captureGroups","splatValue","safelyDecodeURIComponent","resolveTo","toArg","routePathnames","locationPathname","toPathname","routePathnameIndex","toSegments","fromPathname","hash","resolvePathname","normalizeSearch","normalizeHash","resolvePath","nextChar","paths","useHref","useInRouterContext","useResolvedPath","joinedPathname","getToPathname","endsWithSlash","createHref","useLocation","useNavigate","routePathnamesJson","activeRef","navigate","parse","go","_renderMatches","parentMatches","reduceRight","React.createElement","Route","Router","_ref3","basenameProp","locationProp","navigationType","NavigationType","static","staticProp","navigationContext","trailingPathname","Routes","_ref4","routeMatch","parentParams","parentPathnameBase","locationFromContext","parsedLocationArg","_parsedLocationArg$pa","useRoutes","createRoutesFromChildren","BrowserRouter","historyRef","createBrowserHistory","history","listen","Link","reloadDocument","rest","internalOnClick","replaceProp","isModifiedEvent","createPath","useLinkClickHandler","_defineProperty","ownKeys","enumerableOnly","_objectSpread2","getOwnPropertyDescriptors","excluded","sourceKeys","_defineProperties","_setPrototypeOf","_getPrototypeOf","_typeof","_assertThisInitialized","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","sham","Super","NewTarget","Contact","className","Privacy","Counter","currentCount","incrementCounter","decrementCounter","PastProjects","alt","ProgressLog","position","bottom","loop","muted","autoPlay","piData","weatherpiProto","_regeneratorRuntime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","method","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isGeneratorFunction","genFun","mark","awrap","async","iter","reverse","skipTempReset","stop","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","asyncGeneratorStep","_next","_throw","_asyncToGenerator","FetchData","PiData","loading","getPiData","_prevProps","prevState","contents","renderPiDataTable","fetch","response","json","Data","temp1","humidity","sunlight","dbIndex","t0","t1","newInterval","floori","offseti","field","interval","d0","d1","step","previous","setTime","durationSecond","durationMinute","durationHour","durationDay","durationWeek","utcWeekday","setUTCDate","getUTCDate","getUTCDay","setUTCHours","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcDay","weekday","setDate","getDate","setHours","getTimezoneOffset","sunday","monday","tuesday","wednesday","thursday","friday","saturday","day","year","setMonth","setFullYear","getFullYear","utcYear","setUTCMonth","setUTCFullYear","getUTCFullYear","localDate","utcDate","UTC","newDate","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","pad","sign","requote","formatRe","names","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekNumberMonday","parseFullYear","parseYear","parseZone","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","getHours","formatHour12","formatDayOfYear","timeDay","timeYear","formatMilliseconds","getMilliseconds","formatMicroseconds","formatMonthNumber","getMonth","formatMinutes","getMinutes","formatSeconds","getSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","timeSunday","dISO","timeThursday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","timeMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","getUTCHours","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","getUTCMonth","formatUTCMinutes","getUTCMinutes","formatUTCSeconds","getUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","defaultLocale","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","newFormat","specifier","format","charCodeAt","newParse","utcParse","formatLocale","RedBlackTree","RedBlackNode","RedBlackRotateLeft","tree","parent","RedBlackRotateRight","RedBlackFirst","insert","after","grandpa","uncle","remove","red","right","createEdge","v0","v1","edge","edges","setEdgeEnd","cells","halfedges","createBorderEdge","vertex","clipEdge","x0","y0","x1","y1","ax","ay","dx","dy","connectEdge","fm","lx","ly","rx","ry","fx","fy","cellHalfedgeAngle","cell","site","atan2","cellHalfedgeStart","cellHalfedgeEnd","firstCircle","circlePool","Circle","arc","cy","attachCircle","lArc","rArc","lSite","cSite","rSite","bx","by","cx","epsilon2","circle","sqrt","before","circles","detachCircle","beachPool","Beach","createBeach","beach","detachBeach","beaches","removeBeach","disappearing","epsilon","iArc","nArcs","addBeach","dxl","dxr","directrix","leftBreakPoint","rightBreakPoint","createCell","newArc","rfocx","rfocy","pby2","lfocx","lfocy","plby2","aby2","triangleArea","lexicographic","Diagram","sites","extent","sortCellHalfedges","clipEdges","iCell","iHalfedge","nHalfedges","startX","startY","endX","endY","nCells","cover","d2","v00","v01","v11","v10","clipCells","pointX","pointY","voronoi","polygons","links","triangles","constant","polygon","s0","e1","s1","find","radius","i0","i1","_found","vx","vy","v2","factory","Color","darker","brighter","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","rgbn","Rgb","rgba","hsla","NaN","rgbConvert","rgb_formatHex","hex","rgb_formatRgb","Hsl","hslConvert","hsl","hsl2rgb","m1","m2","basis","v3","t2","t3","linear","gamma","nogamma","pow","exponential","channels","displayable","formatHsl","rgbGamma","colorRgb","rgbSpline","spline","colors","genericArray","reA","reB","am","bm","bs","lastIndex","one","zero","numberArray","ANIMATION_PROPTYPES","nonAnimatedProps","propTypes","animatedProps","onStart","onEnd","extractAnimatedPropValues","otherProps","_objectWithoutProperties","animatedPropName","Animation","_PureComponent","_motionEndHandler","_renderChildren","_ref","interpolator","_interpolator","interpolatedProps","_data","row","correspondingCell","_animation","_updateInterpolator","oldProps","newProps","interpolate","animationStyle","presets","getAnimationStyle","spring","AnimationPropType","ascending","lo","mid","ascendingBisect","bisector","bisectRight","valueof","e10","e5","e2","ticks","tickIncrement","power","LN10","tickStep","step0","step1","sum","prefix","each","property","clear","empty","sortValues","rollup","nest","sortKeys","depth","createResult","setResult","keyValue","valuesByKey","sortKey","createObject","setObject","createMap","setMap","implicit","ordinal","domain","unknown","scale","band","bandwidth","ordinalRange","paddingInner","paddingOuter","align","rescale","sequence","rangeRound","padding","pointish","unit","deinterpolateLinear","bimap","deinterpolate","reinterpolate","r0","r1","polymap","bisect","clamp","continuous","piecewise","output","interpolateValue","deinterpolateClamp","invert","reinterpolateClamp","interpolateRound","prefixExponent","formatSpecifier","FormatSpecifier","comma","formatDecimalParts","toExponential","coefficient","exponent","toFixed","toLocaleString","toPrecision","formatRounded","formatPrefix","prefixes","grouping","thousands","group","identity","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","percent","minus","nan","formatTypes","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","formatTrim","precisionPrefix","precisionRound","precisionFixed","linearish","tickFormat","nice","pow10","powp","exp","logp","log10","log2","reflect","raise","hour","minute","second","millisecond","durationMonth","durationYear","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","tickIntervals","tickInterval","utcMonth","utcHour","setUTCMinutes","utcMinute","setUTCSeconds","deg2rad","PI","rad2deg","ED","EB","BC_DA","cubehelixConvert","Cubehelix","cubehelix","hue","cubehelixGamma","colorCubehelix","cosh","cos","sinh","sin","cubehelixLong","interpolateCubehelixLong","ramp","_React$version$split2","sliceIterator","_slicedToArray","major","minor","versionHigherThanThirteen","getDOMNode","USED_MESSAGES","HIDDEN_PROCESSES","onlyShowMessageOnce","transformValueToString","toDateString","_SCALE_FUNCTIONS","_toConsumableArray","LINEAR_SCALE_TYPE","ORDINAL_SCALE_TYPE","CATEGORY_SCALE_TYPE","LITERAL_SCALE_TYPE","TIME_SCALE_TYPE","SCALE_FUNCTIONS","scaleLinear","scaleOrdinal","literalScale","logs","pows","timeMonth","timeWeek","timeHour","timeMinute","timeSecond","timeMillisecond","utcWeek","utcSecond","utcMillisecond","XYPLOT_ATTR","toTitleCase","getScaleFnFromScaleObject","scaleObject","modDomain","_scale$range","_scale$range2","lower","upper","addInvertFunctionToOrdinalScaleObject","getDomainByAccessor","allData","accessor","accessor0","value0","_isDefined","_createScaleObjectForValue","attr","distance","baseValue","isValue","_getScaleDistanceAndAdjustedDomain","uniqueValues","setOfValues","getUniquePropertyValues","_normalizeValues","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","extractScalePropsFromProps","attributes","isPlainSet","isUnderscoreSet","usesGet","getMissingScaleProps","_domain","domainPadding","_padDomain","getFontColorFromBackground","background","getXYPlotValues","XYPlotScales","scaleInput","OPTIONAL_SCALE_PROPS_REGS","getOptionalScaleProps","acc","reg","onValueMouseOver","onValueMouseOut","onValueClick","onValueRightClick","onSeriesMouseOver","onSeriesMouseOut","onSeriesClick","onSeriesRightClick","onNearestX","onNearestXY","AbstractSeries","_temp","_len","_key","_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","rect","getBoundingClientRect","clientLeft","clientTop","_props3","minDistance","POSITIVE_INFINITY","valueIndex","coordinate","_getXYCoordinateInContainer","xScaleFn","_getAttributeFunctor","item","currentCoordinate","newDistance","innerX","_props4","yScaleFn","foundPoint","voronoiInstance","innerY","DISCRETE_COLOR_RANGE","EXTENDED_DISCRETE_COLOR_RANGE","CONTINUOUS_COLOR_RANGE","SIZE_RANGE","OPACITY_TYPE","DEFAULT_COLOR","isSeriesChild","getSeriesChildren","getStackedData","areSomeSeriesStacked","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","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","halfPi","asin","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","intersect","x3","y3","x10","y10","x32","y32","cornerTangents","ox","oy","x11","y11","x00","y00","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cornerRadius","padRadius","buffer","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","centroid","predefinedClassName","ATTRIBUTES","center","arcClassName","modifyRow","angle0","truedAngle","truedAngle0","ArcSeries","_AbstractSeries","scaleProps","_getAllScaleProps","nextProps","defaultScaleProps","_getDefaultScaleProps","userScaleProps","missingScaleProps","innerWidth","innerHeight","radiusRange","_radiusValue","angleType","_this2","disableSeries","hideSeries","cloneData","stroke","radiusDomain","radius0","onMouseOver","onMouseOut","onContextMenu","pointerEvents","transform","arcArg","arcedData","arcBuilder","rowStyle","rowClassName","Linear","defined","curve","curveLinear","line","defined0","lineStart","lineEnd","point","x0z","y0z","areaStart","areaEnd","arealine","lineX0","lineY0","lineY1","lineX1","descending","pie","arcs","_line","_point","curveRadialLinear","curveRadial","Radial","_curve","radial","lineRadial","lineStartAngle","lineEndAngle","lineInnerRadius","lineOuterRadius","linkSource","linkTarget","argv","curveHorizontal","curveVertical","pointRadial","p2","p3","linkHorizontal","linkVertical","linkRadial","draw","tan30","tan30_2","kr","kx","ky","sqrt3","cross","diamond","square","star","triangle","wye","Basis","BasisClosed","BasisOpen","Bundle","beta","_basis","_beta","noop","_x2","_x3","_x4","_y2","_y3","_y4","_x","_y","custom","bundle","_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","Step","_t","stepBefore","stepAfter","stackValue","orderNone","offsetNone","oz","kz","sz","sij","none","yp","yn","s2","sij0","s3","peaks","peak","sums","appearance","tops","bottoms","_t0","px","py","AreaSeries","getNull","d3Shape","nullAccessor","_getAttr0Functor","_getAttributeValue","newOpacity","_renderArea","marginBottom","marginRight","CLASSES","Borders","requiresSVG","ChartLabel","_React$PureComponent","includeMargin","xPos","xPercent","yPos","yPercent","ORIENTATION","TOP","LEFT","RIGHT","BOTTOM","VERTICAL","HORIZONTAL","DIRECTION","getTicksTotalFromSize","getTickValues","tickTotal","tickValues","CircularGridLines","centerX","centerY","_getDefaultProps","rRange","xScale","yScale","ring","hole","ringContains","segmentContains","collinear","cases","threshold","thresholdSturges","smooth","smoothLinear","contours","tz","contour","holes","fragmentByStart","fragmentByEnd","stitch","startIndex","endIndex","isorings","coordinates","xt","yt","_0","_1","thresholds","blurX","sr","blurY","defaultX","defaultY","defaultWeight","weight","density","values0","values1","geometry","transformPolygon","transformRing","transformPoint","resize","cellSize","streamGeometry","stream","streamGeometryType","streamObjectType","Feature","FeatureCollection","features","Sphere","sphere","Point","MultiPoint","LineString","streamLine","MultiLineString","Polygon","streamPolygon","MultiPolygon","GeometryCollection","geometries","closed","polygonStart","polygonEnd","Adder","temp","adder","bv","av","atan","areaSum","areaRingSum","areaStream","areaRingStart","areaRingEnd","areaPointFirst","areaPoint","boundsStream","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","contourDensity","geo","projection","projectionStream","contextStream","pathArea","measure","pathMeasure","pathBounds","pathCentroid","geoPath","_getDomain","getDomain","colorScale","defaultTitleFormat","getFirstNonEmptyValue","title","defaultItemsFormat","Crosshair","items","itemsFormat","titleFormat","titleItem","innerLeft","_props$orientation","orientation","innerClassName","box","_renderCrosshairTitle","_renderCrosshairItems","DEFAULT_STYLE","predefinedComponents","points","starPoints","innerAngle","outerAngle","CustomSVGSeries","customComponent","seriesComponent","positionInPixels","innerComponent","defaultType","positionFunctions","propsSize","aggStyle","getInnerComponent","onMouseEnter","onMouseLeave","decorativeAxisTick","axisDomain","numberOfTicks","axisStart","axisEnd","tickValue","tickSize","_generatePoints","_generateFit","slope","generateFit","pointSlope","axisScale","slopeVertical","generatePoints","tickAngle","getAxisAngle","tickProps","textProps","textAnchor","DecorativeAxis","DecorativeAxisTicks","DEFAULT_FORMAT","GradientDefs","direction","GridLines","isVertical","tickXAttr","tickYAttr","_pathProps","pos","pathProps","HeatmapSeries","rectStyle","xDistance","_getScaleDistance","yDistance","attrs","isDomainAdjustmentNeeded","thirdPi","angles","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","horizontal","vertical","_mapOrientationToAlign","_getXCSS","_getYCSS","getAlignStyle","_getAlign","_getAlignStyle","positionClassName","_getAlignClassNames","_getCSSLeft","_getCSSRight","verticalAlign","_getCSSTop","_getCSSBottom","_getPositionInfo2","_getPositionInfo","content","formattedProp","scales","BarSeries","linePosAttr","lineSizeAttr","valueSizeAttr","barWidth","_getStackParams","lineFunctor","valueFunctor","value0Functor","fillFunctor","strokeFunctor","opacityFunctor","halfSpace","_attrs","totalSpaceAvailable","totalSpaceCenter","spacePerBar","barStartingPoint","HorizontalBarSeries","zeroBaseValue","BarSeriesCanvas","ctx","getScaleDistance","totalSpaceStartingPoint","lineSize","fillColor","strokeColor","rowOpacity","linePos","valuePos","valueSize","beginPath","fillStyle","strokeStyle","HorizontalBarSeriesCanvas","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","label","STROKE_STYLES","dashed","solid","LineSeries","_renderLine","MarkSeries","scalingFunctions","_renderCircle","lineStyle","LineMarkSeries","MarkSeriesCanvas","LineSeriesCanvas","lineWidth","setLineDash","LineMarkSeriesCanvas","generatePath","PolygonSeries","VerticalBarSeries","VerticalGridLines","VerticalRectSeries","NOOP","Voronoi","nodes","onBlur","_onClick","_onMouseUp","_onMouseDown","onHover","polygonStyle","getExtent","handleTouchEvent","handler","_evt$nativeEvent","elementFromPoint","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","renderWhiskerMark","getInnerDimensions","defaultMargins","margin","marginProps","_marginProps$left","_marginProps$top","_marginProps$right","_marginProps$bottom","getRadialLayoutMargin","marginX","marginY","MarginPropType","DEFAULT_MARGINS","drawLayers","layers","drawIteration","clearRect","layer","renderLayer","CanvasWrapper","_Component","canvas","getContext","pixelRatio","drawChildren","newChildren","oldChildren","childrenShouldAnimate","drawCycle","setInterval","clearInterval","engageDrawLoop","devicePixelRatio","cleanseData","XYPlot","_initialiseProps","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","component","onParentMouseDown","onParentMouseEnter","onParentMouseLeave","onParentMouseUp","onParentTouchMove","_touchStartHandler","onParentTouchStart","AxisLine","lineProps","AxisTicks","_isAxisVertical","tickLabelAngle","_props$tickSizeOuter","tickSizeOuter","_props$tickPadding","tickPadding","labelOffset","_areTicksWrapped","_props2$tickSizeOuter","_props2$tickSizeInner","tickSizeInner","tickFormatFn","_getTickFormatFn","translateFn","_getTickContainerPropsGetterFn","_getTickLineProps","_getTickLabelProps","labelNode","shouldRenderAsOwnNode","shouldAddProps","containerWidth","tickCount","ADJUSTMENT_FOR_TEXT_SIZE","AxisTitle","outerGroupTransform","_transformation$orien","middle","transformation","innerGroupTransform","defaultAnimatedProps","attrAxis","hideTicks","hideLine","on0","Axis","_getDefaultAxisProps","axisClassName","XAxis","YAxis","endColor","endTitle","midColor","midTitle","startColor","startTitle","ContinuousColorLegend","circlesTotal","endSize","startSize","ContinuousSizeLegend","borderRadius","DiscreteColorLegendItem","strokeDasharrayStyle","DiscreteColorLegend","onItemClick","onItemMouseEnter","onItemMouseLeave","searchText","onSearchChange","searchPlaceholder","searchFn","SearchableDiscreteColorLegend","onChange","filteredItems","placeholder","getLabels","domains","ParallelCoordinates","brushFilters","hideInnerMostValues","showMarks","axes","sortedDomain","getAxes","lines","rowIndex","withinFilteredRange","mappedData","selectedName","deselectedLineStyle","getLines","labelSeries","labels","xType","yDomain","trigger","colorType","fontSize","getCoordinate","axisEndPoint","startingAngle","RadarChart","renderAxesOverPolygons","dataPoint","getPolygons","polygonPoints","_ref5","dataName","getPolygonPoints","xDomain","RadialChart","getAngle","getSubLabel","hideRootNode","labelsAboveChildren","labelsRadiusMultiplier","labelsStyle","showLabels","pieBuilder","getWedgesToRender","radialDomain","arcProps","radiusNoFallBack","radiusType","maxRadius","getMaxRadius","defaultMargin","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","sankeyJustify","targetLinks","Sankey","hasVoronoi","hideLabels","layout","linkOpacity","nodePadding","nodeWidth","nodesCopy","linksCopy","sankeyInstance","iterations","sankey","computeNodeLinks","computeNodeValues","computeNodeDepths","computeNodeBreadths","computeLinkBreadths","initializeNodeBreadth","resolveCollisions","relaxRightToLeft","relaxLeftToRight","update","nodeId","nodeAlign","nWidth","yType","rects","partition","eachBefore","treemapDice","positionNode","roundNode","hierarchy","childs","Node","valued","defaultChildren","computeHeight","copyData","eachAfter","ancestor","aNodes","ancestors","bNodes","leastCommonAncestor","descendants","leaves","LISTENERS_TO_OVERWRITE","Sunburst","getSize","partitionFunction","structuredInput","scaleSqrt","getNodesToRender","labelData","rotateLabels","dontRotateLabel","rotAngle","labelStyle","buildLabels","getColor","phi","squarifyRatio","ratio","sumValue","minValue","maxValue","newRatio","minRatio","rows","dice","treemapSlice","squarify","resquarify","_squarify","shuffle","enclosesWeak","encloseBasis","extendBasis","enclosesWeakAll","enclosesNot","encloseBasis2","encloseBasis3","dr","encloseBasis1","r2","r21","r3","a2","a3","b2","b3","c2","c3","d3","place","intersects","packEnclose","pack","enclose","optional","required","constantZero","defaultRadius","radiusLeaf","packChildren","translateChild","ANIMATED_PROPS","TreemapLeaf","onLeafClick","onLeafMouseOver","onLeafMouseOut","useCirclePacking","leafStyle","TreemapDOM","nodeProps","TreemapSVG","_nodes$reduce","maxY","minY","maxX","minX","updatedNodes","onSeriesMouseEnter","onSeriesMouseLeave","sizeType","nodeHeight","getCircularNodes","getNonCircularNodes","TREEMAP_TILE_MODES","treemapSquarify","treemapResquarify","slicedice","binary","valueOffset","valueTarget","valueLeft","valueRight","_getScaleFns","compatibleProps","Treemap","sortFunction","_structuredInput","mappedNodes","packingFunction","_structuredInput2","tileFn","treemapingFunction","tile","paddingStack","paddingTop","paddingRight","paddingBottom","paddingLeft","treemap","renderMode","_getNodesToRender","TreemapElement","resizeSubscribers","timeoutId","debounceEmitResize","emitResize","subscribeToDebouncedResize","removeSubscriber","makeFlexible","isWidthFlexible","isHeightFlexible","ResultClass","_onResize","containerElement","offsetHeight","offsetWidth","newHeight","newWidth","_Component$propTypes","cancelSubscription","updatedDimensions","getDisplayName","makeHeightFlexible","makeVisFlexible","timeFormatDefaultLocale","DisplayData","renderPiDataChart","temp1chartdata","temp1data","temp2data","temp2","humdata","pressdata","raindata","rain","sundata","winddirdata","windDir","windsdata","windSpeed","chartdata","Home","topVideo","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","Manager","_React$useState","referenceNode","setReferenceNode","hasUnmounted","handleSetReferenceNode","unwrapArray","safeInvoke","setRef","fromEntries","useIsomorphicLayoutEffect","getWindow","isElement","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","includeScale","scaleX","scaleY","getWindowScroll","pageXOffset","pageYOffset","getNodeName","getDocumentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","_getComputedStyle","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","offsets","getNodeScroll","getLayoutRect","clientRect","offsetLeft","offsetTop","getParentNode","assignedSlot","host","getScrollParent","listScrollParents","list","_element$ownerDocumen","scrollParent","isBody","visualViewport","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","isFirefox","userAgent","currentNode","css","perspective","contain","willChange","getContainingBlock","auto","basePlacements","viewport","popper","variationPlacements","placement","placements","modifierPhases","modifiers","visited","modifier","requires","requiresIfExists","dep","depModifier","debounce","DEFAULT_OPTIONS","strategy","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","reference","orderedModifiers","modifiersData","elements","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","phase","orderModifiers","merged","existing","mergeByName","enabled","_ref3$options","effect","cleanupFn","noopFn","_state$elements","_state$orderedModifie","_state$orderedModifie2","_options","onFirstUpdate","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","dpr","roundOffsetsByDPR","initialStyles","arrow","attribute","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","popperOffsets","getOppositePlacement","matched","getOppositeVariationPlacement","rootNode","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","html","clientWidth","clientHeight","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","axis","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","check","_loop","fittingPlacement","within","mathMax","mathMin","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","getAltAxis","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","axisProp","centerOffset","_options$element","querySelector","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","createPopper","_options$scroll","_options$resize","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","applyStyles","flip","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","EMPTY_MODIFIERS","NOOP_PROMISE","Popper","_ref$placement","_ref$strategy","_ref$modifiers","referenceElement","innerRef","popperElement","setPopperElement","_React$useState2","setArrowElement","_usePopper","prevOptions","optionsWithDefaults","updateStateModifier","ReactDOM","popperOptions","newOptions","isEqual","popperInstanceRef","popperInstance","defaultCreatePopper","usePopper","childrenProps","hide","arrowProps","Reference","refHandler","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","initialStatus","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","status","nextCallback","_proto","updateStatus","prevProps","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","performEnter","performExit","appearing","nodeRef","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","onExit","onExiting","onExited","nextState","setNextCallback","_this4","active","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","_objectWithoutPropertiesLoose","TransitionGroupContext","globalCssModule","getScrollbarWidth","scrollDiv","scrollbarWidth","setScrollbarWidth","isBodyOverflowing","getOriginalBodyPadding","getPropertyValue","conditionallyUpdateScrollbar","fixedContent","bodyPadding","mapToCssModules","cssModule","omit","omitKeys","pick","pickKeys","warned","warnOnce","deprecated","propType","explanation","DOMElement","targetPropType","tagPropType","TransitionTimeouts","Fade","Collapse","Modal","Carousel","Offcanvas","TransitionPropTypeKeys","TransitionStatuses","keyCodes","esc","space","tab","up","down","home","PopperPlacements","canUseDOM","isReactRefObj","getTag","toNumber","other","isBinary","findDOMElements","selection","isArrayOrNodeList","els","getTarget","allElements","defaultToggleEvents","addMultipleEventListeners","_els","_events","useCapture","events","focusableElements","fluid","Container","Tag","containerClass","rowColsPropType","noGutters","xs","sm","xl","xxl","widths","Row","colClasses","colWidth","colSize","isXs","colWidths","stringOrNumberProp","columnProps","getColumnSizeClass","getColumnClasses","columnProp","colSizeInterfix","colClass","Col","modifiedAttributes","light","dark","full","fixed","role","container","expand","Navbar","getExpandClass","NavbarBrand","NavbarText","NavbarToggler","tabs","pills","justified","navbar","card","Nav","getVerticalClass","NavItem","NavLink","listTag","listClassName","Breadcrumb","ListTag","listClasses","BreadcrumbItem","variant","CloseButton","block","outline","close","Button","ariaLabel","btnOutlineColor","onFocus","ButtonToggle","toggled","DropdownContext","a11y","isOpen","nav","toggle","inNavbar","setActiveFromChild","menuRole","preventDefaultKeys","Dropdown","addEvents","handleDocumentClick","handleKeyDown","removeEvents","handleMenuRef","containerRef","menuRef","getContextValue","dropup","onMenuRef","handleProps","getContainer","getMenu","getMenuCtrl","_$menuCtrl","getItemType","getMenuItems","menuContainer","menu","clickIsInContainer","clickIsInInput","classList","clickIsInMenu","isTargetMenuItem","isTargetMenuCtrl","isTab","click","$menuitems","charPressed","subItemIsActive","dropdownItem","ButtonDropdown","ButtonGroup","ButtonToolbar","divider","header","DropdownItem","getTabIndex","getRole","tabIndex","updateOnSelect","directionPositionMap","DropdownMenu","show","position1","position2","poperPlacement","poperModifiers","combinedStyle","tagRef","caret","DropdownToggle","baseClass","baseClassActive","transitionProps","AccordionContext","flush","open","Accordion","accordionContext","defaultOpen","stayOpen","UncontrolledAccordion","setOpen","accordionId","targetId","AccordionHeader","buttonClasses","collapsed","AccordionItem","transitionStatusToClassHash","dimension","getDimension","isAppearing","collapseClass","getTransitionClass","AccordionBody","pill","Badge","inverse","Card","CardGroup","CardDeck","CardColumns","CardBody","CardLink","CardFooter","CardHeader","CardImg","cardImgClassName","CardImgOverlay","CarouselItem","startAnimation","CustomEvent","isIn","slide","isActive","directionClassName","itemClasses","CarouselContext","handleKeyPress","renderItems","hoverStart","hoverEnd","handleTouchStart","handleTouchEnd","touchStartX","touchStartY","activeIndex","indicatorClicked","ride","cycleInterval","pause","mouseEnter","mouseLeave","keyboard","enableTouch","currentX","currentY","diffX","carouselItems","fade","outerClasses","innerClasses","controlLeft","controlRight","indicators","wrappedIndicators","onClickHandler","newState","CarouselControl","directionText","anchorClasses","iconClasses","screenReaderClasses","cursor","CarouselIndicators","idx","indicatorClasses","caption","CarouselCaption","captionHeader","captionText","controls","defaultActiveIndex","goToIndex","UncontrolledCarousel","animating","nextIndex","newIndex","slides","altText","CardSubtitle","CardText","CardTitle","popperClassName","placementPrefix","arrowClassName","hideArrow","boundariesElement","onClosed","PopperContent","setTargetNode","getTargetNode","getRef","_element","targetNode","getContainerNode","renderChildren","_arrowClassName","_popperClassName","modifierNames","baseModifiers","extendedModifiers","popperTransition","ReactPopper","popperPlacement","PopperTargetHelper","popperManager","autohide","DEFAULT_DELAYS","isInDOMSubtree","subtreeRoot","isInDOMSubtrees","subtreeRoots","subTreeRoot","TooltipPopoverWrapper","_targets","currentTargetElement","addTargetEvents","removeTargetEvents","showWithDelay","hideWithDelay","onMouseOverTooltipContent","onMouseLeaveTooltipContent","onEscKeyDown","_isMounted","updateTarget","clearShowTimeout","clearHideTimeout","_hideTimeout","_showTimeout","getDelay","_popover","getCurrentTarget","parentElement","composedPath","triggers","addEventOnTargets","isBubble","removeEventOnTargets","newTarget","popperClasses","onKeyDown","Popover","UncontrolledPopover","PopoverHeader","PopoverBody","bar","multi","animated","striped","barClassName","barStyle","barAriaValueText","barAriaLabelledBy","Progress","progressClasses","progressBarProps","Portal","defaultNode","FadePropTypes","centered","fullscreen","scrollable","labelledBy","backdrop","onOpened","wrapClassName","modalClassName","backdropClassName","contentClassName","external","backdropTransition","modalTransition","unmountOnClose","returnFocusAfterClose","trapFocus","propsToOmit","_originalBodyPadding","_originalBodyOverflow","getFocusableChildren","handleBackdropClick","handleBackdropMouseDown","handleEscape","handleStaticBackdropAnimation","handleTab","manageFocusAfterClose","clearBackdropAnimationTimeout","showStaticBackdropAnimation","init","setFocus","ev","_dialog","modalIndex","openCount","getFocusedChild","currentFocus","focusableChildren","_mouseDownElement","totalFocusable","focusedIndex","_backdropAnimationTimeout","_triggeringElement","_mountContainer","modalOpenClassName","modalOpenClassNameRegex","renderModalDialog","dialogBaseClass","isModalHidden","modalAttributes","onKeyUp","hasTransition","Backdrop","wrapTag","closeAriaLabel","ModalHeader","closeButton","WrapTag","ModalBody","ModalFooter","Tooltip","bordered","borderless","hover","responsive","responsiveTag","Table","ResponsiveTag","table","responsiveClassName","numbered","ListGroup","getHorizontalClass","inline","Form","submit","valid","tooltip","FormFeedback","validMode","switch","floating","FormGroup","switchProp","formCheck","FormText","bsSize","invalid","plaintext","addon","Input","checkInput","isNotaNumber","selectInput","rangeInput","formControlClass","InputGroup","InputGroupText","hidden","Label","htmlFor","colFormLabel","formLabel","heading","Media","defaultTag","media","offcanvasTransition","offcanvasIndex","_backdrop","isOffcanvasHidden","offcanvasAttributes","visibility","OffcanvasBody","OffcanvasHeader","Pagination","PaginationItem","PaginationLink","defaultAriaLabel","defaultCaret","TabContext","activeTab","TabContent","activeTabId","tabId","TabPane","getClasses","closeClassName","Alert","closeClasses","alertTransition","Toast","toastTransition","ToastBody","icon","ToastHeader","tagClassName","iconProp","xmlns","preserveAspectRatio","focusable","handleDisabledOnClick","ListGroupItem","ListGroupItemHeading","ListGroupItemText","List","ListInlineItem","UncontrolledButtonDropdown","toggler","toggleEvents","UncontrolledCollapse","togglers","removeEventListeners","UncontrolledDropdown","onToggle","UncontrolledTooltip","Spinner","Placeholder","PlaceholderButton","createEvent","initCustomEvent","NavMenu","toggleNavbar","logo","Footer","Layout","ScrollToTop","scrollTo","App","AppRoutes","sourceSymbolKeys","hostname","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","baseUrl","rootElement","getElementById","serviceWorker","ready","registration","unregister","reportWebVitals"],"sourceRoot":""}