{"version":3,"sources":["webpack:///./node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/lodash/_cloneArrayBuffer.js","webpack:///./node_modules/core-js/internals/to-positive-integer.js","webpack:///./node_modules/lodash/_baseMerge.js","webpack:///./node_modules/lodash/property.js","webpack:///./node_modules/lodash/_initCloneObject.js","webpack:///./node_modules/d3-shape/src/line.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/gatsby-image/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/d3-shape/src/point.js","webpack:///./node_modules/lodash/_updateWrapDetails.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/_createPartial.js","webpack:///./node_modules/lodash/_stackSet.js","webpack:///./node_modules/@nivo/colors/dist/nivo-colors.esm.js","webpack:///./node_modules/d3-shape/src/offset/none.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/react-motion/lib/react-motion.js","webpack:///./node_modules/lodash/stubArray.js","webpack:///./node_modules/lodash/isSet.js","webpack:///./node_modules/@nivo/tooltip/dist/nivo-tooltip.esm.js","webpack:///./node_modules/react-motion/node_modules/prop-types/index.js","webpack:///./node_modules/d3-scale/src/init.js","webpack:///./node_modules/lodash/_baseSortBy.js","webpack:///./node_modules/lodash/_SetCache.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Set1.js","webpack:///./node_modules/d3-shape/src/constant.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js","webpack:///./node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack:///./node_modules/lodash/_baseIsNaN.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js","webpack:///./node_modules/lodash/_insertWrapDetails.js","webpack:///./node_modules/lodash/_setCacheHas.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/isArrayLikeObject.js","webpack:///./node_modules/d3-scale/src/ordinal.js","webpack:///./node_modules/lodash/_basePropertyDeep.js","webpack:///./node_modules/lodash/memoize.js","webpack:///./node_modules/d3-shape/src/area.js","webpack:///./node_modules/lodash/_customOmitClone.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/d3-shape/src/offset/diverging.js","webpack:///./node_modules/lodash/_Hash.js","webpack:///./node_modules/lodash/isString.js","webpack:///./node_modules/lodash/_hasPath.js","webpack:///./node_modules/lodash/_castPath.js","webpack:///./node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-single/Reds.js","webpack:///./node_modules/lodash/_cloneBuffer.js","webpack:///./node_modules/lodash/_createRecurry.js","webpack:///./node_modules/lodash/flattenDepth.js","webpack:///./node_modules/core-js/internals/array-buffer-view-core.js","webpack:///./node_modules/lodash/_replaceHolders.js","webpack:///./node_modules/recompose/pure.js","webpack:///./node_modules/lodash/_createWrap.js","webpack:///./src/assets/2020-ruby-on-rails-survey-results.png","webpack:///./node_modules/recompose/shallowEqual.js","webpack:///./node_modules/d3-scale/src/number.js","webpack:///./node_modules/d3-scale/src/continuous.js","webpack:///./node_modules/d3-scale/src/constant.js","webpack:///./node_modules/lodash/_LodashWrapper.js","webpack:///./node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3-interpolate/src/numberArray.js","webpack:///./node_modules/d3-interpolate/src/array.js","webpack:///./node_modules/d3-interpolate/src/date.js","webpack:///./node_modules/d3-interpolate/src/object.js","webpack:///./node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3-interpolate/src/value.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/d3-path/src/path.js","webpack:///./node_modules/lodash/_baseProperty.js","webpack:///./node_modules/lodash/_stackClear.js","webpack:///./node_modules/recompose/setDisplayName.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/_nativeKeysIn.js","webpack:///./node_modules/gatsby-image/node_modules/prop-types/index.js","webpack:///./node_modules/lodash/_mapToArray.js","webpack:///./node_modules/d3-array/src/ticks.js","webpack:///./node_modules/lodash/uniq.js","webpack:///./node_modules/react-side-effect/lib/index.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/lodash/_setData.js","webpack:///./node_modules/recompose/shouldUpdate.js","webpack:///./node_modules/lodash/_toKey.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/gatsby-image/index.js","webpack:///./node_modules/lodash/_isKey.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/min.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/PuOr.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/d3-array/src/ascending.js","webpack:///./node_modules/gatsby-plugin-breakpoints/withBreakpoints.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/react-helmet/node_modules/prop-types/index.js","webpack:///./node_modules/core-js/internals/engine-ff-version.js","webpack:///./node_modules/lodash/_isFlattenable.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js","webpack:///./node_modules/@nivo/legends/dist/nivo-legends.esm.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Set3.js","webpack:///./node_modules/lodash/_arrayPush.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/Spectral.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/react-measure/dist/index.esm.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/lodash/_isStrictComparable.js","webpack:///./node_modules/d3-shape/src/math.js","webpack:///./node_modules/lodash/_strictIndexOf.js","webpack:///./node_modules/d3-format/src/formatSpecifier.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/set.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/_baseAssignIn.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_copySymbolsIn.js","webpack:///./node_modules/d3-scale-chromatic/node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3-scale-chromatic/node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/lodash/_getFuncName.js","webpack:///./node_modules/d3-format/src/formatPrefixAuto.js","webpack:///./node_modules/d3-format/src/defaultLocale.js","webpack:///./node_modules/d3-format/src/formatRounded.js","webpack:///./node_modules/d3-format/src/formatTypes.js","webpack:///./node_modules/d3-format/src/identity.js","webpack:///./node_modules/d3-format/src/locale.js","webpack:///./node_modules/d3-format/src/formatGroup.js","webpack:///./node_modules/d3-format/src/formatNumerals.js","webpack:///./node_modules/d3-format/src/formatTrim.js","webpack:///./node_modules/lodash/_createCtor.js","webpack:///./node_modules/lodash/_isKeyable.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/@nivo/line/dist/nivo-line.esm.js","webpack:///./node_modules/lodash/_baseSet.js","webpack:///./node_modules/d3-color/src/math.js","webpack:///./node_modules/d3-color/src/cubehelix.js","webpack:///./node_modules/lodash/_basePick.js","webpack:///./node_modules/d3-color/src/color.js","webpack:///./node_modules/lodash/_getAllKeysIn.js","webpack:///./node_modules/core-js/internals/to-offset.js","webpack:///./node_modules/lodash/_baseMatchesProperty.js","webpack:///./node_modules/lodash/_stringToPath.js","webpack:///./node_modules/react-helmet/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/lodash/_baseIsMap.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/react-helmet/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/lodash/_equalByTag.js","webpack:///./node_modules/lodash/_createRange.js","webpack:///./node_modules/lodash/_Promise.js","webpack:///./node_modules/lodash/_hashDelete.js","webpack:///./node_modules/lodash/_memoizeCapped.js","webpack:///./node_modules/lodash/_matchesStrictComparable.js","webpack:///./node_modules/lodash/_compareMultiple.js","webpack:///./node_modules/core-js/modules/es.typed-array.sort.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/recompose/utils/pick.js","webpack:///./node_modules/lodash/_baseForOwn.js","webpack:///./node_modules/lodash/_Uint8Array.js","webpack:///./node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/lodash/partialRight.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Dark2.js","webpack:///./node_modules/lodash/_hashSet.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/pick.js","webpack:///./node_modules/lodash/_realNames.js","webpack:///./node_modules/lodash/_baseHasIn.js","webpack:///./node_modules/lodash/_getData.js","webpack:///./node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/wrapperLodash.js","webpack:///./node_modules/d3-array/src/bisector.js","webpack:///./node_modules/lodash/_baseFindIndex.js","webpack:///./node_modules/lodash/_baseSlice.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_stackDelete.js","webpack:///./node_modules/lodash/_baseUniq.js","webpack:///./node_modules/react-motion/lib/presets.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/RdGy.js","webpack:///./node_modules/lodash/_arrayFilter.js","webpack:///./node_modules/lodash/_getPrototype.js","webpack:///./node_modules/lodash/_baseDifference.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/react-motion/lib/reorderKeys.js","webpack:///./node_modules/lodash/_composeArgsRight.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_getSymbols.js","webpack:///./node_modules/lodash/_isLaziable.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/lodash/_getMatchData.js","webpack:///./node_modules/lodash/_baseClone.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/lodash/_WeakMap.js","webpack:///./node_modules/gatsby-image/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/core-js/modules/es.typed-array.set.js","webpack:///./node_modules/recompose/defaultProps.js","webpack:///./node_modules/lodash/omit.js","webpack:///./node_modules/lodash/_copyArray.js","webpack:///./node_modules/core-js/modules/es.math.hypot.js","webpack:///./node_modules/lodash/_baseKeysIn.js","webpack:///./node_modules/lodash/_getMapData.js","webpack:///./node_modules/lodash/merge.js","webpack:///./node_modules/d3-time/src/interval.js","webpack:///./node_modules/d3-time/src/millisecond.js","webpack:///./node_modules/d3-time/src/second.js","webpack:///./node_modules/d3-time/src/duration.js","webpack:///./node_modules/d3-time/src/minute.js","webpack:///./node_modules/d3-time/src/hour.js","webpack:///./node_modules/d3-time/src/day.js","webpack:///./node_modules/d3-time/src/week.js","webpack:///./node_modules/d3-time/src/month.js","webpack:///./node_modules/d3-time/src/year.js","webpack:///./node_modules/d3-time/src/utcMinute.js","webpack:///./node_modules/d3-time/src/utcHour.js","webpack:///./node_modules/d3-time/src/utcDay.js","webpack:///./node_modules/d3-time/src/utcWeek.js","webpack:///./node_modules/d3-time/src/utcMonth.js","webpack:///./node_modules/d3-time/src/utcYear.js","webpack:///./node_modules/d3-time/src/ticks.js","webpack:///./node_modules/d3-time-format/src/locale.js","webpack:///./node_modules/d3-time-format/src/defaultLocale.js","webpack:///./node_modules/d3-scale/src/time.js","webpack:///./node_modules/@nivo/scales/node_modules/d3-time/src/interval.js","webpack:///./node_modules/@nivo/scales/node_modules/d3-time/src/utcWeek.js","webpack:///./node_modules/@nivo/scales/node_modules/d3-time/src/duration.js","webpack:///./node_modules/@nivo/scales/node_modules/d3-time/src/utcDay.js","webpack:///./node_modules/@nivo/scales/node_modules/d3-time/src/week.js","webpack:///./node_modules/@nivo/scales/node_modules/d3-time/src/day.js","webpack:///./node_modules/@nivo/scales/node_modules/d3-time/src/year.js","webpack:///./node_modules/@nivo/scales/node_modules/d3-time/src/utcYear.js","webpack:///./node_modules/@nivo/scales/node_modules/d3-time-format/src/locale.js","webpack:///./node_modules/@nivo/scales/node_modules/d3-time-format/src/defaultLocale.js","webpack:///./node_modules/@nivo/scales/dist/nivo-scales.esm.js","webpack:///./node_modules/d3-scale/src/utcTime.js","webpack:///./node_modules/lodash/_arraySome.js","webpack:///./node_modules/lodash/_getTag.js","webpack:///./node_modules/lodash/_baseIndexOf.js","webpack:///./node_modules/lodash/_baseRange.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-single/Purples.js","webpack:///./node_modules/lodash/last.js","webpack:///./node_modules/@nivo/annotations/dist/nivo-annotations.esm.js","webpack:///./src/components/charts/vertical-bar-chart.js","webpack:///./src/components/charts/horizontal-bar-chart.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-time/src/interval.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-time/src/millisecond.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-time/src/second.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-time/src/duration.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-time/src/minute.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-time/src/utcMinute.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-time/src/hour.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-time/src/utcHour.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-time/src/day.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-time/src/utcDay.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-time/src/week.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-time/src/utcWeek.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-time/src/month.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-time/src/utcMonth.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-time/src/year.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-time/src/utcYear.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-time-format/src/locale.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-time-format/src/defaultLocale.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-format/src/formatDecimal.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-format/src/exponent.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-format/src/formatSpecifier.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-format/src/formatTrim.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-format/src/formatPrefixAuto.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-format/src/defaultLocale.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-format/src/formatRounded.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-format/src/formatTypes.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-format/src/identity.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-format/src/locale.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-format/src/formatGroup.js","webpack:///./node_modules/@nivo/axes/node_modules/d3-format/src/formatNumerals.js","webpack:///./node_modules/@nivo/axes/dist/nivo-axes.esm.js","webpack:///./node_modules/@nivo/bump/dist/nivo-bump.esm.js","webpack:///./src/components/charts/bump-chart.js","webpack:///./node_modules/d3-shape/src/arc.js","webpack:///./node_modules/d3-shape/src/descending.js","webpack:///./node_modules/d3-shape/src/identity.js","webpack:///./node_modules/d3-shape/src/pie.js","webpack:///./node_modules/@nivo/pie/dist/nivo-pie.esm.js","webpack:///./src/components/charts/pie-chart.js","webpack:///./src/components/charts/line-chart.js","webpack:///./src/components/charts/chart-handler.js","webpack:///./src/components/community-insight.js","webpack:///./node_modules/react-share/es/utils/objectToGetParams.js","webpack:///./node_modules/react-share/es/ShareButton.js","webpack:///./node_modules/react-share/es/hocs/createShareButton.js","webpack:///./node_modules/react-share/es/EmailShareButton.js","webpack:///./node_modules/react-share/es/utils/assert.js","webpack:///./node_modules/react-share/es/FacebookShareButton.js","webpack:///./node_modules/react-share/es/LinkedinShareButton.js","webpack:///./node_modules/react-share/es/TwitterShareButton.js","webpack:///./src/components/social-share.js","webpack:///./src/components/survey-result.js","webpack:///./src/static_queries/useSurveyResultsData.js","webpack:///./src/components/section-list.js","webpack:///./src/components/seo-helper.js","webpack:///./src/pages/index.js","webpack:///./node_modules/lodash/_baseLodash.js","webpack:///./node_modules/lodash/_createCurry.js","webpack:///./node_modules/recompose/mapProps.js","webpack:///./node_modules/lodash/_baseUnset.js","webpack:///./node_modules/d3-shape/src/curve/linear.js","webpack:///./node_modules/lodash/_baseEach.js","webpack:///./node_modules/lodash/_hashClear.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js","webpack:///./node_modules/lodash/toInteger.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/BrBG.js","webpack:///./node_modules/lodash/_baseMergeDeep.js","webpack:///./node_modules/lodash/_setWrapToString.js","webpack:///./node_modules/lodash/flatten.js","webpack:///./node_modules/core-js/internals/array-slice-simple.js","webpack:///./node_modules/core-js/modules/es.array.sort.js","webpack:///./node_modules/lodash/isNumber.js","webpack:///./node_modules/react-measure/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/core-js/internals/engine-webkit-version.js","webpack:///./node_modules/core-js/internals/to-string.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_getHolder.js","webpack:///./node_modules/lodash/_baseGt.js","webpack:///./node_modules/d3-scale/src/tickFormat.js","webpack:///./node_modules/d3-format/src/precisionPrefix.js","webpack:///./node_modules/d3-format/src/precisionRound.js","webpack:///./node_modules/d3-format/src/precisionFixed.js","webpack:///./node_modules/d3-scale/src/linear.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/PiYG.js","webpack:///./node_modules/lodash/_copySymbols.js","webpack:///./node_modules/lodash/_stackHas.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/delaunator/index.js","webpack:///./node_modules/d3-delaunay/src/path.js","webpack:///./node_modules/d3-delaunay/src/polygon.js","webpack:///./node_modules/d3-delaunay/src/voronoi.js","webpack:///./node_modules/d3-delaunay/src/delaunay.js","webpack:///./node_modules/@nivo/voronoi/dist/nivo-voronoi.esm.js","webpack:///./node_modules/d3-interpolate/src/round.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/range.js","webpack:///./node_modules/lodash/without.js","webpack:///./node_modules/lodash/_baseAssign.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js","webpack:///./node_modules/lodash/_baseFlatten.js","webpack:///./node_modules/lodash/_cloneDataView.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js","webpack:///./node_modules/recompose/compose.js","webpack:///./node_modules/lodash/_ListCache.js","webpack:///./node_modules/lodash/_arrayIncludesWith.js","webpack:///./node_modules/lodash/isEqual.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js","webpack:///./node_modules/d3-color/src/define.js","webpack:///./node_modules/lodash/_nativeCreate.js","webpack:///./node_modules/lodash/isPlainObject.js","webpack:///./node_modules/lodash/isDate.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/RdBu.js","webpack:///./node_modules/lodash/_LazyWrapper.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/recompose/node_modules/fbjs/lib/shallowEqual.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/react-motion/lib/mapToZero.js","webpack:///./node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/lodash/toFinite.js","webpack:///./node_modules/lodash/_baseMatches.js","webpack:///./node_modules/lodash/_baseGet.js","webpack:///./node_modules/d3-scale-chromatic/src/colors.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-time/src/interval.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-time/src/millisecond.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-time/src/second.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-time/src/duration.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-time/src/minute.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-time/src/utcMinute.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-time/src/hour.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-time/src/utcHour.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-time/src/day.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-time/src/utcDay.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-time/src/week.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-time/src/utcWeek.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-time/src/month.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-time/src/utcMonth.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-time/src/year.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-time/src/utcYear.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-time-format/src/locale.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-time-format/src/defaultLocale.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-format/src/formatDecimal.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-format/src/exponent.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-format/src/formatSpecifier.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-format/src/formatTrim.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-format/src/formatPrefixAuto.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-format/src/defaultLocale.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-format/src/formatRounded.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-format/src/formatTypes.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-format/src/identity.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-format/src/locale.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-format/src/formatGroup.js","webpack:///./node_modules/@nivo/bar/node_modules/d3-format/src/formatNumerals.js","webpack:///./node_modules/@nivo/bar/node_modules/@nivo/axes/dist/nivo-axes.esm.js","webpack:///./node_modules/lodash/_createHybrid.js","webpack:///./node_modules/lodash/_metaMap.js","webpack:///./node_modules/react-motion/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/lodash/_baseOrderBy.js","webpack:///./node_modules/lodash/_cloneRegExp.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/d3-scale/src/nice.js","webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./node_modules/react-fast-compare/index.js","webpack:///./node_modules/gatsby-plugin-breakpoints/index.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/recompose/getDisplayName.js","webpack:///./node_modules/recompose/setStatic.js","webpack:///./node_modules/lodash/_baseFor.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/recompose/withPropsOnChange.js","webpack:///./node_modules/lodash/_createSet.js","webpack:///./node_modules/lodash/_baseCreate.js","webpack:///./node_modules/lodash/toString.js","webpack:///./node_modules/lodash/_baseExtremum.js","webpack:///./node_modules/lodash/_MapCache.js","webpack:///./node_modules/lodash/_baseIsEqualDeep.js","webpack:///./node_modules/raf/node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/lodash/_arrayMap.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js","webpack:///./node_modules/lodash/_Map.js","webpack:///./node_modules/lodash/_hashHas.js","webpack:///./node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/lodash/_baseGetAllKeys.js","webpack:///./node_modules/react-motion/lib/stepper.js","webpack:///./node_modules/lodash/_Stack.js","webpack:///./node_modules/lodash/_setCacheAdd.js","webpack:///./node_modules/lodash/_stackGet.js","webpack:///./node_modules/lodash/_arrayEach.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Set2.js","webpack:///./node_modules/lodash/_parent.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Accent.js","webpack:///./node_modules/d3-array/src/bisect.js","webpack:///./node_modules/d3-array/src/number.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-single/Blues.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/recompose/wrapDisplayName.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/hasIn.js","webpack:///./node_modules/@nivo/line/node_modules/d3-time/src/interval.js","webpack:///./node_modules/@nivo/line/node_modules/d3-time/src/millisecond.js","webpack:///./node_modules/@nivo/line/node_modules/d3-time/src/second.js","webpack:///./node_modules/@nivo/line/node_modules/d3-time/src/duration.js","webpack:///./node_modules/@nivo/line/node_modules/d3-time/src/minute.js","webpack:///./node_modules/@nivo/line/node_modules/d3-time/src/utcMinute.js","webpack:///./node_modules/@nivo/line/node_modules/d3-time/src/hour.js","webpack:///./node_modules/@nivo/line/node_modules/d3-time/src/utcHour.js","webpack:///./node_modules/@nivo/line/node_modules/d3-time/src/day.js","webpack:///./node_modules/@nivo/line/node_modules/d3-time/src/utcDay.js","webpack:///./node_modules/@nivo/line/node_modules/d3-time/src/week.js","webpack:///./node_modules/@nivo/line/node_modules/d3-time/src/utcWeek.js","webpack:///./node_modules/@nivo/line/node_modules/d3-time/src/month.js","webpack:///./node_modules/@nivo/line/node_modules/d3-time/src/utcMonth.js","webpack:///./node_modules/@nivo/line/node_modules/d3-time/src/year.js","webpack:///./node_modules/@nivo/line/node_modules/d3-time/src/utcYear.js","webpack:///./node_modules/@nivo/line/node_modules/d3-time-format/src/locale.js","webpack:///./node_modules/@nivo/line/node_modules/d3-time-format/src/defaultLocale.js","webpack:///./node_modules/@nivo/line/node_modules/d3-format/src/formatDecimal.js","webpack:///./node_modules/@nivo/line/node_modules/d3-format/src/exponent.js","webpack:///./node_modules/@nivo/line/node_modules/d3-format/src/formatSpecifier.js","webpack:///./node_modules/@nivo/line/node_modules/d3-format/src/formatTrim.js","webpack:///./node_modules/@nivo/line/node_modules/d3-format/src/formatPrefixAuto.js","webpack:///./node_modules/@nivo/line/node_modules/d3-format/src/defaultLocale.js","webpack:///./node_modules/@nivo/line/node_modules/d3-format/src/formatRounded.js","webpack:///./node_modules/@nivo/line/node_modules/d3-format/src/formatTypes.js","webpack:///./node_modules/@nivo/line/node_modules/d3-format/src/identity.js","webpack:///./node_modules/@nivo/line/node_modules/d3-format/src/locale.js","webpack:///./node_modules/@nivo/line/node_modules/d3-format/src/formatGroup.js","webpack:///./node_modules/@nivo/line/node_modules/d3-format/src/formatNumerals.js","webpack:///./node_modules/@nivo/line/node_modules/@nivo/axes/dist/nivo-axes.esm.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_basePickBy.js","webpack:///./node_modules/lodash/_createBind.js","webpack:///./node_modules/lodash/_safeGet.js","webpack:///./node_modules/d3-shape/src/curve/basis.js","webpack:///./node_modules/d3-scale-chromatic/node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3-scale-chromatic/node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3-scale-chromatic/node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3-scale-chromatic/src/ramp.js","webpack:///./node_modules/lodash/_baseLt.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js","webpack:///./node_modules/lodash/_arrayIncludes.js","webpack:///./node_modules/lodash/toPlainObject.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/lodash/filter.js","webpack:///./node_modules/react-motion/lib/shouldStopAnimation.js","webpack:///./node_modules/@nivo/bar/dist/nivo-bar.esm.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/_baseMap.js","webpack:///./node_modules/lodash/_createBaseEach.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/_baseIsMatch.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js","webpack:///./node_modules/lodash/keysIn.js","webpack:///./node_modules/lodash/_createBaseFor.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/get.js","webpack:///./node_modules/d3-scale/src/log.js","webpack:///./node_modules/lodash/_baseFilter.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/react-motion/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/lodash/_getSymbolsIn.js","webpack:///./node_modules/lodash/_equalArrays.js","webpack:///./node_modules/lodash/_cloneSymbol.js","webpack:///./node_modules/d3-format/src/exponent.js","webpack:///./node_modules/react-motion/lib/TransitionMotion.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/react-motion/lib/mergeDiff.js","webpack:///./node_modules/lodash/_reorder.js","webpack:///./node_modules/lodash/_mergeData.js","webpack:///./node_modules/lodash/max.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-single/Greys.js","webpack:///./node_modules/lodash/uniqBy.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/category10.js","webpack:///./node_modules/core-js/internals/array-buffer-native.js","webpack:///./node_modules/lodash/_getAllKeys.js","webpack:///./node_modules/react-helmet/es/Helmet.js","webpack:///./node_modules/d3-format/src/formatDecimal.js","webpack:///./node_modules/d3-shape/src/order/none.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Pastel1.js","webpack:///./node_modules/lodash/_setToArray.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js","webpack:///./node_modules/core-js/internals/array-sort.js","webpack:///./node_modules/lodash/_baseSetData.js","webpack:///./node_modules/d3-array/src/range.js","webpack:///./node_modules/d3-scale/src/band.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_baseIsDate.js","webpack:///./node_modules/lodash/_equalObjects.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Pastel2.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/PRGn.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js","webpack:///./node_modules/lodash/_assignMergeValue.js","webpack:///./node_modules/lodash/_countHolders.js","webpack:///./node_modules/react-measure/node_modules/prop-types/index.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/react-measure/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/react-motion/lib/spring.js","webpack:///./node_modules/lodash/_DataView.js","webpack:///./node_modules/react-motion/lib/stripStyle.js","webpack:///./node_modules/lodash/_hashGet.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js","webpack:///./node_modules/lodash/_getWrapDetails.js","webpack:///./node_modules/react-motion/lib/StaggeredMotion.js","webpack:///./node_modules/lodash/_baseIteratee.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-single/Greens.js","webpack:///./node_modules/lodash/noop.js","webpack:///./node_modules/lodash/_baseIsSet.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Paired.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js","webpack:///./node_modules/lodash/_baseIsEqual.js","webpack:///./node_modules/d3-shape/src/array.js","webpack:///./node_modules/d3-shape/src/stack.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/recompose/setPropTypes.js","webpack:///./node_modules/lodash/_initCloneByTag.js","webpack:///./node_modules/recompose/withProps.js","webpack:///./node_modules/react-motion/lib/Motion.js","webpack:///./node_modules/raf/index.js","webpack:///./node_modules/lodash/_wrapperClone.js","webpack:///./node_modules/lodash/_cacheHas.js","webpack:///./node_modules/lodash/_flatRest.js","webpack:///./node_modules/lodash/sortBy.js","webpack:///./node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/lodash/_composeArgs.js","webpack:///./node_modules/lodash.get/index.js","webpack:///./node_modules/lodash/_Set.js","webpack:///./node_modules/lodash/_initCloneArray.js","webpack:///./node_modules/lodash/_cloneTypedArray.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js","webpack:///./node_modules/d3-shape/src/noop.js","webpack:///./node_modules/d3-shape/src/curve/basisClosed.js","webpack:///./node_modules/d3-shape/src/curve/basisOpen.js","webpack:///./node_modules/d3-shape/src/curve/bundle.js","webpack:///./node_modules/d3-shape/src/curve/cardinal.js","webpack:///./node_modules/d3-shape/src/curve/cardinalClosed.js","webpack:///./node_modules/d3-shape/src/curve/cardinalOpen.js","webpack:///./node_modules/d3-shape/src/curve/catmullRom.js","webpack:///./node_modules/d3-shape/src/curve/catmullRomClosed.js","webpack:///./node_modules/d3-shape/src/curve/catmullRomOpen.js","webpack:///./node_modules/d3-shape/src/curve/linearClosed.js","webpack:///./node_modules/d3-shape/src/curve/monotone.js","webpack:///./node_modules/d3-shape/src/curve/natural.js","webpack:///./node_modules/d3-shape/src/curve/step.js","webpack:///./node_modules/d3-shape/src/order/ascending.js","webpack:///./node_modules/d3-shape/src/order/appearance.js","webpack:///./node_modules/d3-shape/src/order/insideOut.js","webpack:///./node_modules/d3-hierarchy/src/treemap/dice.js","webpack:///./node_modules/d3-hierarchy/src/treemap/slice.js","webpack:///./node_modules/d3-hierarchy/src/treemap/squarify.js","webpack:///./node_modules/d3-hierarchy/src/treemap/resquarify.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/count.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/index.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/each.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/path.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/links.js","webpack:///./node_modules/@nivo/core/node_modules/d3-format/src/formatDecimal.js","webpack:///./node_modules/@nivo/core/node_modules/d3-format/src/exponent.js","webpack:///./node_modules/@nivo/core/node_modules/d3-format/src/formatSpecifier.js","webpack:///./node_modules/@nivo/core/node_modules/d3-format/src/formatTrim.js","webpack:///./node_modules/@nivo/core/node_modules/d3-format/src/formatPrefixAuto.js","webpack:///./node_modules/@nivo/core/node_modules/d3-format/src/defaultLocale.js","webpack:///./node_modules/@nivo/core/node_modules/d3-format/src/formatRounded.js","webpack:///./node_modules/@nivo/core/node_modules/d3-format/src/formatTypes.js","webpack:///./node_modules/@nivo/core/node_modules/d3-format/src/identity.js","webpack:///./node_modules/@nivo/core/node_modules/d3-format/src/locale.js","webpack:///./node_modules/@nivo/core/node_modules/d3-format/src/formatGroup.js","webpack:///./node_modules/@nivo/core/node_modules/d3-format/src/formatNumerals.js","webpack:///./node_modules/@nivo/core/node_modules/d3-time/src/interval.js","webpack:///./node_modules/@nivo/core/node_modules/d3-time/src/utcWeek.js","webpack:///./node_modules/@nivo/core/node_modules/d3-time/src/duration.js","webpack:///./node_modules/@nivo/core/node_modules/d3-time/src/utcDay.js","webpack:///./node_modules/@nivo/core/node_modules/d3-time/src/week.js","webpack:///./node_modules/@nivo/core/node_modules/d3-time/src/day.js","webpack:///./node_modules/@nivo/core/node_modules/d3-time/src/year.js","webpack:///./node_modules/@nivo/core/node_modules/d3-time/src/utcYear.js","webpack:///./node_modules/@nivo/core/node_modules/d3-time-format/src/locale.js","webpack:///./node_modules/@nivo/core/node_modules/d3-time-format/src/defaultLocale.js","webpack:///./node_modules/@nivo/core/node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/@nivo/core/node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/@nivo/core/node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/@nivo/core/node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/@nivo/core/node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/@nivo/core/node_modules/d3-interpolate/src/numberArray.js","webpack:///./node_modules/@nivo/core/node_modules/d3-interpolate/src/array.js","webpack:///./node_modules/@nivo/core/node_modules/d3-interpolate/src/date.js","webpack:///./node_modules/@nivo/core/node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/@nivo/core/node_modules/d3-interpolate/src/object.js","webpack:///./node_modules/@nivo/core/node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/@nivo/core/node_modules/d3-interpolate/src/value.js","webpack:///./node_modules/@nivo/core/dist/nivo-core.esm.js","webpack:///./node_modules/d3-shape/src/order/descending.js","webpack:///./node_modules/d3-shape/src/order/reverse.js","webpack:///./node_modules/d3-shape/src/offset/expand.js","webpack:///./node_modules/d3-shape/src/offset/silhouette.js","webpack:///./node_modules/d3-shape/src/offset/wiggle.js","webpack:///./node_modules/d3-hierarchy/src/treemap/binary.js","webpack:///./node_modules/d3-hierarchy/src/treemap/sliceDice.js","webpack:///./node_modules/lodash/_compareAscending.js","webpack:///./node_modules/d3-scale-chromatic/node_modules/d3-interpolate/src/cubehelix.js","webpack:///./node_modules/lodash/isMap.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash.isplainobject/index.js","webpack:///./node_modules/lodash/_baseToString.js"],"names":["assocIndexOf","module","exports","key","this","__data__","Uint8Array","arrayBuffer","result","constructor","byteLength","set","global","toIntegerOrInfinity","RangeError","it","Stack","assignMergeValue","baseFor","baseMergeDeep","isObject","keysIn","safeGet","baseMerge","object","source","srcIndex","customizer","stack","srcValue","newValue","undefined","baseProperty","basePropertyDeep","isKey","toKey","path","baseCreate","getPrototype","isPrototype","x","y","defined","context","curve","output","line","data","i","d","buffer","n","length","defined0","lineStart","lineEnd","point","_","arguments","baseGetTag","isObjectLike","value","p","arrayEach","arrayIncludes","wrapFlags","details","bitmask","pair","push","sort","baseIsArguments","objectProto","Object","prototype","hasOwnProperty","propertyIsEnumerable","isArguments","call","apply","createCtor","root","func","thisArg","partials","isBind","Ctor","wrapper","argsIndex","argsLength","leftIndex","leftLength","args","Array","fn","ListCache","Map","MapCache","pairs","LARGE_ARRAY_SIZE","size","_defineProperty","obj","defineProperty","enumerable","configurable","writable","categoricalColorSchemes","nivo","category10","accent","dark2","paired","pastel1","pastel2","set1","set2","set3","categoricalColorSchemeIds","keys","divergingColorSchemes","brown_blueGreen","purpleRed_green","pink_yellowGreen","purple_orange","red_blue","red_grey","red_yellow_blue","red_yellow_green","spectral","divergingColorSchemeIds","sequentialColorSchemes","blues","greens","greys","oranges","purples","reds","blue_green","blue_purple","green_blue","orange_red","purple_blue_green","purple_blue","purple_red","red_purple","yellow_green_blue","yellow_green","yellow_orange_brown","yellow_orange_red","sequentialColorSchemeIds","colorSchemes","target","ownKeys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","forEach","_objectSpread","colorSchemeIds","colorInterpolators","viridis","inferno","magma","plasma","warm","cool","cubehelixDefault","rainbow","sinebow","getOrdinalColorScale","instruction","identity","scheme","getIdentity","isArray","scale","generator","datum","includes","_scale","_generator","isDivergingColorScheme","Error","_scale2","_generator2","isSequentialColorScheme","_scale3","_generator3","useOrdinalColorScale","_slicedToArray","arr","_arrayWithHoles","Symbol","iterator","toString","_arr","_n","_d","_e","_s","_i","next","done","err","_iterableToArrayLimit","TypeError","_nonIterableRest","getInheritedColorGenerator","inheritedColor","theme","node","themeColor","from","getColor","modifiers","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_loop","_modifier","modifierType","amount","color","brighter","darker","opacity","_iterator","return","reduce","modify","useInheritedColor","parentColor","ordinalColorsPropType","oneOfType","arrayOf","string","shape","oneOf","isRequired","number","colorPropertyAccessorPropType","inheritedColorPropType","array","series","j","s0","s1","order","m","isNaN","uncurryThis","anObject","aPossiblePrototype","setPrototypeOf","setter","CORRECT_SETTER","test","error","O","proto","__proto__","_interopRequire","__esModule","_Motion","Motion","_StaggeredMotion","StaggeredMotion","_TransitionMotion","TransitionMotion","_spring","spring","_presets","presets","_stripStyle","stripStyle","_reorderKeys","reorderKeys","baseIsSet","baseUnary","nodeUtil","nodeIsSet","isSet","tooltipStyle","pointerEvents","position","zIndex","top","left","TooltipWrapper","_ref","anchor","children","_useState2","dimensions","setDimensions","_useMotionConfig","animate","springConfig","Math","round","style","tooltip","transform","createElement","client","offset","bounds","margin","onResize","_ref2","width","height","_ref3","measureRef","ref","animatedPosition","_ref4","_ref5","_objectSpread$1","_defineProperty$1","displayName","defaultProps","Chip","display","background","BasicTooltip","content","id","_value","format","enableChip","renderContent","formatValue","basic","chip","String","container","_objectSpread$2","_defineProperty$2","tableStyle","borderCollapse","TableTooltip","title","rows","table","map","row","column","tableCell","crosshairPropTypes","type","_defineProperty$3","CrosshairLine","x0","x1","y0","y1","_objectSpread$3","crosshair","x2","y2","fill","Crosshair","xLine","yLine","Fragment","tooltipContext","_slicedToArray$1","_arrayWithHoles$1","_iterableToArrayLimit$1","_nonIterableRest$1","useTooltipHandlers","isVisible","state","setState","showTooltipAt","showTooltipFromEvent","event","current","getBoundingClientRect","clientX","clientY","hideTooltip","isTooltipVisible","tooltipPosition","tooltipAnchor","tooltipContent","useTooltip","initRange","domain","range","initInterpolator","interpolator","comparer","setCacheAdd","setCacheHas","SetCache","values","index","add","has","UA","coreJsData","reWrapComment","lastIndex","join","replace","funcToString","Function","e","isArrayLike","_createForOfIteratorHelper","o","allowArrayLike","minLen","_arrayLikeToArray","slice","name","_unsupportedIterableToArray","F","s","f","normalCompletion","didErr","step","_e2","len","arr2","implicit","ordinal","unknown","get","copy","baseGet","memoize","resolver","memoized","cache","Cache","area","k","x0z","y0z","areaStart","areaEnd","arealine","lineX0","lineY0","lineY1","lineX1","isPlainObject","hasOwn","isCallable","toObject","sharedKey","CORRECT_PROTOTYPE_GETTER","IE_PROTO","ObjectPrototype","getPrototypeOf","fails","dy","yp","yn","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","entries","clear","entry","castPath","isIndex","isLength","hasFunc","stringToPath","a","b","t","freeExports","nodeType","freeModule","Buffer","allocUnsafe","isDeep","isLaziable","setData","setWrapToString","wrapFunc","placeholder","holders","argPos","ary","arity","isCurry","newData","baseFlatten","toInteger","depth","NAME","Constructor","Prototype","NATIVE_ARRAY_BUFFER","DESCRIPTORS","classof","tryToString","createNonEnumerableProperty","defineBuiltIn","isPrototypeOf","wellKnownSymbol","uid","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","isTypedArray","klass","aTypedArray","aTypedArrayConstructor","C","exportTypedArrayMethod","KEY","property","forced","options","ARRAY","TypedArrayConstructor","error2","exportTypedArrayStaticMethod","isView","resIndex","_interopRequireDefault","default","_shouldUpdate","_shallowEqual","_default","BaseComponent","props","nextProps","hoc","baseSetData","createBind","createCurry","createHybrid","createPartial","getData","mergeData","nativeMax","max","isBindKey","partialsRight","holdersRight","unit","normalize","NaN","bimap","interpolate","d0","d1","r0","r1","polymap","min","r","reverse","bisect","clamp","transformer","untransform","piecewise","input","rescale","invert","rangeRound","u","continuous","baseLodash","LodashWrapper","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","basis","t1","v0","v1","v2","v3","t2","t3","linear","gamma","nogamma","pow","exponential","constant","rgb","start","end","g","rgbGamma","rgbSpline","spline","colors","floor","c","isNumberArray","ArrayBuffer","DataView","genericArray","nb","na","Date","setTime","reA","reB","RegExp","am","bm","bs","bi","q","exec","one","zero","date","numberArray","valueOf","pi","PI","tau","tauEpsilon","Path","_x0","_y0","_x1","_y1","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","arcTo","x21","y21","x01","y01","l01_2","abs","x20","y20","l21_2","l20_2","l21","sqrt","l01","l","tan","acos","t01","t21","arc","a0","a1","ccw","dx","cos","sin","cw","da","rect","w","h","_setStatic","arrayLikeKeys","baseKeys","require","e10","e5","e2","tickIncrement","stop","count","power","log","LN10","tickStep","step0","step1","ticks","isFinite","_r","_r2","baseUniq","ex","React","React__default","canUseDOM","window","document","reducePropsToState","handleStateChangeOnClient","mapStateOnServer","WrappedComponent","mountedInstances","emitChange","instance","SideEffect","_PureComponent","subClass","superClass","create","peek","rewind","recordedState","_proto","UNSAFE_componentWillMount","componentDidUpdate","componentWillUnmount","indexOf","splice","render","PureComponent","getDisplayName","nativeNow","now","lastCalled","stamp","remaining","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","nextTick","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","shortOut","_inheritsLoose2","_react","factory","createFactory","_Component","ShouldUpdate","shouldComponentUpdate","Component","isSymbol","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tag","tryGet","callee","io","_assertThisInitialized2","_objectWithoutPropertiesLoose2","_extends2","_propTypes","convertProps","convertedProps","resolutions","sizes","critical","fixed","fluid","loading","groupByMedia","matchesMedia","media","isBrowser","matchMedia","matches","getImageCacheKey","srcData","getCurrentSrcData","src","currentData","some","image","hasArtDirectionSupport","foundMedia","findIndex","noMedia","imageCache","inImageCache","cacheKey","hasNativeLazyLoadSupport","HTMLImageElement","hasIOSupport","IntersectionObserver","WeakMap","generateImageSources","imageVariants","srcSet","srcSetWebp","withMedia","without","variant","generateTracedSVGSources","tracedSVG","generateBase64Sources","base64","generateNoscriptSource","_ref6","isWebp","listenToIntersections","el","cb","observer","isIntersecting","intersectionRatio","unobserve","delete","rootMargin","observe","noscriptImg","alt","crossOrigin","draggable","Placeholder","forwardRef","generateSources","spreadProps","ariaHidden","baseImage","Img","onLoad","onError","otherProps","objectFit","objectPosition","propTypes","Image","_React$Component","_this","seenBefore","isCritical","addNoScript","fadeIn","useIOSupport","imgLoaded","imgCached","imageRef","createRef","placeholderRef","handleImageLoaded","bind","handleRef","componentDidMount","onStartLoad","wasCached","img","complete","cleanUpListeners","_this2","imageInCache","currentSrc","_convertProps","className","_convertProps$style","_convertProps$imgStyl","imgStyle","_convertProps$placeho","placeholderStyle","placeholderClassName","backgroundColor","durationFadeIn","Tag","itemProp","shouldReveal","shouldFadeIn","imageStyle","transition","bgColor","delayHideStyle","transitionDelay","imagePlaceholderStyle","placeholderImageProps","overflow","maxWidth","maxHeight","JSON","stringify","paddingBottom","aspectRatio","bottom","right","dangerouslySetInnerHTML","__html","_imageVariants","_image","divStyle","fixedObject","srcWebp","fluidObject","requireFixedOrFluid","originalPropTypes","propName","componentName","_PropTypes$checkPropT","checkPropTypes","bool","reIsDeepProp","reIsPlainProp","nativeKeys","baseExtremum","baseLt","nativeObjectToString","symToStringTag","toStringTag","isOwn","unmasked","withBreakpoints","_BreakpointProvider","breakpoints","useBreakpoint","firefox","match","spreadableSymbol","isConcatSpreadable","pi_1_3","pi_2_3","legendEffectPropType","itemTextColor","itemBackground","itemOpacity","symbolSize","symbolBorderWidth","symbolBorderColor","symbolPropTypes","symbolShape","symbolSpacing","interactivityPropTypes","onClick","onMouseEnter","onMouseLeave","datumPropType","label","LegendPropShape","translateX","translateY","direction","itemsSpacing","itemWidth","itemHeight","itemDirection","effects","zeroPadding","computeDimensions","padding","_padding","itemCount","horizontalPadding","verticalPadding","spacing","computePositionFromAnchor","containerWidth","containerHeight","computeItemLayout","symbolX","symbolY","labelX","labelY","labelAnchor","labelAlignment","justify","symbolPropTypes$1","borderWidth","borderColor","symbolDefaultProps","_typeof","_classCallCheck","_defineProperties","descriptor","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","_getPrototypeOf","_setPrototypeOf","SymbolCircle","protoProps","staticProps","_inherits","_this$props","cx","cy","strokeWidth","stroke","_typeof$1","_classCallCheck$1","_defineProperties$1","_possibleConstructorReturn$1","_assertThisInitialized$1","_getPrototypeOf$1","_setPrototypeOf$1","SymbolDiamond","_inherits$1","_objectSpread$4","_defineProperty$4","_typeof$2","_classCallCheck$2","_defineProperties$2","_possibleConstructorReturn$2","_assertThisInitialized$2","_getPrototypeOf$2","_setPrototypeOf$2","SymbolSquare","_inherits$2","_objectSpread$5","_defineProperty$5","_typeof$3","_classCallCheck$3","_defineProperties$3","_possibleConstructorReturn$3","_assertThisInitialized$3","_getPrototypeOf$3","_setPrototypeOf$3","SymbolTriangle","_inherits$3","_objectSpread$6","_defineProperty$6","symbolByShape","circle","diamond","square","triangle","LegendSvgItem","_Symbol","textColor","setStyle","handleClick","handleMouseEnter","_style","acc","effect","handleMouseLeave","_style2","_computeItemLayout","isInteractive","handler","cursor","textAnchor","legends","text","dominantBaseline","userSelect","LegendSvg","xStep","yStep","BoxLegendSvg","_computeDimensions","_computePositionFromA","textPropsMapping","align","middle","baseline","hanging","central","renderLegendToCanvas","ctx","_ref$translateX","_ref$translateY","_ref$padding","_ref$justify","_ref$itemsSpacing","_ref$itemDirection","_ref$itemTextColor","_ref$symbolSize","_ref$symbolSpacing","save","translate","font","fontSize","fontFamily","itemX","itemY","fillStyle","fillRect","textAlign","textBaseline","fillText","restore","_extends","assign","getTypes","allowedTypes","getContentRect","types","calculations","clientTop","clientLeft","clientWidth","clientHeight","offsetTop","offsetLeft","offsetWidth","offsetHeight","scroll","scrollTop","scrollLeft","scrollWidth","scrollHeight","styles","getComputedStyle","parseInt","marginTop","marginRight","marginBottom","marginLeft","getWindowOf","ownerDocument","defaultView","_class","_temp","Measure","measure","contentRect","WithContentRect","_len","_key","_animationFrameID","_resizeObserver","_node","_window","requestAnimationFrame","_handleRef","innerRef","ResizeObserver","cancelAnimationFrame","disconnect","excluded","sourceKeys","_objectWithoutPropertiesLoose","atan2","epsilon","halfPi","asin","fromIndex","re","formatSpecifier","specifier","FormatSpecifier","sign","symbol","comma","precision","trim","baseIsNative","getValue","baseSet","stubFalse","isBuffer","copyObject","maskSrcKey","overRest","setToString","getSymbolsIn","hue","realNames","otherFunc","prefixExponent","formatDecimal","coefficient","exponent","toFixed","toExponential","toPrecision","_p","formatRounded","toUpperCase","_x","prefixes","group","locale","grouping","thousands","Number","substring","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","percent","minus","nan","newFormat","formatTypes","prefix","toLowerCase","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","i1","i0","formatTrim","charCodeAt","Infinity","formatPrefix","thisBinding","PointTooltip","xFormatted","yFormatted","serieColor","SliceTooltip$1","otherAxis","axis","points","serieId","commonPropTypes","instanceOf","xScale","xFormat","yScale","yFormat","layers","axisTop","axisRight","axisBottom","axisLeft","enableGridX","enableGridY","gridXValues","gridYValues","enablePoints","pointSymbol","pointSize","pointColor","any","pointBorderWidth","pointBorderColor","markers","enableArea","areaOpacity","areaBlendMode","areaBaselineValue","lineWidth","debugMesh","tooltipFormat","enableSlices","debugSlices","sliceTooltip","enableCrosshair","crosshairType","commonDefaultProps","enablePointLabel","useMesh","pixelRatio","LineDefaultProps","motionStiffness","motionDamping","defs","LineCanvasDefaultProps","devicePixelRatio","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","useLine","_ref9","_ref9$xScale","xScaleSpec","_ref9$yScale","yScaleSpec","_ref9$colors","_ref9$curve","_ref9$areaBaselineVal","_ref9$pointColor","_ref9$pointBorderColo","_ref9$enableSlices","enableSlicesTooltip","formatX","formatY","getPointColor","getPointBorderColor","_useMemo","rawSeries","serie","usePoints","slices","slicePoints","prevSlice","nextSlice","_map","_ref7","sliceHeight","_ref8","useSlices","lineGenerator","useLineGenerator","areaGenerator","useAreaGenerator","Areas$1","lines","areaColor","fillOpacity","mixBlendMode","LinesItem$1","thickness","Lines$1","SlicesItem$1","debug","isCurrent","setCurrent","_useTooltip","handleMouseMove","strokeOpacity","onMouseMove","Slices$1","Points","enableLabel","labelYOffset","getLabel","mappedPoints","interpolatedStyles","Points$1","Mesh$1","nodes","_extends$1","Line","partialMargin","pointLabel","pointLabelFormat","pointLabelYOffset","_useDimensions","innerWidth","innerHeight","outerWidth","outerHeight","_useLine","currentPoint","setCurrentPoint","_useState4","currentSlice","setCurrentSlice","legendData","layerById","grid","xValues","yValues","axes","areas","mesh","legend","boundDefs","labelFormat","layer","Line$1","_extends$2","ResponsiveLine","_slicedToArray$2","_arrayWithHoles$2","_iterableToArrayLimit$2","_nonIterableRest$2","LineCanvas","canvasEl","_useVoronoiMesh","delaunay","voronoi","getContext","strokeStyle","globalAlpha","beginPath","getPointFromMouseEvent","_getRelativeCursor2","pointIndex","find","handleMouseHover","assignValue","nested","objValue","deg2rad","rad2deg","A","B","D","E","ED","EB","BC_DA","cubehelixConvert","Cubehelix","bl","cubehelix","define","cosh","sinh","basePickBy","hasIn","paths","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","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgba","hsla","rgbConvert","rgb_formatHex","hex","rgb_formatRgb","Hsl","hslConvert","hsl2rgb","m1","m2","channels","displayable","formatHsl","baseGetAllKeys","toPositiveInteger","BYTES","baseIsEqual","isStrictComparable","matchesStrictComparable","COMPARE_PARTIAL_FLAG","memoizeCapped","rePropName","reEscapeChar","quote","subString","getTag","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","location","propFullName","secret","getShim","ReactPropTypes","bigint","element","elementType","objectOf","exact","PropTypes","getMapData","eq","equalArrays","mapToArray","setToArray","symbolProto","symbolValueOf","other","equalFunc","byteOffset","message","convert","isPartial","stacked","baseRange","isIterateeCall","toFinite","fromRight","Promise","getNative","compareAscending","orders","objCriteria","criteria","othCriteria","ordersLength","aCallable","internalSort","ArrayBufferViewCore","FF","IE_OR_EDGE","V8","WEBKIT","un$Sort","ACCEPT_INCORRECT_ARGUMENTS","STABLE_SORT","mod","expected","comparefn","getSortCompare","otherArgs","iteratee","baseRest","createWrap","getHolder","replaceHolders","partialRight","nativeCreate","basePick","pick","flatRest","metaMap","LazyWrapper","wrapperClone","lodash","delta","compare","lo","hi","mid","ascendingComparator","center","predicate","freeGlobal","freeSelf","arrayIncludesWith","cacheHas","createSet","comparator","isCommon","seen","outer","computed","seenIndex","noWobble","stiffness","damping","gentle","wobbly","stiff","overArg","arrayMap","valuesLength","valuesIndex","assigner","sources","guard","isCurried","holdersIndex","holdersLength","rightIndex","rightLength","rangeLength","isUncurried","isFunction","baseAssignValue","arrayFilter","stubArray","nativeGetSymbols","getSymbols","getFuncName","funcName","isMasked","toSource","reIsHostCtor","funcProto","reIsNative","getRawTag","objectToString","argument","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","initCloneArray","initCloneByTag","initCloneObject","isMap","cloneableTags","baseClone","isFlat","isFull","isArr","isFunc","subValue","keysFunc","unsupportedIterableToArray","lengthOfArrayLike","toOffset","toIndexedObject","$set","WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS","0","TO_OBJECT_BUG","arrayLike","DefaultProps","ownerProps","baseUnset","customOmitClone","omit","CLONE_DEEP_FLAG","$","$hypot","hypot","stat","value1","value2","arg","div","sum","aLen","larg","nativeKeysIn","isProto","isKeyable","merge","createAssigner","t0","newInterval","floori","offseti","field","interval","ceil","previous","every","millisecond","getMilliseconds","getUTCSeconds","getSeconds","durationSecond","getMinutes","durationMinute","getHours","setHours","setDate","getDate","getTimezoneOffset","durationHour","weekday","getDay","durationDay","sunday","monday","tuesday","wednesday","thursday","friday","saturday","setMonth","getMonth","getFullYear","setFullYear","utcMinute","setUTCSeconds","getUTCMinutes","utcHour","setUTCMinutes","getUTCHours","utcDay","setUTCHours","setUTCDate","getUTCDate","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","utcYear","setUTCFullYear","ticker","year","month","week","day","hour","minute","tickIntervals","tickInterval","bisector","_tickIntervals","_ticker","_ticker2","utcTicks","utcTickInterval","_ticker3","_ticker4","timeTicks","timeTickInterval","localDate","H","M","S","L","utcDate","UTC","newDate","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","names","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","U","parseWeekNumberISO","V","parseWeekNumberMonday","W","parseFullYear","parseYear","parseZone","Z","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","Q","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYearISO","formatFullYear","formatFullYearISO","formatZone","z","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","locale_dateTime","dateTime","locale_date","locale_time","time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","charAt","newParse","parse","X","utcParse","formatLocale","calendar","second","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","formatYear","tickFormat","nice","definition","_precisionCutOffsByTy","linearScalePropTypes","logScalePropTypes","base","pointScalePropTypes","timePrecisions","precisionCutOffs","setMilliseconds","setSeconds","setMinutes","precisionCutOffsByType","_ref$format","_ref$precision","_ref$useUTC","useUTC","precisionFn","cutOff","createPrecisionMethod","v","parseTime","xy","_ref$min","_ref$max","minValue","maxValue","init","timeScalePropTypes","getOtherAxis","compareValues","compareDateValues","getTime","computeXYScalesForSeries","_series","generateSeriesXY","stackX","stackY","computeScale","xStacked","yStacked","spec","_ref$stacked","_ref$reverse","minStacked","maxStacked","all","_ref$base","hasZero","hasMixedSign","scaleSpec","_ref$getValue","_ref$setValue","setValue","parseFloat","otherType","stackValue","head","scalePropType","Set","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","resolve","ctorString","baseFindIndex","baseIsNaN","strictIndexOf","nativeCeil","noteX","noteY","noteWidth","noteTextOffset","note","defaultPositionAccessor","item","bindAnnotations","items","annotations","_ref$getPosition","getPosition","getDimensions","annotation","computeAnnotation","computedNoteX","computedNoteY","_ref2$noteWidth","_ref2$noteTextOffset","computedX","computedY","angle","sourceX","sourceY","targetX","targetY","getLinkAngle","eighth","textX","noteLineX","useAnnotations","AnnotationNote","outlineWidth","strokeLinejoin","outlineColor","AnnotationLink","isOutline","link","strokeLinecap","interpolated","CircleAnnotationOutline","outline","DotAnnotationOutline","RectAnnotationOutline","Annotation","useComputedAnnotation","VerticalBarChart","chartData","xmlChildren","child","sm","md","substr","attributes","total","fillSettings","tickRotation","uses_legend","colorBy","stagger","rotation","tickSize","tickPadding","question","legendPosition","legendOffset","labelSkipWidth","labelSkipHeight","labelTextColor","dataFrom","HorizontalBarChart","layout","renderTick","tick","splitTickValue","split","formatDecimalParts","toLocaleString","centerScale","bandwidth","timeByType","timeTypes","timeIntervalRegexp","timeType","ticksPosition","tickValues","_ref$engine","engine","textProps","lineX","lineY","textY","format$1","_values","lineValues","lineCount","axisPropTypes","axisPropType","rotate","_onClick","gStyle","AxisTick$1","willEnter","_ref$style","val","_computeCartesianTick","legendNode","legendX","legendY","legendRotation","tickIndex","willLeave","Axis$1","positions","Axes$1","isXAxis","GridLine$1","_extends$3","GridLines$1","lineWillEnter","lineWillLeave","interpolatedStyle","Grid$1","xLines","yLines","xPadding","xOuterPadding","yOuterPadding","linePointPadding","rawSerie","linePoints","interpolation","activeLineWidth","inactiveLineWidth","activeOpacity","inactiveOpacity","activePointSize","inactivePointSize","activePointBorderWidth","inactivePointBorderWidth","currentSerie","getSerieStyle","getLineWidth","getActiveLineWidth","getInactiveLineWidth","getOpacity","getActiveOpacity","getInactiveOpacity","getNormalStyle","getActiveStyle","getInactiveStyle","getPointStyle","getSize","getActiveSize","getInactiveSize","getBorderWidth","getActiveBorderWidth","getInactiveBorderWidth","pts","rawPoint","isActive","isInactive","LineTooltip$1","pointStyle","Point$1","startLabel","startLabelPadding","startLabelTextColor","endLabel","endLabelPadding","endLabelTextColor","pointComponent","BumpDefaultProps","AnimatedLine$1","StaticLine$1","handlers","setCurrentSerie","LineComponent","LinesLabels$1","labels","signedPadding","_useBump","Bump$1","AreaTooltip$1","blendMode","activeFillOpacity","inactiveFillOpacity","activeBorderWidth","inactiveBorderWidth","borderOpacity","activeBorderOpacity","inactiveBorderOpacity","AreaBumpDefaultProps","maxSum","maxValues","heightScale","previousValues","pos","beforeValue","sliceValue","beforeHeight","areaPointPadding","serieCopy","areaPoints","computeSeries$1","useSerieDerivedProp$1","_useAreaBumpSeries","getFillOpacity","getActiveFillOpacity","getInactiveFillOpacity","getBorderColor","getBorderOpacity","getActiveBorderOpacity","getInactiveBorderOpacity","useSerieStyle$1","AnimatedArea$1","StaticArea$1","Area$1","useSerieHandlers$1","AreaComponent","AreasLabels$1","useSeriesLabels$1","_defineProperty$7","_useAreaBump","targetKey","_objectSpread$7","BumpChart","response","yearData","ranking","console","custom_scheme","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","intersect","x3","y3","x10","y10","x32","y32","cornerTangents","rc","ox","oy","x11","y11","x00","y00","d2","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cornerRadius","padRadius","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","ax","ay","bx","by","kc","lc","centroid","sortValues","descending","pie","arcs","pa","_objectWithoutProperties","sourceSymbolKeys","PieLayout","arcGenerator","centerX","centerY","radius","fit","sortByValue","box","ratio","PieLayoutDefaultProps","PieLayout$1","boundingBox","_innerRadius","_computeArcBoundingBo","adjustedBox","pie$1","angleDeg","arcPropType","PiePropTypes","enableRadialLabels","radialLabel","radialLabelsSkipAngle","radialLabelsTextXOffset","radialLabelsTextColor","radialLabelsLinkOffset","radialLabelsLinkDiagonalLength","radialLabelsLinkHorizontalLength","radialLabelsLinkStrokeWidth","radialLabelsLinkColor","enableSlicesLabels","sliceLabel","slicesLabelsSkipAngle","slicesLabelsTextColor","lockTooltip","PieDefaultProps","PieSlice$1","enhance$1","showTooltip","handleTooltip","skipAngle","linkOffset","linkDiagonalLength","linkHorizontalLength","textXOffset","positionC","labelPosition","positionA","positionB","PieRadialLabels","linkStrokeWidth","linkColor","svg","sliceStyle","PieSlicesLabels","centerRadius","PieLegends","PieLegends$1","_ref2$data","enhance$2","_typeof$4","_classCallCheck$4","_defineProperties$4","_possibleConstructorReturn$4","_assertThisInitialized$4","_getPrototypeOf$4","_setPrototypeOf$4","Pie","_inherits$4","_borderColor","getRadialLabel","getSliceLabel","dataKey","Pie$1","enhance$3","getTextColor","getLinkColor","radialLabels","dataWithColor","canvas","PieTooltip$1","_typeof$5","_defineProperty$8","_classCallCheck$5","_defineProperties$5","_possibleConstructorReturn$5","_assertThisInitialized$5","_getPrototypeOf$5","_setPrototypeOf$5","PieCanvasRenderer","_getPrototypeOf2","surface","getArcFromMouse","_inherits$5","draw","_arcGenerator$centroi2","centroidX","centroidY","drawSliceLabels","_this3","_this$props2","_typeof$6","_objectWithoutProperties$1","_objectWithoutPropertiesLoose$1","_classCallCheck$6","_defineProperties$6","_possibleConstructorReturn$6","_assertThisInitialized$6","_getPrototypeOf$6","_setPrototypeOf$6","PieCanvas","_inherits$6","topProps","_defineProperty$9","PieChart","LineChart","usePercent","qID","legendSettings","orient","ChartHandler","limitedChartData","chartHeight","chartType","chart_type","chartClass","ChartComponent","allChartData","useStaticQuery","fullCustomScheme","minimalColorScheme","is_multiyear","allMultiyearXml","edges","allYear2020Xml","custom_chart_height","xmlChild","random","shuffleArray","crowdsignal_question_number","CommunityInsights","mdiCommentQuote","insightData","insight_image","childImageSharp","bio","objectToGetParams","params","_a","encodeURIComponent","_extendStatics","__extends","__","__assign","__awaiter","_arguments","P","reject","fulfilled","rejected","adopt","then","__generator","body","sent","trys","ops","verb","op","pop","__rest","isPromise","getBoxPositionOnWindowCenter","screenX","screenLeft","screenY","screenTop","getBoxPositionOnScreenCenter","screen","windowOpen","url","onClose","configRest","config","toolbar","status","directories","menubar","scrollbars","resizable","centerscreen","chrome","shareDialog","open","interval_1","setInterval","closed","clearInterval","_super","ShareButton","openShareDialog","onShareWindowClose","_b","windowHeight","_c","windowPosition","windowWidth","beforeOnClick","disabled","networkLink","openShareDialogOnClick","opts","returnVal","preventDefault","disabledStyle","forwardedRef","networkName","resetButtonStyle","rest","newClassName","newStyle","border","optsMap","CreatedButton","passedProps","subject","separator","href","AssertionError","assert","hashtag","summary","mini","via","hashtags","related","SocialShare","useState","isOpen","setIsOpen","site","siteMetadata","sectionId","sectionTitle","mdiEmail","mdiLinkBoxVariant","mdiFacebook","description","mdiLinkedin","author","mdiTwitter","SurveyResultList","resultRelativePath","surveyResultsData","allFile","isSeeAllOpen","setIsSeeAllOpen","surveyResultsIcons","mdiChartArc","mdiChartLine","mdiChartBar","mdiMapMarker","mdiAccountGroup","mdiHeart","mdiHeartBroken","mdiDiamondStone","mdiChartTimelineVariant","mdiPodcast","mdiRss","handleSeeAll","listLink","resultIcon","rel","display_text","handleRankedLinkableList","list_items","list_item_image","listImageLink","relativePath","childMarkdownRemark","frontmatter","icon","insight_name","insight_bio","insight_quote","displayOtherTags","display_other","otherTags","other_tags","otherTagsTitle","other_tags_title","html","graphic","uses_nivo_chart","tags","ranked_linkable_list","include_community_insight","SectionList","orderedSections","sectionData","useSectionData","file","sections","section","orderedSection","thisSectionName","firstSection","show_title_in_content","subtitle","survey_results","SEO","lang","meta","metaDescription","metaTitle","shareCardURL","ShareCard","Helmet","htmlAttributes","titleTemplate","authorHandle","IndexPage","createRecurry","propsMapper","last","parent","Linear","_context","_line","_point","baseForOwn","baseEach","createBaseEach","ramp","remainder","cloneTypedArray","isArrayLikeObject","toPlainObject","mergeFunc","isBuff","isTyped","getWrapDetails","insertWrapDetails","updateWrapDetails","reference","toAbsoluteIndex","createProperty","fin","arrayMethodIsStrict","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","code","chr","fromCharCode","itemsLength","arrayLength","webkit","precisionPrefix","precisionRound","precisionFixed","linearish","prestep","maxIter","_createClass","EPSILON","EDGE_STACK","Delaunator","coords","maxTriangles","_triangles","_halfedges","_hashSize","_hullPrev","_hullNext","_hullTri","_hullHash","_ids","_dists","update","hullPrev","hullNext","hullTri","hullHash","minX","minY","maxX","maxY","i2","minDist","dist","i0x","i0y","_i2","i1x","i1y","minRadius","_i3","circumradius","i2x","i2y","_i4","quicksort","hull","_i5","subarray","triangles","halfedges","_i6","_y","ey","cl","circumcenter","_cx","_cy","_i7","_hullStart","hullSize","_hashKey","trianglesLen","_addTriangle","xp","_i8","_x2","_y2","_j","_legalize","_i9","px","py","fx","fy","bp","cp","ar","b0","al","pr","pl","hbl","_link","br","getX","defaultGetX","getY","defaultGetY","orientIfSure","rx","ry","qx","qy","ids","dists","temp","tempDist","_i10","_j2","swap","_tempDist","tmp","Polygon","Voronoi","xmin","ymin","xmax","ymax","_circumcenters","vectors","_init","_this$delaunay","circumcenters","ab","_this$delaunay2","inedges","ti","tj","xi","yi","xj","yj","_renderSegment","h0","h1","_project","_clip","mark","cellPolygons","cell","wrap","prev","cellPolygon","polygon","renderCell","c0","_regioncode","c1","_clipSegment","neighbors","ci","cj","ai","li","aj","lj","_context2","abrupt","finish","_this$delaunay3","e0","_cell","_clipInfinite","_clipFinite","e1","sx0","sy0","sx1","sy1","_S","_S2","_S3","_S4","_edgecode","_edge","contains","vx0","vy0","vxn","vyn","unshift","vx","vy","_marked","flatIterable","_e3","pointX","pointY","jitter","Delaunay","_delaunator","_hullIndex","collinear","hullIndex","_n2","dc","dt","renderHull","_h","trianglePolygons","trianglePolygon","renderTriangle","that","flatArray","_step2","_context3","VoronoiDefaultProps","xDomain","yDomain","enableLinks","linkLineWidth","linkLineColor","enableCells","cellLineWidth","cellLineColor","renderBounds","links","cells","renderPoints","scaledPoints","getAccessor","directive","points2d","_ref$x","_ref$y","computeMeshPoints","elementRef","currentIndex","setCurrentIndex","voronoiPath","getIndexAndNodeFromEvent","_getIndexAndNodeFromE2","_getIndexAndNodeFromE4","previousNode","_getIndexAndNodeFromE6","renderVoronoiToCanvas","renderVoronoiCellToCanvas","createRange","baseDifference","ts","arrayPush","isFlattenable","isStrict","cloneArrayBuffer","dataView","funcs","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","extend","objectCtorString","baseIsDate","nodeIsDate","isDate","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","webpackPolyfill","deprecate","is","objA","objB","keysA","keysB","ret","toNumber","baseIsMatch","getMatchData","matchData","degreesToRadians","degrees","positions$1","renderAxesToCanvas","_ref$tickSize","_ref$tickPadding","_ref$tickRotation","_ref$legendPosition","_ref$legendOffset","lineCap","_textAlign","fontWeight","renderAxisToCanvas","renderGridLinesToCanvas","composeArgs","composeArgsRight","countHolders","reorder","isAry","isFlip","holdersCount","newHolders","baseIteratee","baseMap","baseSortBy","compareMultiple","collection","iteratees","reFlags","regexp","baseTimes","inherited","isArg","isType","skipIndexes","getNanoSeconds","hrtime","loadTime","performance","hr","MapShim","getIndex","class_1","__entries__","callback","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","delay","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","throttle","addObserver","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","addEventListener","childList","characterData","subtree","removeEventListener","propertyName","getInstance","instance_","defineConfigurable","emptyRect","createRectInit","toFloat","getBordersSize","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","documentElement","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","Constr","DOMRectReadOnly","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","clearActive","observation","method","keyList","hasProp","hasElementType","equal","arrA","arrB","dateA","dateB","regexpA","regexpB","$$typeof","warn","_withBreakpoints","baseIsTypedArray","nodeIsTypedArray","createBaseFor","typedArrayTags","_reactLifecyclesCompat","_pick","shouldMapOrKeys","shouldMap","WithPropsOnChange","computedProps","prevProps","getDerivedStateFromProps","prevState","polyfill","objectCreate","baseToString","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","equalByTag","equalObjects","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","moduleLoadTime","nodeLoadTime","upTime","uptime","symbolsFunc","secondPerFrame","destX","newV","newX","reusedTuple","stackClear","stackDelete","stackGet","stackHas","stackSet","baseSlice","ascendingBisect","ascending","bisectRight","toPropertyKey","definePropertyModule","createPropertyDescriptor","propertyKey","_getDisplayName","hocName","baseHasIn","hasPath","Basis","rgbBasis","baseIndexOf","isNew","baseFilter","currentStyle","currentVelocity","styleValue","getIndexedScale","getGroupedScale","_minValue","_maxValue","allValues","generateGroupedBars","_ref$innerPadding","innerPadding","barWidth","yRef","getHeight","bars","barHeight","barData","indexValue","generateVerticalGroupedBars","_ref2$padding","_ref2$innerPadding","xRef","getWidth","generateHorizontalGroupedBars","getStackedScale","generateStackedBars","stackedData","stackedDataItem","generateHorizontalStackedBars","getLegendData","groupMode","bar","getLegendDataForIndexes","getLegendDataForKeys","BarItem$1","getTooltipLabel","enhance","borderRadius","shouldRenderLabel","labelColor","indexBy","barComponent","getLabelTextColor","labelLinkColor","getLabelLinkColor","tooltipLabel","BarDefaultProps","BarAnnotations","barWillEnterHorizontal","barWillEnterVertical","Bar$1","motionProps","barWillLeaveVertical","barWillLeaveHorizontal","commonProps","baseProps","findNodeUnderCursor","BarCanvas","_getRelativeCursor4","legendDataForKeys","legendDataForIndexes","_this$props3","ResponsiveBar","eachFunc","iterable","noCustomizer","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iteratorMethod","isGeneratorFunction","genFun","ctor","awrap","async","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","baseKeysIn","freeProcess","defaultValue","transformLog","transformExp","exp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","log10","log2","logp","powp","arraySome","arrLength","othLength","arrValue","othValue","compared","othIndex","defineProperties","_mapToZero2","_stripStyle2","_stepper4","_mergeDiff2","_performanceNow2","_raf2","_shouldStopAnimation2","_react2","_propTypes2","rehydrateStyles","mergedPropsStyles","unreadPropStyles","plainStyles","cUnreadPropStyles","mergedPropsStyle","mergeAndSync","didLeave","oldMergedPropsStyles","destStyles","oldCurrentStyles","oldCurrentVelocities","oldLastIdealStyles","oldLastIdealVelocities","newMergedPropsStyles","oldIndex","oldMergedPropsStyle","leavingStyle","newCurrentStyles","newCurrentVelocities","newLastIdealStyles","newLastIdealVelocities","newMergedPropsStyleCell","foundOldIndex","plainStyle","velocity","unmounting","animationID","prevTime","accumulatedTime","clearUnreadPropStyle","_mergeAndSync","currentStyles","currentVelocities","lastIdealStyles","lastIdealVelocities","unreadPropStyle","dirty","startAnimationIfNecessary","timestamp","propStyles","shouldStopAnimationAll","currentTime","timeDelta","currentFrameCompletion","framesToCatchUp","_mergeAndSync2","newMergedPropsStyle","newCurrentStyle","newCurrentVelocity","newLastIdealStyle","newLastIdealVelocity","newLastIdealStyleValue","newLastIdealVelocityValue","_stepper","_stepper2","nextIdealX","nextIdealV","defaultState","defaultStyles","styleThatEntered","_props","defaultStyleCell","_mergeAndSync3","componentWillReceiveProps","cancel","hydratedStyles","renderedChildren","Children","only","baseSetToString","onRemove","prevKeyIndex","nextKeyIndex","nextOrderA","nextOrderB","prevOrderA","prevOrderB","pivot","nativeMin","indexes","oldArray","srcBitmask","newBitmask","isCombo","baseGt","clock","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","classCallCheck","createClass","objectWithoutProperties","possibleConstructorReturn","encodeSpecialCharacters","str","encode","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","tagName","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","rafPolyfill","cafPolyfill","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","_helmetCallback","commitTagChanges","newState","baseTag","bodyAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","getElementsByTagName","helmetAttributeString","getAttribute","helmetAttributes","attributesToRemove","attributeKeys","attribute","setAttribute","indexToSave","removeAttribute","headElement","querySelector","tagNodes","querySelectorAll","indexToDelete","newElement","innerHTML","styleSheet","cssText","appendChild","createTextNode","existingTag","isEqualNode","parentNode","removeChild","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","_ref$title","noscript","script","HelmetSideEffects","defer","HelmetExport","HelmetWrapper","inherits","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_child$props","initAttributes","convertReactPropstoHtmlAttributes","defaultTitle","mappedState","renderStatic","arraySlice","mergeSort","insertionSort","llength","rlength","lindex","rindex","band","ordinalRange","paddingInner","paddingOuter","pointish","objProps","objLength","skipCtor","objCtor","othCtor","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","defaultConfig","_presets2","reWrapDetails","reSplitDetails","_state","someDirty","destStyle","baseMatches","baseMatchesProperty","baseIsEqualDeep","oz","kz","sz","sij","ki","si","reIsUint","cloneDataView","cloneRegExp","cloneSymbol","_mapProps","wasAnimating","lastIdealStyle","lastIdealVelocity","propsStyle","onRest","defaultStyle","vendors","raf","caf","_now","cancelled","clone","flatten","baseOrderBy","sortBy","reLeadingDot","arrayProto","symbolToString","isHostObject","typedArray","BasisClosed","_x3","_x4","_y3","_y4","BasisOpen","Bundle","beta","_basis","_beta","bundle","custom","_k","Cardinal","tension","cardinal","CardinalClosed","_x5","_y5","CardinalOpen","_l01_a","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","CatmullRom","alpha","_alpha","x23","y23","catmullRom","CatmullRomClosed","CatmullRomOpen","LinearClosed","slope3","slope2","MonotoneX","MonotoneY","ReflectContext","Natural","controlPoints","_t0","Step","_t","sums","none","peak","vi","vj","phi","squarifyRatio","nodeValue","sumValue","newRatio","minRatio","dice","squarify","resquarify","_squarify","hierarchy","childs","Node","valued","defaultChildren","eachBefore","computeHeight","copyData","eachAfter","each","ancestor","aNodes","ancestors","bNodes","leastCommonAncestor","descendants","leaves","axisThemePropType","strokeDasharray","gridThemePropType","legendsThemePropType","labelsThemePropType","dotsThemePropType","markersThemePropType","crosshairPropType","annotationsPropType","themePropType","dots","lineColor","lineStrokeWidth","boxShadow","whiteSpace","alignItems","fontProps","defaultTheme","customTheme","prop","quantizeColorScales","BrBG","PRGn","PiYG","PuOr","RdBu","RdGy","RdYlBu","RdYlGn","BuGn","BuPu","GnBu","OrRd","PuBuGn","PuBu","PuRd","RdPu","YlGnBu","YlGn","YlOrBr","YlOrRd","quantizeColorScalesKeys","curvePropMapping","basisClosed","basisOpen","cardinalClosed","cardinalOpen","catmullRomClosed","catmullRomOpen","linearClosed","monotoneX","monotoneY","natural","stepAfter","stepBefore","curvePropKeys","closedCurvePropKeys","endsWith","areaCurvePropKeys","lineCurvePropKeys","lineCurvePropType","curveFromProp","defsPropTypes","stackOrderPropMapping","insideOut","peaks","appearance","tops","bottoms","stackOrderPropKeys","stackOffsetPropMapping","expand","diverging","silhouette","wiggle","s2","sij0","s3","sk","stackOffsetPropKeys","treeMapTilePropMapping","binary","partition","valueOffset","valueTarget","valueLeft","valueRight","xk","yk","sliceDice","treeMapTilePropKeys","marginPropType","motionPropTypes","blendModePropType","defaultMargin","themeContext","defaultPartialTheme","_ref$theme","partialTheme","Provider","SmartMotion","resolvedStyle","currentStepValues","newInters","stepValues","stepInterpolators","oldValues","newValues","_key2","percentage","motionConfigContext","containerStyle","_ref$isInteractive","containerEl","ResponsiveWrapper","_this$state$dimension","shouldRender","gradientTypes","linearGradient","stopColor","stopOpacity","PatternDots","fullSize","halfPadding","patternUnits","TWO_PI","radiansToDegrees","radians","midAngle","positionFromAngle","distance","absoluteAngleDegrees","absAngle","absoluteAngleRadians","computeArcBoundingBox","includeCenter","xs","ys","textPropsByEngine","PatternLines","_spacing","_rotation","PatternSquares","patternTypes","patternDots","patternLines","patternSquares","_objectSpread$8","defsMapping","Defs$1","definitions","def","xmlns","role","DotsItemSymbol$1","labelTextAnchor","DotsItem$1","lineStyle","textStyle","legendOffsetX","legendOffsetY","legendOrientation","legendProps","offsetX","offsetY","orientation","computeLabel","CartesianMarkersItem$1","CartesianMarkers$1","_label","formatter","getRawLabel","boundSpring","_defineProperty$c","_ref$srcKey","srcKey","_ref$destKey","destKey","_objectWithoutProperties$2","_objectWithoutPropertiesLoose$2","containerStyle$1","Container$1","_ref$renderWrapper","renderWrapper","_useTooltipHandlers","childProps","isCursorInRect","cursorX","cursorY","isCursorInRing","deltaX","deltaY","getHoveredArc","cursorAngle","getRelativeCursor","_objectSpread$9","_defineProperty$d","_toConsumableArray$1","_arrayWithoutHoles$1","_iterableToArray$1","_nonIterableSpread$1","gradientKeys","patternKeys","rules","_ref$colorKey","colorKey","_ref$targetKey","generatedIds","_rules$i","nodeColor","inheritedId","_nodeColor","_inheritedId","inheritedDef","colorStop","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","cubehelixGamma","cubehelixLong","baseIsMap","nodeIsMap"],"mappings":"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","file":"component---src-pages-index-js-b85f05480ed76a27fb47.js","sourcesContent":["var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar RangeError = global.RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","import { path } from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport { x as pointX, y as pointY } from \"./point.js\";\nexport default function () {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();else output.lineEnd();\n }\n\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function (_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function (_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function (_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function (_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function (_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","/**\n * 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","export function x(p) {\n return p[0];\n}\nexport function y(p) {\n return p[1];\n}","var arrayEach = require('./_arrayEach'),\n arrayIncludes = require('./_arrayIncludes');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n/** Used to associate wrap methods with their bit flags. */\nvar wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n];\n\n/**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\nfunction updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n}\n\nmodule.exports = updateWrapDetails;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var apply = require('./_apply'),\n createCtor = require('./_createCtor'),\n root = require('./_root');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n}\n\nmodule.exports = createPartial;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","import \"core-js/modules/es.array.reduce.js\";\nimport { schemeCategory10, schemeAccent, schemeDark2, schemePaired, schemePastel1, schemePastel2, schemeSet1, schemeSet2, schemeSet3, schemeBrBG, schemePRGn, schemePiYG, schemePuOr, schemeRdBu, schemeRdGy, schemeRdYlBu, schemeRdYlGn, schemeSpectral, schemeBlues, schemeGreens, schemeGreys, schemeOranges, schemePurples, schemeReds, schemeBuGn, schemeBuPu, schemeGnBu, schemeOrRd, schemePuBuGn, schemePuBu, schemePuRd, schemeRdPu, schemeYlGnBu, schemeYlGn, schemeYlOrBr, schemeYlOrRd, interpolateBrBG, interpolatePRGn, interpolatePiYG, interpolatePuOr, interpolateRdBu, interpolateRdGy, interpolateRdYlBu, interpolateRdYlGn, interpolateSpectral, interpolateBlues, interpolateGreens, interpolateGreys, interpolateOranges, interpolatePurples, interpolateReds, interpolateViridis, interpolateInferno, interpolateMagma, interpolatePlasma, interpolateWarm, interpolateCool, interpolateCubehelixDefault, interpolateBuGn, interpolateBuPu, interpolateGnBu, interpolateOrRd, interpolatePuBuGn, interpolatePuBu, interpolatePuRd, interpolateRdPu, interpolateYlGnBu, interpolateYlGn, interpolateYlOrBr, interpolateYlOrRd, interpolateRainbow, interpolateSinebow } from 'd3-scale-chromatic';\nimport { useMemo } from 'react';\nimport get from 'lodash.get';\nimport isPlainObject from 'lodash.isplainobject';\nimport { scaleOrdinal } from 'd3-scale';\nimport { rgb } from 'd3-color';\nimport PropTypes from 'prop-types';\nimport { spring } from 'react-motion';\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar categoricalColorSchemes = {\n nivo: ['#e8c1a0', '#f47560', '#f1e15b', '#e8a838', '#61cdbb', '#97e3d5'],\n category10: schemeCategory10,\n accent: schemeAccent,\n dark2: schemeDark2,\n paired: schemePaired,\n pastel1: schemePastel1,\n pastel2: schemePastel2,\n set1: schemeSet1,\n set2: schemeSet2,\n set3: schemeSet3\n};\nvar categoricalColorSchemeIds = Object.keys(categoricalColorSchemes);\n\nvar isCategoricalColorScheme = function isCategoricalColorScheme(scheme) {\n return categoricalColorSchemeIds.includes(scheme);\n};\n\nvar divergingColorSchemes = {\n brown_blueGreen: schemeBrBG,\n purpleRed_green: schemePRGn,\n pink_yellowGreen: schemePiYG,\n purple_orange: schemePuOr,\n red_blue: schemeRdBu,\n red_grey: schemeRdGy,\n red_yellow_blue: schemeRdYlBu,\n red_yellow_green: schemeRdYlGn,\n spectral: schemeSpectral\n};\nvar divergingColorSchemeIds = Object.keys(divergingColorSchemes);\n\nvar isDivergingColorScheme = function isDivergingColorScheme(scheme) {\n return divergingColorSchemeIds.includes(scheme);\n};\n\nvar sequentialColorSchemes = {\n blues: schemeBlues,\n greens: schemeGreens,\n greys: schemeGreys,\n oranges: schemeOranges,\n purples: schemePurples,\n reds: schemeReds,\n blue_green: schemeBuGn,\n blue_purple: schemeBuPu,\n green_blue: schemeGnBu,\n orange_red: schemeOrRd,\n purple_blue_green: schemePuBuGn,\n purple_blue: schemePuBu,\n purple_red: schemePuRd,\n red_purple: schemeRdPu,\n yellow_green_blue: schemeYlGnBu,\n yellow_green: schemeYlGn,\n yellow_orange_brown: schemeYlOrBr,\n yellow_orange_red: schemeYlOrRd\n};\nvar sequentialColorSchemeIds = Object.keys(sequentialColorSchemes);\n\nvar isSequentialColorScheme = function isSequentialColorScheme(scheme) {\n return sequentialColorSchemeIds.includes(scheme);\n};\n\nvar colorSchemes = _objectSpread({}, categoricalColorSchemes, divergingColorSchemes, sequentialColorSchemes);\n\nvar colorSchemeIds = Object.keys(colorSchemes);\nvar colorInterpolators = {\n brown_blueGreen: interpolateBrBG,\n purpleRed_green: interpolatePRGn,\n pink_yellowGreen: interpolatePiYG,\n purple_orange: interpolatePuOr,\n red_blue: interpolateRdBu,\n red_grey: interpolateRdGy,\n red_yellow_blue: interpolateRdYlBu,\n red_yellow_green: interpolateRdYlGn,\n spectral: interpolateSpectral,\n blues: interpolateBlues,\n greens: interpolateGreens,\n greys: interpolateGreys,\n oranges: interpolateOranges,\n purples: interpolatePurples,\n reds: interpolateReds,\n viridis: interpolateViridis,\n inferno: interpolateInferno,\n magma: interpolateMagma,\n plasma: interpolatePlasma,\n warm: interpolateWarm,\n cool: interpolateCool,\n cubehelixDefault: interpolateCubehelixDefault,\n blue_green: interpolateBuGn,\n blue_purple: interpolateBuPu,\n green_blue: interpolateGnBu,\n orange_red: interpolateOrRd,\n purple_blue_green: interpolatePuBuGn,\n purple_blue: interpolatePuBu,\n purple_red: interpolatePuRd,\n red_purple: interpolateRdPu,\n yellow_green_blue: interpolateYlGnBu,\n yellow_green: interpolateYlGn,\n yellow_orange_brown: interpolateYlOrBr,\n yellow_orange_red: interpolateYlOrRd,\n rainbow: interpolateRainbow,\n sinebow: interpolateSinebow\n};\nvar colorInterpolatorIds = Object.keys(colorInterpolators);\n\nvar getOrdinalColorScale = function getOrdinalColorScale(instruction, identity) {\n if (typeof instruction === 'function') return instruction;\n var getIdentity = typeof identity === 'function' ? identity : function (d) {\n return get(d, identity);\n };\n\n if (Array.isArray(instruction)) {\n var scale = scaleOrdinal(instruction);\n\n var generator = function generator(d) {\n return scale(getIdentity(d));\n };\n\n generator.scale = scale;\n return generator;\n }\n\n if (isPlainObject(instruction)) {\n if (instruction.datum !== undefined) {\n return function (datum) {\n return get(datum, instruction.datum);\n };\n }\n\n if (instruction.scheme !== undefined) {\n if (isCategoricalColorScheme(instruction.scheme)) {\n var _scale = scaleOrdinal(colorSchemes[instruction.scheme]);\n\n var _generator = function _generator(d) {\n return _scale(getIdentity(d));\n };\n\n _generator.scale = _scale;\n return _generator;\n }\n\n if (isDivergingColorScheme(instruction.scheme)) {\n if (instruction.size !== undefined && (instruction.size < 3 || instruction.size > 11)) {\n throw new Error(\"Invalid size '\".concat(instruction.size, \"' for diverging color scheme '\").concat(instruction.scheme, \"', must be between 3~11\"));\n }\n\n var _scale2 = scaleOrdinal(colorSchemes[instruction.scheme][instruction.size || 11]);\n\n var _generator2 = function _generator2(d) {\n return _scale2(getIdentity(d));\n };\n\n _generator2.scale = _scale2;\n return _generator2;\n }\n\n if (isSequentialColorScheme(instruction.scheme)) {\n if (instruction.size !== undefined && (instruction.size < 3 || instruction.size > 9)) {\n throw new Error(\"Invalid size '\".concat(instruction.size, \"' for sequential color scheme '\").concat(instruction.scheme, \"', must be between 3~9\"));\n }\n\n var _scale3 = scaleOrdinal(colorSchemes[instruction.scheme][instruction.size || 9]);\n\n var _generator3 = function _generator3(d) {\n return _scale3(getIdentity(d));\n };\n\n _generator3.scale = _scale3;\n return _generator3;\n }\n }\n\n throw new Error(\"Invalid colors, when using an object, you should either pass a 'datum' or a 'scheme' property\");\n }\n\n return function () {\n return instruction;\n };\n};\n\nvar useOrdinalColorScale = function useOrdinalColorScale(instruction, identity) {\n return useMemo(function () {\n return getOrdinalColorScale(instruction, identity);\n }, [instruction, identity]);\n};\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar getInheritedColorGenerator = function getInheritedColorGenerator(inheritedColor, theme) {\n if (typeof inheritedColor === 'function') return function (node) {\n return inheritedColor(node);\n };\n\n if (isPlainObject(inheritedColor)) {\n if (inheritedColor.theme !== undefined) {\n if (theme === undefined) {\n throw new Error(\"Unable to use color from theme as no theme was provided\");\n }\n\n var themeColor = get(theme, inheritedColor.theme);\n\n if (themeColor === undefined) {\n throw new Error(\"Color from theme is undefined at path: '\".concat(inheritedColor.theme, \"'\"));\n }\n\n return function () {\n return themeColor;\n };\n }\n\n if (inheritedColor.from !== undefined) {\n var getColor = function getColor(datum) {\n return get(datum, inheritedColor.from);\n };\n\n if (Array.isArray(inheritedColor.modifiers)) {\n var modifiers = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n var _loop = function _loop() {\n var modifier = _step.value;\n\n var _modifier = _slicedToArray(modifier, 2),\n modifierType = _modifier[0],\n amount = _modifier[1];\n\n if (modifierType === 'brighter') {\n modifiers.push(function (color) {\n return color.brighter(amount);\n });\n } else if (modifierType === 'darker') {\n modifiers.push(function (color) {\n return color.darker(amount);\n });\n } else if (modifierType === 'opacity') {\n modifiers.push(function (color) {\n color.opacity = amount;\n return color;\n });\n } else {\n throw new Error(\"Invalid color modifier: '\".concat(modifierType, \"', must be one of: 'brighter', 'darker', 'opacity'\"));\n }\n };\n\n for (var _iterator = inheritedColor.modifiers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n _loop();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n if (modifiers.length === 0) return getColor;\n return function (datum) {\n return modifiers.reduce(function (color, modify) {\n return modify(color);\n }, rgb(getColor(datum))).toString();\n };\n }\n\n return getColor;\n }\n\n throw new Error(\"Invalid color spec, you should either specify 'theme' or 'from' when using a config object\");\n }\n\n return function () {\n return inheritedColor;\n };\n};\n\nvar useInheritedColor = function useInheritedColor(parentColor, theme) {\n return useMemo(function () {\n return getInheritedColorGenerator(parentColor, theme);\n }, [parentColor, theme]);\n};\n\nvar ordinalColorsPropType = PropTypes.oneOfType([PropTypes.func, PropTypes.arrayOf(PropTypes.string), PropTypes.shape({\n scheme: PropTypes.oneOf(colorSchemeIds).isRequired,\n size: PropTypes.number\n}), PropTypes.shape({\n datum: PropTypes.string.isRequired\n}), PropTypes.string]);\nvar colorPropertyAccessorPropType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\nvar inheritedColorPropType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.shape({\n theme: PropTypes.string.isRequired\n}), PropTypes.shape({\n from: PropTypes.string.isRequired,\n modifiers: PropTypes.arrayOf(PropTypes.array)\n})]);\n\nfunction _objectSpread$1(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$1(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$1(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar interpolateColor = function interpolateColor(color, springConfig) {\n var colorComponents = rgb(color);\n\n if (!springConfig) {\n return {\n colorR: colorComponents.r,\n colorG: colorComponents.g,\n colorB: colorComponents.b\n };\n }\n\n var configWithPrecision = _objectSpread$1({}, springConfig, {\n precision: 1\n });\n\n return {\n colorR: spring(colorComponents.r, configWithPrecision),\n colorG: spring(colorComponents.g, configWithPrecision),\n colorB: spring(colorComponents.b, configWithPrecision)\n };\n};\n\nvar getInterpolatedColor = function getInterpolatedColor(_ref) {\n var colorR = _ref.colorR,\n colorG = _ref.colorG,\n colorB = _ref.colorB;\n return \"rgb(\".concat(Math.round(Math.max(colorR, 0)), \",\").concat(Math.round(Math.max(colorG, 0)), \",\").concat(Math.round(Math.max(colorB, 0)), \")\");\n};\n\nexport { categoricalColorSchemeIds, categoricalColorSchemes, colorInterpolatorIds, colorInterpolators, colorPropertyAccessorPropType, colorSchemeIds, colorSchemes, divergingColorSchemeIds, divergingColorSchemes, getInheritedColorGenerator, getInterpolatedColor, getOrdinalColorScale, inheritedColorPropType, interpolateColor, isCategoricalColorScheme, isDivergingColorScheme, isSequentialColorScheme, ordinalColorsPropType, sequentialColorSchemeIds, sequentialColorSchemes, useInheritedColor, useOrdinalColorScale };","export default function (series, order) {\n if (!((n = series.length) > 1)) return;\n\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es-x/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequire(obj) {\n return obj && obj.__esModule ? obj['default'] : obj;\n}\n\nvar _Motion = require('./Motion');\n\nexports.Motion = _interopRequire(_Motion);\n\nvar _StaggeredMotion = require('./StaggeredMotion');\n\nexports.StaggeredMotion = _interopRequire(_StaggeredMotion);\n\nvar _TransitionMotion = require('./TransitionMotion');\n\nexports.TransitionMotion = _interopRequire(_TransitionMotion);\n\nvar _spring = require('./spring');\n\nexports.spring = _interopRequire(_spring);\n\nvar _presets = require('./presets');\n\nexports.presets = _interopRequire(_presets);\n\nvar _stripStyle = require('./stripStyle');\n\nexports.stripStyle = _interopRequire(_stripStyle); // deprecated, dummy warning function\n\nvar _reorderKeys = require('./reorderKeys');\n\nexports.reorderKeys = _interopRequire(_reorderKeys);","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","import React, { memo, useState, useMemo, createContext, useCallback, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport Measure from 'react-measure';\nimport { Motion, spring } from 'react-motion';\nimport { useTheme, useMotionConfig, useValueFormatter } from '@nivo/core';\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar TOOLTIP_OFFSET = 14;\nvar tooltipStyle = {\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 10,\n top: 0,\n left: 0\n};\nvar TooltipWrapper = memo(function (_ref) {\n var position = _ref.position,\n anchor = _ref.anchor,\n children = _ref.children;\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n dimensions = _useState2[0],\n setDimensions = _useState2[1];\n\n var theme = useTheme();\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n\n var x = Math.round(position[0]);\n var y = Math.round(position[1]);\n\n if (dimensions !== null) {\n if (anchor === 'top') {\n x -= dimensions[0] / 2;\n y -= dimensions[1] + TOOLTIP_OFFSET;\n } else if (anchor === 'right') {\n x += TOOLTIP_OFFSET;\n y -= dimensions[1] / 2;\n } else if (anchor === 'bottom') {\n x -= dimensions[0] / 2;\n y += TOOLTIP_OFFSET;\n } else if (anchor === 'left') {\n x -= dimensions[0] + TOOLTIP_OFFSET;\n y -= dimensions[1] / 2;\n } else if (anchor === 'center') {\n x -= dimensions[0] / 2;\n y -= dimensions[1] / 2;\n }\n }\n\n var style = useMemo(function () {\n return _objectSpread({}, tooltipStyle, theme.tooltip, {\n transform: \"translate(\".concat(x, \"px, \").concat(y, \"px)\"),\n opacity: dimensions === null ? 0 : 1\n });\n }, [x, y, dimensions, theme.tooltip]);\n\n if (animate !== true || dimensions === null) {\n return React.createElement(Measure, {\n client: false,\n offset: false,\n bounds: true,\n margin: false,\n onResize: function onResize(_ref2) {\n var bounds = _ref2.bounds;\n setDimensions([bounds.width, bounds.height]);\n }\n }, function (_ref3) {\n var measureRef = _ref3.measureRef;\n return React.createElement(\"div\", {\n ref: measureRef,\n style: style\n }, children);\n });\n }\n\n return React.createElement(Motion, {\n style: {\n x: spring(x, springConfig),\n y: spring(y, springConfig)\n }\n }, function (animatedPosition) {\n return React.createElement(Measure, {\n client: false,\n offset: false,\n bounds: true,\n margin: false,\n onResize: function onResize(_ref4) {\n var bounds = _ref4.bounds;\n setDimensions([bounds.width, bounds.height]);\n }\n }, function (_ref5) {\n var measureRef = _ref5.measureRef;\n return React.createElement(\"div\", {\n ref: measureRef,\n style: _objectSpread({}, tooltipStyle, theme.tooltip, {\n transform: \"translate3d(\".concat(animatedPosition.x, \"px, \").concat(animatedPosition.y, \"px, 0)\")\n })\n }, children);\n });\n });\n});\nTooltipWrapper.displayName = 'TooltipWrapper';\nTooltipWrapper.defaultProps = {\n anchor: 'top'\n};\n\nfunction _objectSpread$1(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$1(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$1(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar Chip = memo(function (_ref) {\n var size = _ref.size,\n color = _ref.color,\n style = _ref.style;\n return React.createElement(\"span\", {\n style: _objectSpread$1({\n display: 'block',\n width: size,\n height: size,\n background: color\n }, style)\n });\n});\nChip.defaultProps = {\n size: 12,\n style: {}\n};\nChip.displayName = 'Chip';\nvar BasicTooltip = memo(function (_ref) {\n var id = _ref.id,\n _value = _ref.value,\n format = _ref.format,\n enableChip = _ref.enableChip,\n color = _ref.color,\n renderContent = _ref.renderContent;\n var theme = useTheme();\n var formatValue = useValueFormatter(format);\n var content;\n\n if (typeof renderContent === 'function') {\n content = renderContent();\n } else {\n var value = _value;\n\n if (formatValue !== undefined && value !== undefined) {\n value = formatValue(value);\n }\n\n content = React.createElement(\"div\", {\n style: theme.tooltip.basic\n }, enableChip && React.createElement(Chip, {\n color: color,\n style: theme.tooltip.chip\n }), value !== undefined ? React.createElement(\"span\", null, id, \": \", React.createElement(\"strong\", null, isNaN(value) ? String(value) : value)) : id);\n }\n\n return React.createElement(\"div\", {\n style: theme.tooltip.container\n }, content);\n});\nBasicTooltip.displayName = 'BasicTooltip';\nBasicTooltip.defaultProps = {\n enableChip: false\n};\n\nfunction _objectSpread$2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$2(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$2(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar tableStyle = {\n width: '100%',\n borderCollapse: 'collapse'\n};\nvar TableTooltip = memo(function (_ref) {\n var title = _ref.title,\n rows = _ref.rows,\n renderContent = _ref.renderContent;\n var theme = useTheme();\n if (!rows.length) return null;\n var content;\n\n if (typeof renderContent === 'function') {\n content = renderContent();\n } else {\n content = React.createElement(\"div\", null, title && title, React.createElement(\"table\", {\n style: _objectSpread$2({}, tableStyle, theme.tooltip.table)\n }, React.createElement(\"tbody\", null, rows.map(function (row, i) {\n return React.createElement(\"tr\", {\n key: i\n }, row.map(function (column, j) {\n return React.createElement(\"td\", {\n key: j,\n style: theme.tooltip.tableCell\n }, column);\n }));\n }))));\n }\n\n return React.createElement(\"div\", {\n style: theme.tooltip.container\n }, content);\n});\nTableTooltip.displayName = 'TableTooltip';\nvar crosshairTypes = ['x', 'y', 'top-left', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'cross'];\nvar crosshairPropTypes = {\n type: PropTypes.oneOf(crosshairTypes)\n};\n\nfunction _objectSpread$3(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$3(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$3(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar CrosshairLine = memo(function (_ref) {\n var x0 = _ref.x0,\n x1 = _ref.x1,\n y0 = _ref.y0,\n y1 = _ref.y1;\n var theme = useTheme();\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n\n var style = useMemo(function () {\n return _objectSpread$3({}, theme.crosshair.line, {\n pointerEvents: 'none'\n });\n }, [theme.crosshair.line]);\n\n if (animate !== true) {\n return React.createElement(\"line\", {\n x1: x0,\n x2: x1,\n y1: y0,\n y2: y1,\n fill: \"none\",\n style: style\n });\n }\n\n return React.createElement(Motion, {\n style: {\n x0: spring(x0, springConfig),\n x1: spring(x1, springConfig),\n y0: spring(y0, springConfig),\n y1: spring(y1, springConfig)\n }\n }, function (line) {\n return React.createElement(\"line\", {\n x1: line.x0,\n x2: line.x1,\n y1: line.y0,\n y2: line.y1,\n fill: \"none\",\n style: style\n });\n });\n});\nCrosshairLine.displayName = 'CrosshairLine';\nvar Crosshair = memo(function (_ref) {\n var width = _ref.width,\n height = _ref.height,\n type = _ref.type,\n x = _ref.x,\n y = _ref.y;\n var xLine;\n var yLine;\n\n if (type === 'cross') {\n xLine = {\n x0: x,\n x1: x,\n y0: 0,\n y1: height\n };\n yLine = {\n x0: 0,\n x1: width,\n y0: y,\n y1: y\n };\n } else if (type === 'top-left') {\n xLine = {\n x0: x,\n x1: x,\n y0: 0,\n y1: y\n };\n yLine = {\n x0: 0,\n x1: x,\n y0: y,\n y1: y\n };\n } else if (type === 'top') {\n xLine = {\n x0: x,\n x1: x,\n y0: 0,\n y1: y\n };\n } else if (type === 'top-right') {\n xLine = {\n x0: x,\n x1: x,\n y0: 0,\n y1: y\n };\n yLine = {\n x0: x,\n x1: width,\n y0: y,\n y1: y\n };\n } else if (type === 'right') {\n yLine = {\n x0: x,\n x1: width,\n y0: y,\n y1: y\n };\n } else if (type === 'bottom-right') {\n xLine = {\n x0: x,\n x1: x,\n y0: y,\n y1: height\n };\n yLine = {\n x0: x,\n x1: width,\n y0: y,\n y1: y\n };\n } else if (type === 'bottom') {\n xLine = {\n x0: x,\n x1: x,\n y0: y,\n y1: height\n };\n } else if (type === 'bottom-left') {\n xLine = {\n x0: x,\n x1: x,\n y0: y,\n y1: height\n };\n yLine = {\n x0: 0,\n x1: x,\n y0: y,\n y1: y\n };\n } else if (type === 'left') {\n yLine = {\n x0: 0,\n x1: x,\n y0: y,\n y1: y\n };\n } else if (type === 'x') {\n xLine = {\n x0: x,\n x1: x,\n y0: 0,\n y1: height\n };\n } else if (type === 'y') {\n yLine = {\n x0: 0,\n x1: width,\n y0: y,\n y1: y\n };\n }\n\n return React.createElement(React.Fragment, null, xLine && React.createElement(CrosshairLine, {\n x0: xLine.x0,\n x1: xLine.x1,\n y0: xLine.y0,\n y1: xLine.y1\n }), yLine && React.createElement(CrosshairLine, {\n x0: yLine.x0,\n x1: yLine.x1,\n y0: yLine.y0,\n y1: yLine.y1\n }));\n});\nCrosshair.displayName = 'Crosshair';\nCrosshair.defaultProps = {\n type: 'cross'\n};\nvar tooltipContext = createContext();\n\nfunction _slicedToArray$1(arr, i) {\n return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _nonIterableRest$1();\n}\n\nfunction _nonIterableRest$1() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit$1(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles$1(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar useTooltipHandlers = function useTooltipHandlers(container) {\n var _useState = useState({\n isVisible: false,\n content: null,\n position: {}\n }),\n _useState2 = _slicedToArray$1(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var showTooltipAt = useCallback(function (content, _ref, anchor) {\n var _ref2 = _slicedToArray$1(_ref, 2),\n x = _ref2[0],\n y = _ref2[1];\n\n setState({\n isVisible: true,\n position: [x, y],\n anchor: anchor,\n content: content\n });\n }, []);\n var showTooltipFromEvent = useCallback(function (content, event, anchor) {\n var bounds = container.current.getBoundingClientRect();\n var x = event.clientX - bounds.left;\n var y = event.clientY - bounds.top;\n\n if (anchor === 'left' || anchor === 'right') {\n if (x < bounds.width / 2) anchor = 'right';else anchor = 'left';\n }\n\n setState({\n isVisible: true,\n position: [x, y],\n anchor: anchor,\n content: content\n });\n }, [container]);\n var hideTooltip = useCallback(function () {\n setState({\n isVisible: false,\n content: null\n });\n });\n return {\n showTooltipAt: showTooltipAt,\n showTooltipFromEvent: showTooltipFromEvent,\n hideTooltip: hideTooltip,\n isTooltipVisible: state.isVisible,\n tooltipPosition: state.position,\n tooltipAnchor: state.anchor,\n tooltipContent: state.content\n };\n};\n\nvar useTooltip = function useTooltip() {\n return useContext(tooltipContext);\n};\n\nexport { BasicTooltip, Chip, Crosshair, TableTooltip, TooltipWrapper, crosshairPropTypes, crosshairTypes, tooltipContext, useTooltip, useTooltipHandlers };","/**\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","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0:\n break;\n\n case 1:\n this.range(domain);\n break;\n\n default:\n this.range(range).domain(domain);\n break;\n }\n\n return this;\n}\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0:\n break;\n\n case 1:\n {\n if (typeof domain === \"function\") this.interpolator(domain);else this.range(domain);\n break;\n }\n\n default:\n {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);else this.range(interpolator);\n break;\n }\n }\n\n return this;\n}","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","import colors from \"../colors.js\";\nexport default colors(\"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999\");","export default function (x) {\n return function constant() {\n return x;\n };\n}","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"f7fcb9addd8e31a354\", \"ffffccc2e69978c679238443\", \"ffffccc2e69978c67931a354006837\", \"ffffccd9f0a3addd8e78c67931a354006837\", \"ffffccd9f0a3addd8e78c67941ab5d238443005a32\", \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32\", \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529\").map(colors);\nexport default ramp(scheme);","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"fff7bcfec44fd95f0e\", \"ffffd4fed98efe9929cc4c02\", \"ffffd4fed98efe9929d95f0e993404\", \"ffffd4fee391fec44ffe9929d95f0e993404\", \"ffffd4fee391fec44ffe9929ec7014cc4c028c2d04\", \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04\", \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506\").map(colors);\nexport default ramp(scheme);","/** Used to match wrap detail comments. */\nvar reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/;\n\n/**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\nfunction insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n}\n\nmodule.exports = insertWrapDetails;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { initRange } from \"./init.js\";\nexport var implicit = Symbol(\"implicit\");\nexport default function ordinal() {\n var index = new Map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\",\n i = index.get(key);\n\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function (_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new Map();\n\n var _iterator = _createForOfIteratorHelper(_),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var value = _step.value;\n var key = value + \"\";\n if (index.has(key)) continue;\n index.set(key, domain.push(value));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return scale;\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function () {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n return scale;\n}","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","import { path } from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport { x as pointX, y as pointY } from \"./point.js\";\nexport default function () {\n var x0 = pointX,\n x1 = null,\n y0 = constant(0),\n y1 = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n\n output.lineEnd();\n output.areaEnd();\n }\n }\n\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function (_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function (_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function (_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function (_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function (_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function (_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 = area.lineY0 = function () {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function () {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function () {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function (_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function (_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function (_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}","var isPlainObject = require('./isPlainObject');\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nmodule.exports = customOmitClone;\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es-x/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","export default function (series, order) {\n if (!((n = series.length) > 0)) return;\n\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n}","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","export default function (a, b) {\n return a = +a, b = +b, function (t) {\n return a * (1 - t) + b * t;\n };\n}","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"fee0d2fc9272de2d26\", \"fee5d9fcae91fb6a4acb181d\", \"fee5d9fcae91fb6a4ade2d26a50f15\", \"fee5d9fcbba1fc9272fb6a4ade2d26a50f15\", \"fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d\", \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d\", \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d\").map(colors);\nexport default ramp(scheme);","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var isLaziable = require('./_isLaziable'),\n setData = require('./_setData'),\n setWrapToString = require('./_setWrapToString');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n}\n\nmodule.exports = createRecurry;\n","var baseFlatten = require('./_baseFlatten'),\n toInteger = require('./toInteger');\n\n/**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\nfunction flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n}\n\nmodule.exports = flattenDepth;\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineProperty = require('../internals/object-define-property').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = uid('TYPED_ARRAY_CONSTRUCTOR');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\nfunction replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n}\n\nmodule.exports = replaceHolders;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _shouldUpdate = _interopRequireDefault(require(\"./shouldUpdate\"));\n\nvar _shallowEqual = _interopRequireDefault(require(\"./shallowEqual\"));\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar pure = function pure(BaseComponent) {\n var hoc = (0, _shouldUpdate.default)(function (props, nextProps) {\n return !(0, _shallowEqual.default)(props, nextProps);\n });\n\n if (process.env.NODE_ENV !== 'production') {\n return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'pure'))(hoc(BaseComponent));\n }\n\n return hoc(BaseComponent);\n};\n\nvar _default = pure;\nexports.default = _default;","var baseSetData = require('./_baseSetData'),\n createBind = require('./_createBind'),\n createCurry = require('./_createCurry'),\n createHybrid = require('./_createHybrid'),\n createPartial = require('./_createPartial'),\n getData = require('./_getData'),\n mergeData = require('./_mergeData'),\n setData = require('./_setData'),\n setWrapToString = require('./_setWrapToString'),\n toInteger = require('./toInteger');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n}\n\nmodule.exports = createWrap;\n","module.exports = __webpack_public_path__ + \"static/2020-ruby-on-rails-survey-results-91ad6eb44db313d164f937efb21b1fae.png\";","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _shallowEqual = _interopRequireDefault(require(\"fbjs/lib/shallowEqual\"));\n\nvar _default = _shallowEqual.default;\nexports.default = _default;","export default function number(x) {\n return +x;\n}","import { bisect } from \"d3-array\";\nimport { interpolate as interpolateValue, interpolateNumber, interpolateRound } from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\nvar unit = [0, 1];\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= a = +a) ? function (x) {\n return (x - a) / b;\n } : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function (x) {\n return Math.max(a, Math.min(b, x));\n };\n} // normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\n\n\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0],\n d1 = domain[1],\n r0 = range[0],\n r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function (x) {\n return r0(d0(x));\n };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1; // Reverse descending domains.\n\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function (x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp()).unknown(source.unknown());\n}\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function (y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function (_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function (_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function (_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function (_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function (t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\nexport default function continuous() {\n return transformer()(identity, identity);\n}","export default function constants(x) {\n return function () {\n return x;\n };\n}","var baseCreate = require('./_baseCreate'),\n baseLodash = require('./_baseLodash');\n\n/**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\nfunction LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n}\n\nLodashWrapper.prototype = baseCreate(baseLodash.prototype);\nLodashWrapper.prototype.constructor = LodashWrapper;\n\nmodule.exports = LodashWrapper;\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1,\n t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6;\n}\nexport default function (values) {\n var n = values.length - 1;\n return function (t) {\n var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}","export default (function (x) {\n return function () {\n return x;\n };\n});","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function (t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function (t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function (a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}","import { rgb as colorRgb } from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, { gamma } from \"./color.js\";\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function (t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function (colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i,\n color;\n\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function (t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);","import { basis } from \"./basis.js\";\nexport default function (values) {\n var n = values.length;\n return function (t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}","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) {\n c[i] = a[i] * (1 - t) + b[i] * t;\n }\n\n return c;\n };\n}\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}","import value from \"./value.js\";\nimport numberArray, { isNumberArray } from \"./numberArray.js\";\nexport default function (a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) {\n x[i] = value(a[i], b[i]);\n }\n\n for (; i < nb; ++i) {\n c[i] = b[i];\n }\n\n return function (t) {\n for (i = 0; i < na; ++i) {\n c[i] = x[i](t);\n }\n\n return c;\n };\n}","export default function (a, b) {\n var d = new Date();\n return a = +a, b = +b, function (t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}","import value from \"./value.js\";\nexport default function (a, b) {\n var i = {},\n c = {},\n k;\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function (t) {\n for (k in i) {\n c[k] = i[k](t);\n }\n\n return c;\n };\n}","import number from \"./number.js\";\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function () {\n return b;\n };\n}\n\nfunction one(b) {\n return function (t) {\n return b(t) + \"\";\n };\n}\n\nexport default function (a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0,\n // scan index for next number in b\n am,\n // current match in a\n bm,\n // current match in b\n bs,\n // string preceding current number in b, if any\n i = -1,\n // index in s\n s = [],\n // string constants and placeholders\n q = []; // number interpolators\n // Coerce inputs to strings.\n\n a = a + \"\", b = b + \"\"; // Interpolate pairs of numbers in a & b.\n\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n if ((am = am[0]) === (bm = bm[0])) {\n // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else {\n // interpolate non-matching numbers\n s[++i] = null;\n q.push({\n i: i,\n x: number(am, bm)\n });\n }\n\n bi = reB.lastIndex;\n } // Add remains of b.\n\n\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n } // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n\n\n return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function (t) {\n for (var i = 0, o; i < b; ++i) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n });\n}","import { color } from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport { genericArray } from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, { isNumberArray } from \"./numberArray.js\";\nexport default function (a, b) {\n var t = typeof b,\n c;\n return b == null || t === \"boolean\" ? constant(b) : (t === \"number\" ? number : t === \"string\" ? (c = color(b)) ? (b = c, rgb) : string : b instanceof color ? rgb : b instanceof Date ? date : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object : number)(a, b);\n}","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n\n this._ = \"\";\n}\n\nfunction path() {\n return new Path();\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function moveTo(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function lineTo(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function quadraticCurveTo(x1, y1, x, y) {\n this._ += \"Q\" + +x1 + \",\" + +y1 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + +x1 + \",\" + +y1 + \",\" + +x2 + \",\" + +y2 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x1,y1).\n\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon)) ; // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21; // If the start tangent is not coincident with (x0,y0), line to.\n\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + +(y01 * x20 > x01 * y20) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x0,y0).\n\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n } // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n } // Is this arc empty? We’re done.\n\n\n if (!r) return; // Does the angle go the wrong way? Flip the direction.\n\n if (da < 0) da = da % tau + tau; // Is this a complete circle? Draw two arcs to complete the circle.\n\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n } // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + +(da >= pi) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function rect(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + +w + \"v\" + +h + \"h\" + -w + \"Z\";\n },\n toString: function toString() {\n return this._;\n }\n};\nexport default path;","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _setStatic = _interopRequireDefault(require(\"./setStatic\"));\n\nvar setDisplayName = function setDisplayName(displayName) {\n return (0, _setStatic.default)('displayName', displayName);\n};\n\nvar _default = setDisplayName;\nexports.default = _default;","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","/**\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 * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\nexport default function (start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n var r0 = Math.round(start / step),\n r1 = Math.round(stop / step);\n if (r0 * step < start) ++r0;\n if (r1 * step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n\n while (++i < n) {\n ticks[i] = (r0 + i) * step;\n }\n } else {\n step = -step;\n\n var _r = Math.round(start * step),\n _r2 = Math.round(stop * step);\n\n if (_r / step < start) ++_r;\n if (_r2 / step > stop) --_r2;\n ticks = new Array(n = _r2 - _r + 1);\n\n while (++i < n) {\n ticks[i] = (_r + i) / step;\n }\n }\n\n if (reverse) ticks.reverse();\n return ticks;\n}\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;else if (error >= e5) step1 *= 5;else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"e0f3dba8ddb543a2ca\", \"f0f9e8bae4bc7bccc42b8cbe\", \"f0f9e8bae4bc7bccc443a2ca0868ac\", \"f0f9e8ccebc5a8ddb57bccc443a2ca0868ac\", \"f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e\", \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e\", \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081\").map(colors);\nexport default ramp(scheme);","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","var baseSetData = require('./_baseSetData'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar setData = shortOut(baseSetData);\n\nmodule.exports = setData;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _react = require(\"react\");\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar shouldUpdate = function shouldUpdate(test) {\n return function (BaseComponent) {\n var factory = (0, _react.createFactory)(BaseComponent);\n\n var ShouldUpdate = /*#__PURE__*/function (_Component) {\n (0, _inheritsLoose2.default)(ShouldUpdate, _Component);\n\n function ShouldUpdate() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = ShouldUpdate.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return test(this.props, nextProps);\n };\n\n _proto.render = function render() {\n return factory(this.props);\n };\n\n return ShouldUpdate;\n }(_react.Component);\n\n if (process.env.NODE_ENV !== 'production') {\n return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'shouldUpdate'))(ShouldUpdate);\n }\n\n return ShouldUpdate;\n };\n};\n\nvar _default = shouldUpdate;\nexports.default = _default;","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar logDeprecationNotice = function logDeprecationNotice(prop, replacement) {\n if (process.env.NODE_ENV === \"production\") {\n return;\n }\n\n console.log(\"\\n The \\\"\" + prop + \"\\\" prop is now deprecated and will be removed in the next major version\\n of \\\"gatsby-image\\\".\\n \");\n\n if (replacement) {\n console.log(\"Please use \" + replacement + \" instead of \\\"\" + prop + \"\\\".\");\n }\n}; // Handle legacy props during their deprecation phase\n\n\nvar convertProps = function convertProps(props) {\n var convertedProps = (0, _extends2.default)({}, props);\n var resolutions = convertedProps.resolutions,\n sizes = convertedProps.sizes,\n critical = convertedProps.critical;\n\n if (resolutions) {\n convertedProps.fixed = resolutions;\n delete convertedProps.resolutions;\n }\n\n if (sizes) {\n convertedProps.fluid = sizes;\n delete convertedProps.sizes;\n }\n\n if (critical) {\n logDeprecationNotice(\"critical\", \"the native \\\"loading\\\" attribute\");\n convertedProps.loading = \"eager\";\n } // convert fluid & fixed to arrays so we only have to work with arrays\n\n\n if (convertedProps.fluid) {\n convertedProps.fluid = groupByMedia([].concat(convertedProps.fluid));\n }\n\n if (convertedProps.fixed) {\n convertedProps.fixed = groupByMedia([].concat(convertedProps.fixed));\n }\n\n return convertedProps;\n};\n/**\n * Checks if fluid or fixed are art-direction arrays.\n *\n * @param currentData {{media?: string}[]} The props to check for images.\n * @return {boolean}\n */\n\n\nvar hasArtDirectionSupport = function hasArtDirectionSupport(currentData) {\n return !!currentData && Array.isArray(currentData) && currentData.some(function (image) {\n return typeof image.media !== \"undefined\";\n });\n};\n/**\n * Tries to detect if a media query matches the current viewport.\n * @property media {{media?: string}} A media query string.\n * @return {boolean}\n */\n\n\nvar matchesMedia = function matchesMedia(_ref) {\n var media = _ref.media;\n return media ? isBrowser && !!window.matchMedia(media).matches : false;\n};\n/**\n * Find the source of an image to use as a key in the image cache.\n * Use `the first image in either `fixed` or `fluid`\n * @param {{fluid: {src: string, media?: string}[], fixed: {src: string, media?: string}[]}} args\n * @return {string?} Returns image src or undefined it not given.\n */\n\n\nvar getImageCacheKey = function getImageCacheKey(_ref2) {\n var fluid = _ref2.fluid,\n fixed = _ref2.fixed;\n var srcData = getCurrentSrcData(fluid || fixed || []);\n return srcData && srcData.src;\n};\n/**\n * Returns the current src - Preferably with art-direction support.\n * @param currentData {{media?: string}[], maxWidth?: Number, maxHeight?: Number} The fluid or fixed image array.\n * @return {{src: string, media?: string, maxWidth?: Number, maxHeight?: Number}}\n */\n\n\nvar getCurrentSrcData = function getCurrentSrcData(currentData) {\n if (isBrowser && hasArtDirectionSupport(currentData)) {\n // Do we have an image for the current Viewport?\n var foundMedia = currentData.findIndex(matchesMedia);\n\n if (foundMedia !== -1) {\n return currentData[foundMedia];\n } // No media matches, select first element without a media condition\n\n\n var noMedia = currentData.findIndex(function (image) {\n return typeof image.media === \"undefined\";\n });\n\n if (noMedia !== -1) {\n return currentData[noMedia];\n }\n } // Else return the first image.\n\n\n return currentData[0];\n}; // Cache if we've seen an image before so we don't bother with\n// lazy-loading & fading in on subsequent mounts.\n\n\nvar imageCache = Object.create({});\n\nvar inImageCache = function inImageCache(props) {\n var convertedProps = convertProps(props);\n var cacheKey = getImageCacheKey(convertedProps);\n return imageCache[cacheKey] || false;\n};\n\nvar activateCacheForImage = function activateCacheForImage(props) {\n var convertedProps = convertProps(props);\n var cacheKey = getImageCacheKey(convertedProps);\n\n if (cacheKey) {\n imageCache[cacheKey] = true;\n }\n}; // Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\n\n\nvar hasNativeLazyLoadSupport = typeof HTMLImageElement !== \"undefined\" && \"loading\" in HTMLImageElement.prototype;\nvar isBrowser = typeof window !== \"undefined\";\nvar hasIOSupport = isBrowser && window.IntersectionObserver;\nvar io;\nvar listeners = new WeakMap();\n\nfunction getIO() {\n if (typeof io === \"undefined\" && typeof window !== \"undefined\" && window.IntersectionObserver) {\n io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (listeners.has(entry.target)) {\n var cb = listeners.get(entry.target); // Edge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(entry.target);\n listeners.delete(entry.target);\n cb();\n }\n }\n });\n }, {\n rootMargin: \"200px\"\n });\n }\n\n return io;\n}\n\nfunction generateImageSources(imageVariants) {\n return imageVariants.map(function (_ref3) {\n var src = _ref3.src,\n srcSet = _ref3.srcSet,\n srcSetWebp = _ref3.srcSetWebp,\n media = _ref3.media,\n sizes = _ref3.sizes;\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {\n key: src\n }, srcSetWebp && /*#__PURE__*/_react.default.createElement(\"source\", {\n type: \"image/webp\",\n media: media,\n srcSet: srcSetWebp,\n sizes: sizes\n }), /*#__PURE__*/_react.default.createElement(\"source\", {\n media: media,\n srcSet: srcSet,\n sizes: sizes\n }));\n });\n} // Return an array ordered by elements having a media prop, does not use\n// native sort, as a stable sort is not guaranteed by all browsers/versions\n\n\nfunction groupByMedia(imageVariants) {\n var withMedia = [];\n var without = [];\n imageVariants.forEach(function (variant) {\n return (variant.media ? withMedia : without).push(variant);\n });\n\n if (without.length > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"We've found \" + without.length + \" sources without a media property. They might be ignored by the browser, see: https://www.gatsbyjs.org/packages/gatsby-image/#art-directing-multiple-images\");\n }\n\n return [].concat(withMedia, without);\n}\n\nfunction generateTracedSVGSources(imageVariants) {\n return imageVariants.map(function (_ref4) {\n var src = _ref4.src,\n media = _ref4.media,\n tracedSVG = _ref4.tracedSVG;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: tracedSVG\n });\n });\n}\n\nfunction generateBase64Sources(imageVariants) {\n return imageVariants.map(function (_ref5) {\n var src = _ref5.src,\n media = _ref5.media,\n base64 = _ref5.base64;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: base64\n });\n });\n}\n\nfunction generateNoscriptSource(_ref6, isWebp) {\n var srcSet = _ref6.srcSet,\n srcSetWebp = _ref6.srcSetWebp,\n media = _ref6.media,\n sizes = _ref6.sizes;\n var src = isWebp ? srcSetWebp : srcSet;\n var mediaAttr = media ? \"media=\\\"\" + media + \"\\\" \" : \"\";\n var typeAttr = isWebp ? \"type='image/webp' \" : \"\";\n var sizesAttr = sizes ? \"sizes=\\\"\" + sizes + \"\\\" \" : \"\";\n return \"\";\n}\n\nfunction generateNoscriptSources(imageVariants) {\n return imageVariants.map(function (variant) {\n return (variant.srcSetWebp ? generateNoscriptSource(variant, true) : \"\") + generateNoscriptSource(variant);\n }).join(\"\");\n}\n\nvar listenToIntersections = function listenToIntersections(el, cb) {\n var observer = getIO();\n\n if (observer) {\n observer.observe(el);\n listeners.set(el, cb);\n }\n\n return function () {\n observer.unobserve(el);\n listeners.delete(el);\n };\n};\n\nvar noscriptImg = function noscriptImg(props) {\n // Check if prop exists before adding each attribute to the string output below to prevent\n // HTML validation issues caused by empty values like width=\"\" and height=\"\"\n var src = props.src ? \"src=\\\"\" + props.src + \"\\\" \" : \"src=\\\"\\\" \"; // required attribute\n\n var sizes = props.sizes ? \"sizes=\\\"\" + props.sizes + \"\\\" \" : \"\";\n var srcSet = props.srcSet ? \"srcset=\\\"\" + props.srcSet + \"\\\" \" : \"\";\n var title = props.title ? \"title=\\\"\" + props.title + \"\\\" \" : \"\";\n var alt = props.alt ? \"alt=\\\"\" + props.alt + \"\\\" \" : \"alt=\\\"\\\" \"; // required attribute\n\n var width = props.width ? \"width=\\\"\" + props.width + \"\\\" \" : \"\";\n var height = props.height ? \"height=\\\"\" + props.height + \"\\\" \" : \"\";\n var crossOrigin = props.crossOrigin ? \"crossorigin=\\\"\" + props.crossOrigin + \"\\\" \" : \"\";\n var loading = props.loading ? \"loading=\\\"\" + props.loading + \"\\\" \" : \"\";\n var draggable = props.draggable ? \"draggable=\\\"\" + props.draggable + \"\\\" \" : \"\";\n var sources = generateNoscriptSources(props.imageVariants);\n return \"\" + sources + \"\";\n}; // Earlier versions of gatsby-image during the 2.x cycle did not wrap\n// the `Img` component in a `picture` element. This maintains compatibility\n// until a breaking change can be introduced in the next major release\n\n\nvar Placeholder = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var src = props.src,\n imageVariants = props.imageVariants,\n generateSources = props.generateSources,\n spreadProps = props.spreadProps,\n ariaHidden = props.ariaHidden;\n\n var baseImage = /*#__PURE__*/_react.default.createElement(Img, (0, _extends2.default)({\n ref: ref,\n src: src\n }, spreadProps, {\n ariaHidden: ariaHidden\n }));\n\n return imageVariants.length > 1 ? /*#__PURE__*/_react.default.createElement(\"picture\", null, generateSources(imageVariants), baseImage) : baseImage;\n});\n\nvar Img = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var sizes = props.sizes,\n srcSet = props.srcSet,\n src = props.src,\n style = props.style,\n onLoad = props.onLoad,\n onError = props.onError,\n loading = props.loading,\n draggable = props.draggable,\n ariaHidden = props.ariaHidden,\n otherProps = (0, _objectWithoutPropertiesLoose2.default)(props, [\"sizes\", \"srcSet\", \"src\", \"style\", \"onLoad\", \"onError\", \"loading\", \"draggable\", \"ariaHidden\"]);\n return /*#__PURE__*/_react.default.createElement(\"img\", (0, _extends2.default)({\n \"aria-hidden\": ariaHidden,\n sizes: sizes,\n srcSet: srcSet,\n src: src\n }, otherProps, {\n onLoad: onLoad,\n onError: onError,\n ref: ref,\n loading: loading,\n draggable: draggable,\n style: (0, _extends2.default)({\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n objectPosition: \"center\"\n }, style)\n }));\n});\n\nImg.propTypes = {\n style: _propTypes.default.object,\n onError: _propTypes.default.func,\n onLoad: _propTypes.default.func\n};\n\nvar Image = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(Image, _React$Component);\n\n function Image(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // If this image has already been loaded before then we can assume it's\n // already in the browser cache so it's cheap to just show directly.\n\n _this.seenBefore = isBrowser && inImageCache(props);\n _this.isCritical = props.loading === \"eager\" || props.critical;\n _this.addNoScript = !(_this.isCritical && !props.fadeIn);\n _this.useIOSupport = !hasNativeLazyLoadSupport && hasIOSupport && !_this.isCritical && !_this.seenBefore;\n var isVisible = _this.isCritical || isBrowser && (hasNativeLazyLoadSupport || !_this.useIOSupport);\n _this.state = {\n isVisible: isVisible,\n imgLoaded: false,\n imgCached: false,\n fadeIn: !_this.seenBefore && props.fadeIn\n };\n _this.imageRef = /*#__PURE__*/_react.default.createRef();\n _this.placeholderRef = props.placeholderRef || /*#__PURE__*/_react.default.createRef();\n _this.handleImageLoaded = _this.handleImageLoaded.bind((0, _assertThisInitialized2.default)(_this));\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = Image.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.state.isVisible && typeof this.props.onStartLoad === \"function\") {\n this.props.onStartLoad({\n wasCached: inImageCache(this.props)\n });\n }\n\n if (this.isCritical) {\n var img = this.imageRef.current;\n\n if (img && img.complete) {\n this.handleImageLoaded();\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.cleanUpListeners) {\n this.cleanUpListeners();\n }\n } // Specific to IntersectionObserver based lazy-load support\n ;\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.useIOSupport && ref) {\n this.cleanUpListeners = listenToIntersections(ref, function () {\n var imageInCache = inImageCache(_this2.props);\n\n if (!_this2.state.isVisible && typeof _this2.props.onStartLoad === \"function\") {\n _this2.props.onStartLoad({\n wasCached: imageInCache\n });\n } // imgCached and imgLoaded must update after isVisible,\n // Once isVisible is true, imageRef becomes accessible, which imgCached needs access to.\n // imgLoaded and imgCached are in a 2nd setState call to be changed together,\n // avoiding initiating unnecessary animation frames from style changes.\n\n\n _this2.setState({\n isVisible: true\n }, function () {\n _this2.setState({\n imgLoaded: imageInCache,\n // `currentSrc` should be a string, but can be `undefined` in IE,\n // !! operator validates the value is not undefined/null/\"\"\n // for lazyloaded components this might be null\n // TODO fix imgCached behaviour as it's now false when it's lazyloaded\n imgCached: !!(_this2.imageRef.current && _this2.imageRef.current.currentSrc)\n });\n });\n });\n }\n };\n\n _proto.handleImageLoaded = function handleImageLoaded() {\n activateCacheForImage(this.props);\n this.setState({\n imgLoaded: true\n });\n\n if (this.props.onLoad) {\n this.props.onLoad();\n }\n };\n\n _proto.render = function render() {\n var _convertProps = convertProps(this.props),\n title = _convertProps.title,\n alt = _convertProps.alt,\n className = _convertProps.className,\n _convertProps$style = _convertProps.style,\n style = _convertProps$style === void 0 ? {} : _convertProps$style,\n _convertProps$imgStyl = _convertProps.imgStyle,\n imgStyle = _convertProps$imgStyl === void 0 ? {} : _convertProps$imgStyl,\n _convertProps$placeho = _convertProps.placeholderStyle,\n placeholderStyle = _convertProps$placeho === void 0 ? {} : _convertProps$placeho,\n placeholderClassName = _convertProps.placeholderClassName,\n fluid = _convertProps.fluid,\n fixed = _convertProps.fixed,\n backgroundColor = _convertProps.backgroundColor,\n durationFadeIn = _convertProps.durationFadeIn,\n Tag = _convertProps.Tag,\n itemProp = _convertProps.itemProp,\n loading = _convertProps.loading,\n draggable = _convertProps.draggable;\n\n var shouldReveal = this.state.fadeIn === false || this.state.imgLoaded;\n var shouldFadeIn = this.state.fadeIn === true && !this.state.imgCached;\n var imageStyle = (0, _extends2.default)({\n opacity: shouldReveal ? 1 : 0,\n transition: shouldFadeIn ? \"opacity \" + durationFadeIn + \"ms\" : \"none\"\n }, imgStyle);\n var bgColor = typeof backgroundColor === \"boolean\" ? \"lightgray\" : backgroundColor;\n var delayHideStyle = {\n transitionDelay: durationFadeIn + \"ms\"\n };\n var imagePlaceholderStyle = (0, _extends2.default)({\n opacity: this.state.imgLoaded ? 0 : 1\n }, shouldFadeIn && delayHideStyle, imgStyle, placeholderStyle);\n var placeholderImageProps = {\n title: title,\n alt: !this.state.isVisible ? alt : \"\",\n style: imagePlaceholderStyle,\n className: placeholderClassName,\n itemProp: itemProp\n };\n\n if (fluid) {\n var imageVariants = fluid;\n var image = getCurrentSrcData(fluid);\n return /*#__PURE__*/_react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n maxWidth: image.maxWidth ? image.maxWidth + \"px\" : null,\n maxHeight: image.maxHeight ? image.maxHeight + \"px\" : null\n }, style),\n ref: this.handleRef,\n key: \"fluid-\" + JSON.stringify(image.srcSet)\n }, /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n style: {\n width: \"100%\",\n paddingBottom: 100 / image.aspectRatio + \"%\"\n }\n }), bgColor && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n position: \"absolute\",\n top: 0,\n bottom: 0,\n opacity: !this.state.imgLoaded ? 1 : 0,\n right: 0,\n left: 0\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(imageVariants), /*#__PURE__*/_react.default.createElement(Img, {\n alt: alt,\n title: title,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n if (fixed) {\n var _imageVariants = fixed;\n\n var _image = getCurrentSrcData(fixed);\n\n var divStyle = (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n display: \"inline-block\",\n width: _image.width,\n height: _image.height\n }, style);\n\n if (style.display === \"inherit\") {\n delete divStyle.display;\n }\n\n return /*#__PURE__*/_react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: divStyle,\n ref: this.handleRef,\n key: \"fixed-\" + JSON.stringify(_image.srcSet)\n }, bgColor && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n width: _image.width,\n opacity: !this.state.imgLoaded ? 1 : 0,\n height: _image.height\n }, shouldFadeIn && delayHideStyle)\n }), _image.base64 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: _image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: _imageVariants,\n generateSources: generateBase64Sources\n }), _image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: _image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: _imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(_imageVariants), /*#__PURE__*/_react.default.createElement(Img, {\n alt: alt,\n title: title,\n width: _image.width,\n height: _image.height,\n sizes: _image.sizes,\n src: _image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: _image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, _image, {\n imageVariants: _imageVariants\n }))\n }\n }));\n }\n\n return null;\n };\n\n return Image;\n}(_react.default.Component);\n\nImage.defaultProps = {\n fadeIn: true,\n durationFadeIn: 500,\n alt: \"\",\n Tag: \"div\",\n // We set it to `lazy` by default because it's best to default to a performant\n // setting and let the user \"opt out\" to `eager`\n loading: \"lazy\"\n};\n\nvar fixedObject = _propTypes.default.shape({\n width: _propTypes.default.number.isRequired,\n height: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n media: _propTypes.default.string\n});\n\nvar fluidObject = _propTypes.default.shape({\n aspectRatio: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n sizes: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n media: _propTypes.default.string,\n maxWidth: _propTypes.default.number,\n maxHeight: _propTypes.default.number\n});\n\nfunction requireFixedOrFluid(originalPropTypes) {\n return function (props, propName, componentName) {\n var _PropTypes$checkPropT;\n\n if (!props.fixed && !props.fluid) {\n throw new Error(\"The prop `fluid` or `fixed` is marked as required in `\" + componentName + \"`, but their values are both `undefined`.\");\n }\n\n _propTypes.default.checkPropTypes((_PropTypes$checkPropT = {}, _PropTypes$checkPropT[propName] = originalPropTypes, _PropTypes$checkPropT), props, \"prop\", componentName);\n };\n} // If you modify these propTypes, please don't forget to update following files as well:\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/index.d.ts\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/README.md#gatsby-image-props\n// https://github.com/gatsbyjs/gatsby/blob/master/docs/docs/gatsby-image.md#gatsby-image-props\n\n\nImage.propTypes = {\n resolutions: fixedObject,\n sizes: fluidObject,\n fixed: requireFixedOrFluid(_propTypes.default.oneOfType([fixedObject, _propTypes.default.arrayOf(fixedObject)])),\n fluid: requireFixedOrFluid(_propTypes.default.oneOfType([fluidObject, _propTypes.default.arrayOf(fluidObject)])),\n fadeIn: _propTypes.default.bool,\n durationFadeIn: _propTypes.default.number,\n title: _propTypes.default.string,\n alt: _propTypes.default.string,\n className: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),\n // Support Glamor's css prop.\n critical: _propTypes.default.bool,\n crossOrigin: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n style: _propTypes.default.object,\n imgStyle: _propTypes.default.object,\n placeholderStyle: _propTypes.default.object,\n placeholderClassName: _propTypes.default.string,\n backgroundColor: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n onLoad: _propTypes.default.func,\n onError: _propTypes.default.func,\n onStartLoad: _propTypes.default.func,\n Tag: _propTypes.default.string,\n itemProp: _propTypes.default.string,\n loading: _propTypes.default.oneOf([\"auto\", \"lazy\", \"eager\"]),\n draggable: _propTypes.default.bool\n};\nvar _default = Image;\nexports.default = _default;","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var baseExtremum = require('./_baseExtremum'),\n baseLt = require('./_baseLt'),\n identity = require('./identity');\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nmodule.exports = min;\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"998ec3f7f7f7f1a340\", \"5e3c99b2abd2fdb863e66101\", \"5e3c99b2abd2f7f7f7fdb863e66101\", \"542788998ec3d8daebfee0b6f1a340b35806\", \"542788998ec3d8daebf7f7f7fee0b6f1a340b35806\", \"5427888073acb2abd2d8daebfee0b6fdb863e08214b35806\", \"5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806\", \"2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08\", \"2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08\").map(colors);\nexport default ramp(scheme);","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","export default function (a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withBreakpoints = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _BreakpointProvider = require(\"./BreakpointProvider\");\n\nconst withBreakpoints = Component => {\n return props => {\n const breakpoints = (0, _BreakpointProvider.useBreakpoint)();\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({\n breakpoints: breakpoints\n }, props));\n };\n};\n\nexports.withBreakpoints = withBreakpoints;","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","/**\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","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","import { rgb } from \"d3-color\";\nvar c = rgb(),\n pi_1_3 = Math.PI / 3,\n pi_2_3 = Math.PI * 2 / 3;\nexport default function (t) {\n var x;\n t = (0.5 - t) * Math.PI;\n c.r = 255 * (x = Math.sin(t)) * x;\n c.g = 255 * (x = Math.sin(t + pi_1_3)) * x;\n c.b = 255 * (x = Math.sin(t + pi_2_3)) * x;\n return c + \"\";\n}","import \"core-js/modules/es.array.reduce.js\";\nimport React, { PureComponent, useState, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport isFunction from 'lodash/isFunction';\nimport { useTheme } from '@nivo/core';\nimport isNumber from 'lodash/isNumber';\nimport isPlainObject from 'lodash/isPlainObject';\nvar DIRECTION_ROW = 'row';\nvar DIRECTION_COLUMN = 'column';\nvar ANCHOR_TOP = 'top';\nvar ANCHOR_TOP_RIGHT = 'top-right';\nvar ANCHOR_RIGHT = 'right';\nvar ANCHOR_BOTTOM_RIGHT = 'bottom-right';\nvar ANCHOR_BOTTOM = 'bottom';\nvar ANCHOR_BOTTOM_LEFT = 'bottom-left';\nvar ANCHOR_LEFT = 'left';\nvar ANCHOR_TOP_LEFT = 'top-left';\nvar ANCHOR_CENTER = 'center';\nvar DIRECTION_LEFT_TO_RIGHT = 'left-to-right';\nvar DIRECTION_RIGHT_TO_LEFT = 'right-to-left';\nvar DIRECTION_TOP_TO_BOTTOM = 'top-to-bottom';\nvar DIRECTION_BOTTOM_TO_TOP = 'bottom-to-top';\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar legendEffectPropType = PropTypes.shape({\n on: PropTypes.oneOfType([PropTypes.oneOf(['hover'])]).isRequired,\n style: PropTypes.shape({\n itemTextColor: PropTypes.string,\n itemBackground: PropTypes.string,\n itemOpacity: PropTypes.number,\n symbolSize: PropTypes.number,\n symbolBorderWidth: PropTypes.number,\n symbolBorderColor: PropTypes.string\n }).isRequired\n});\nvar symbolPropTypes = {\n symbolShape: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n symbolSize: PropTypes.number,\n symbolSpacing: PropTypes.number,\n symbolBorderWidth: PropTypes.number,\n symbolBorderColor: PropTypes.string\n};\nvar interactivityPropTypes = {\n onClick: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func\n};\nvar datumPropType = PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n color: PropTypes.string.isRequired,\n fill: PropTypes.string\n});\n\nvar LegendPropShape = _objectSpread({\n data: PropTypes.arrayOf(datumPropType),\n anchor: PropTypes.oneOf([ANCHOR_TOP, ANCHOR_TOP_RIGHT, ANCHOR_RIGHT, ANCHOR_BOTTOM_RIGHT, ANCHOR_BOTTOM, ANCHOR_BOTTOM_LEFT, ANCHOR_LEFT, ANCHOR_TOP_LEFT, ANCHOR_CENTER]).isRequired,\n translateX: PropTypes.number,\n translateY: PropTypes.number,\n direction: PropTypes.oneOf([DIRECTION_ROW, DIRECTION_COLUMN]).isRequired,\n itemsSpacing: PropTypes.number,\n itemWidth: PropTypes.number.isRequired,\n itemHeight: PropTypes.number.isRequired,\n itemDirection: PropTypes.oneOf([DIRECTION_LEFT_TO_RIGHT, DIRECTION_RIGHT_TO_LEFT, DIRECTION_TOP_TO_BOTTOM, DIRECTION_BOTTOM_TO_TOP]),\n itemTextColor: PropTypes.string,\n itemBackground: PropTypes.string,\n itemOpacity: PropTypes.number\n}, symbolPropTypes, interactivityPropTypes, {\n effects: PropTypes.arrayOf(legendEffectPropType)\n});\n\nfunction _objectSpread$1(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$1(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$1(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar zeroPadding = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\n\nvar computeDimensions = function computeDimensions(_ref) {\n var direction = _ref.direction,\n itemsSpacing = _ref.itemsSpacing,\n _padding = _ref.padding,\n itemCount = _ref.itemCount,\n itemWidth = _ref.itemWidth,\n itemHeight = _ref.itemHeight;\n var padding;\n\n if (isNumber(_padding)) {\n padding = {\n top: _padding,\n right: _padding,\n bottom: _padding,\n left: _padding\n };\n } else if (isPlainObject(_padding)) {\n padding = _objectSpread$1({}, zeroPadding, _padding);\n } else {\n throw new TypeError(\"Invalid property padding, must be one of: number, object\");\n }\n\n var horizontalPadding = padding.left + padding.right;\n var verticalPadding = padding.top + padding.bottom;\n var width = itemWidth + horizontalPadding;\n var height = itemHeight + verticalPadding;\n var spacing = (itemCount - 1) * itemsSpacing;\n\n if (direction === DIRECTION_ROW) {\n width = itemWidth * itemCount + spacing + horizontalPadding;\n } else if (direction === DIRECTION_COLUMN) {\n height = itemHeight * itemCount + spacing + verticalPadding;\n }\n\n return {\n width: width,\n height: height,\n padding: padding\n };\n};\n\nvar computePositionFromAnchor = function computePositionFromAnchor(_ref2) {\n var anchor = _ref2.anchor,\n translateX = _ref2.translateX,\n translateY = _ref2.translateY,\n containerWidth = _ref2.containerWidth,\n containerHeight = _ref2.containerHeight,\n width = _ref2.width,\n height = _ref2.height;\n var x = translateX;\n var y = translateY;\n\n switch (anchor) {\n case ANCHOR_TOP:\n x += (containerWidth - width) / 2;\n break;\n\n case ANCHOR_TOP_RIGHT:\n x += containerWidth - width;\n break;\n\n case ANCHOR_RIGHT:\n x += containerWidth - width;\n y += (containerHeight - height) / 2;\n break;\n\n case ANCHOR_BOTTOM_RIGHT:\n x += containerWidth - width;\n y += containerHeight - height;\n break;\n\n case ANCHOR_BOTTOM:\n x += (containerWidth - width) / 2;\n y += containerHeight - height;\n break;\n\n case ANCHOR_BOTTOM_LEFT:\n y += containerHeight - height;\n break;\n\n case ANCHOR_LEFT:\n y += (containerHeight - height) / 2;\n break;\n\n case ANCHOR_CENTER:\n x += (containerWidth - width) / 2;\n y += (containerHeight - height) / 2;\n break;\n }\n\n return {\n x: x,\n y: y\n };\n};\n\nvar computeItemLayout = function computeItemLayout(_ref3) {\n var direction = _ref3.direction,\n justify = _ref3.justify,\n symbolSize = _ref3.symbolSize,\n symbolSpacing = _ref3.symbolSpacing,\n width = _ref3.width,\n height = _ref3.height;\n var symbolX;\n var symbolY;\n var labelX;\n var labelY;\n var labelAnchor;\n var labelAlignment;\n\n switch (direction) {\n case DIRECTION_LEFT_TO_RIGHT:\n symbolX = 0;\n symbolY = (height - symbolSize) / 2;\n labelY = height / 2;\n labelAlignment = 'central';\n\n if (justify === true) {\n labelX = width;\n labelAnchor = 'end';\n } else {\n labelX = symbolSize + symbolSpacing;\n labelAnchor = 'start';\n }\n\n break;\n\n case DIRECTION_RIGHT_TO_LEFT:\n symbolX = width - symbolSize;\n symbolY = (height - symbolSize) / 2;\n labelY = height / 2;\n labelAlignment = 'central';\n\n if (justify === true) {\n labelX = 0;\n labelAnchor = 'start';\n } else {\n labelX = width - symbolSize - symbolSpacing;\n labelAnchor = 'end';\n }\n\n break;\n\n case DIRECTION_TOP_TO_BOTTOM:\n symbolX = (width - symbolSize) / 2;\n symbolY = 0;\n labelX = width / 2;\n labelAnchor = 'middle';\n\n if (justify === true) {\n labelY = height;\n labelAlignment = 'alphabetic';\n } else {\n labelY = symbolSize + symbolSpacing;\n labelAlignment = 'text-before-edge';\n }\n\n break;\n\n case DIRECTION_BOTTOM_TO_TOP:\n symbolX = (width - symbolSize) / 2;\n symbolY = height - symbolSize;\n labelX = width / 2;\n labelAnchor = 'middle';\n\n if (justify === true) {\n labelY = 0;\n labelAlignment = 'text-before-edge';\n } else {\n labelY = height - symbolSize - symbolSpacing;\n labelAlignment = 'alphabetic';\n }\n\n break;\n }\n\n return {\n symbolX: symbolX,\n symbolY: symbolY,\n labelX: labelX,\n labelY: labelY,\n labelAnchor: labelAnchor,\n labelAlignment: labelAlignment\n };\n};\n\nvar symbolPropTypes$1 = {\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n size: PropTypes.number.isRequired,\n fill: PropTypes.string.isRequired,\n borderWidth: PropTypes.number.isRequired,\n borderColor: PropTypes.string.isRequired\n};\nvar symbolDefaultProps = {\n borderWidth: 0,\n borderColor: 'transparent'\n};\n\nfunction _objectSpread$2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$2(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _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}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty$2(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SymbolCircle = function (_PureComponent) {\n _inherits(SymbolCircle, _PureComponent);\n\n function SymbolCircle() {\n _classCallCheck(this, SymbolCircle);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(SymbolCircle).apply(this, arguments));\n }\n\n _createClass(SymbolCircle, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n size = _this$props.size,\n fill = _this$props.fill,\n borderWidth = _this$props.borderWidth,\n borderColor = _this$props.borderColor;\n return React.createElement(\"circle\", {\n r: size / 2,\n cx: x + size / 2,\n cy: y + size / 2,\n fill: fill,\n strokeWidth: borderWidth,\n stroke: borderColor,\n style: {\n pointerEvents: 'none'\n }\n });\n }\n }]);\n\n return SymbolCircle;\n}(PureComponent);\n\n_defineProperty$2(SymbolCircle, \"propTypes\", _objectSpread$2({}, symbolPropTypes$1));\n\n_defineProperty$2(SymbolCircle, \"defaultProps\", _objectSpread$2({}, symbolDefaultProps));\n\nfunction _objectSpread$3(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$3(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _typeof$1(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof$1 = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof$1 = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof$1(obj);\n}\n\nfunction _classCallCheck$1(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties$1(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass$1(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$1(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$1(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn$1(self, call) {\n if (call && (_typeof$1(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized$1(self);\n}\n\nfunction _assertThisInitialized$1(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}\n\nfunction _getPrototypeOf$1(o) {\n _getPrototypeOf$1 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf$1(o);\n}\n\nfunction _inherits$1(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf$1(subClass, superClass);\n}\n\nfunction _setPrototypeOf$1(o, p) {\n _setPrototypeOf$1 = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf$1(o, p);\n}\n\nfunction _defineProperty$3(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SymbolDiamond = function (_PureComponent) {\n _inherits$1(SymbolDiamond, _PureComponent);\n\n function SymbolDiamond() {\n _classCallCheck$1(this, SymbolDiamond);\n\n return _possibleConstructorReturn$1(this, _getPrototypeOf$1(SymbolDiamond).apply(this, arguments));\n }\n\n _createClass$1(SymbolDiamond, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n size = _this$props.size,\n fill = _this$props.fill,\n borderWidth = _this$props.borderWidth,\n borderColor = _this$props.borderColor;\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(x, \",\").concat(y, \")\")\n }, React.createElement(\"path\", {\n d: \"\\n M\".concat(size / 2, \" 0\\n L\").concat(size * 0.8, \" \").concat(size / 2, \"\\n L\").concat(size / 2, \" \").concat(size, \"\\n L\").concat(size * 0.2, \" \").concat(size / 2, \"\\n L\").concat(size / 2, \" 0\\n \"),\n fill: fill,\n strokeWidth: borderWidth,\n stroke: borderColor,\n style: {\n pointerEvents: 'none'\n }\n }));\n }\n }]);\n\n return SymbolDiamond;\n}(PureComponent);\n\n_defineProperty$3(SymbolDiamond, \"propTypes\", _objectSpread$3({}, symbolPropTypes$1));\n\n_defineProperty$3(SymbolDiamond, \"defaultProps\", _objectSpread$3({}, symbolDefaultProps));\n\nfunction _objectSpread$4(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$4(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _typeof$2(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof$2 = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof$2 = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof$2(obj);\n}\n\nfunction _classCallCheck$2(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties$2(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass$2(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$2(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$2(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn$2(self, call) {\n if (call && (_typeof$2(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized$2(self);\n}\n\nfunction _assertThisInitialized$2(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}\n\nfunction _getPrototypeOf$2(o) {\n _getPrototypeOf$2 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf$2(o);\n}\n\nfunction _inherits$2(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf$2(subClass, superClass);\n}\n\nfunction _setPrototypeOf$2(o, p) {\n _setPrototypeOf$2 = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf$2(o, p);\n}\n\nfunction _defineProperty$4(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SymbolSquare = function (_PureComponent) {\n _inherits$2(SymbolSquare, _PureComponent);\n\n function SymbolSquare() {\n _classCallCheck$2(this, SymbolSquare);\n\n return _possibleConstructorReturn$2(this, _getPrototypeOf$2(SymbolSquare).apply(this, arguments));\n }\n\n _createClass$2(SymbolSquare, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n size = _this$props.size,\n fill = _this$props.fill,\n borderWidth = _this$props.borderWidth,\n borderColor = _this$props.borderColor;\n return React.createElement(\"rect\", {\n x: x,\n y: y,\n fill: fill,\n strokeWidth: borderWidth,\n stroke: borderColor,\n width: size,\n height: size,\n style: {\n pointerEvents: 'none'\n }\n });\n }\n }]);\n\n return SymbolSquare;\n}(PureComponent);\n\n_defineProperty$4(SymbolSquare, \"propTypes\", _objectSpread$4({}, symbolPropTypes$1));\n\n_defineProperty$4(SymbolSquare, \"defaultProps\", _objectSpread$4({}, symbolDefaultProps));\n\nfunction _objectSpread$5(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$5(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _typeof$3(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof$3 = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof$3 = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof$3(obj);\n}\n\nfunction _classCallCheck$3(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties$3(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass$3(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$3(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$3(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn$3(self, call) {\n if (call && (_typeof$3(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized$3(self);\n}\n\nfunction _assertThisInitialized$3(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}\n\nfunction _getPrototypeOf$3(o) {\n _getPrototypeOf$3 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf$3(o);\n}\n\nfunction _inherits$3(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf$3(subClass, superClass);\n}\n\nfunction _setPrototypeOf$3(o, p) {\n _setPrototypeOf$3 = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf$3(o, p);\n}\n\nfunction _defineProperty$5(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SymbolTriangle = function (_PureComponent) {\n _inherits$3(SymbolTriangle, _PureComponent);\n\n function SymbolTriangle() {\n _classCallCheck$3(this, SymbolTriangle);\n\n return _possibleConstructorReturn$3(this, _getPrototypeOf$3(SymbolTriangle).apply(this, arguments));\n }\n\n _createClass$3(SymbolTriangle, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n size = _this$props.size,\n fill = _this$props.fill,\n borderWidth = _this$props.borderWidth,\n borderColor = _this$props.borderColor;\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(x, \",\").concat(y, \")\")\n }, React.createElement(\"path\", {\n d: \"\\n M\".concat(size / 2, \" 0\\n L\").concat(size, \" \").concat(size, \"\\n L0 \").concat(size, \"\\n L\").concat(size / 2, \" 0\\n \"),\n fill: fill,\n strokeWidth: borderWidth,\n stroke: borderColor,\n style: {\n pointerEvents: 'none'\n }\n }));\n }\n }]);\n\n return SymbolTriangle;\n}(PureComponent);\n\n_defineProperty$5(SymbolTriangle, \"propTypes\", _objectSpread$5({}, symbolPropTypes$1));\n\n_defineProperty$5(SymbolTriangle, \"defaultProps\", _objectSpread$5({}, symbolDefaultProps));\n\nfunction _objectSpread$6(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$6(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$6(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar symbolByShape = {\n circle: SymbolCircle,\n diamond: SymbolDiamond,\n square: SymbolSquare,\n triangle: SymbolTriangle\n};\n\nvar LegendSvgItem = function LegendSvgItem(_ref) {\n var x = _ref.x,\n y = _ref.y,\n width = _ref.width,\n height = _ref.height,\n data = _ref.data,\n direction = _ref.direction,\n justify = _ref.justify,\n textColor = _ref.textColor,\n background = _ref.background,\n opacity = _ref.opacity,\n symbolShape = _ref.symbolShape,\n symbolSize = _ref.symbolSize,\n symbolSpacing = _ref.symbolSpacing,\n symbolBorderWidth = _ref.symbolBorderWidth,\n symbolBorderColor = _ref.symbolBorderColor,\n onClick = _ref.onClick,\n onMouseEnter = _ref.onMouseEnter,\n onMouseLeave = _ref.onMouseLeave,\n effects = _ref.effects;\n\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n style = _useState2[0],\n setStyle = _useState2[1];\n\n var theme = useTheme();\n var handleClick = useCallback(function (event) {\n return onClick && onClick(data, event);\n }, [onClick, data]);\n var handleMouseEnter = useCallback(function (event) {\n if (effects.length > 0) {\n var applyEffects = effects.filter(function (_ref2) {\n var on = _ref2.on;\n return on === 'hover';\n });\n\n var _style = applyEffects.reduce(function (acc, effect) {\n return _objectSpread$6({}, acc, effect.style);\n }, {});\n\n setStyle(_style);\n }\n\n if (onMouseEnter === undefined) return;\n onMouseEnter(data, event);\n }, [onMouseEnter, data, effects]);\n var handleMouseLeave = useCallback(function () {\n if (effects.length > 0) {\n var applyEffects = effects.filter(function (_ref3) {\n var on = _ref3.on;\n return on !== 'hover';\n });\n\n var _style2 = applyEffects.reduce(function (acc, effect) {\n return _objectSpread$6({}, acc, effect.style);\n }, {});\n\n setStyle(_style2);\n }\n\n if (onMouseLeave === undefined) return;\n onMouseLeave(data, event);\n }, [onMouseLeave, data, effects]);\n\n var _computeItemLayout = computeItemLayout({\n direction: direction,\n justify: justify,\n symbolSize: style.symbolSize || symbolSize,\n symbolSpacing: symbolSpacing,\n width: width,\n height: height\n }),\n symbolX = _computeItemLayout.symbolX,\n symbolY = _computeItemLayout.symbolY,\n labelX = _computeItemLayout.labelX,\n labelY = _computeItemLayout.labelY,\n labelAnchor = _computeItemLayout.labelAnchor,\n labelAlignment = _computeItemLayout.labelAlignment;\n\n var isInteractive = [onClick, onMouseEnter, onMouseLeave].some(function (handler) {\n return handler !== undefined;\n });\n\n var _Symbol;\n\n if (isFunction(symbolShape)) {\n _Symbol = symbolShape;\n } else {\n _Symbol = symbolByShape[symbolShape];\n }\n\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(x, \",\").concat(y, \")\"),\n style: {\n opacity: style.itemOpacity !== undefined ? style.itemOpacity : opacity\n }\n }, React.createElement(\"rect\", {\n width: width,\n height: height,\n fill: style.itemBackground || background,\n style: {\n cursor: isInteractive ? 'pointer' : 'auto'\n },\n onClick: handleClick,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave\n }), React.createElement(_Symbol, {\n id: data.id,\n x: symbolX,\n y: symbolY,\n size: style.symbolSize || symbolSize,\n fill: data.fill || data.color,\n borderWidth: style.symbolBorderWidth !== undefined ? style.symbolBorderWidth : symbolBorderWidth,\n borderColor: style.symbolBorderColor || symbolBorderColor\n }), React.createElement(\"text\", {\n textAnchor: labelAnchor,\n style: _objectSpread$6({}, theme.legends.text, {\n fill: style.itemTextColor || textColor,\n dominantBaseline: labelAlignment,\n pointerEvents: 'none',\n userSelect: 'none'\n }),\n x: labelX,\n y: labelY\n }, data.label));\n};\n\nLegendSvgItem.displayName = 'LegendSvgItem';\nLegendSvgItem.defaultProps = {\n direction: 'left-to-right',\n justify: false,\n textColor: 'black',\n background: 'transparent',\n opacity: 1,\n symbolShape: 'square',\n symbolSize: 16,\n symbolSpacing: 8,\n symbolBorderWidth: 0,\n symbolBorderColor: 'transparent',\n effects: []\n};\n\nfunction _objectSpread$7(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$7(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$7(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar LegendSvg = function LegendSvg(_ref) {\n var data = _ref.data,\n x = _ref.x,\n y = _ref.y,\n direction = _ref.direction,\n _padding = _ref.padding,\n justify = _ref.justify,\n effects = _ref.effects,\n itemWidth = _ref.itemWidth,\n itemHeight = _ref.itemHeight,\n itemDirection = _ref.itemDirection,\n itemsSpacing = _ref.itemsSpacing,\n itemTextColor = _ref.itemTextColor,\n itemBackground = _ref.itemBackground,\n itemOpacity = _ref.itemOpacity,\n symbolShape = _ref.symbolShape,\n symbolSize = _ref.symbolSize,\n symbolSpacing = _ref.symbolSpacing,\n symbolBorderWidth = _ref.symbolBorderWidth,\n symbolBorderColor = _ref.symbolBorderColor,\n onClick = _ref.onClick,\n onMouseEnter = _ref.onMouseEnter,\n onMouseLeave = _ref.onMouseLeave;\n\n var _computeDimensions = computeDimensions({\n itemCount: data.length,\n itemWidth: itemWidth,\n itemHeight: itemHeight,\n itemsSpacing: itemsSpacing,\n direction: direction,\n padding: _padding\n }),\n padding = _computeDimensions.padding;\n\n var xStep = 0;\n var yStep = 0;\n\n if (direction === 'row') {\n xStep = itemWidth + itemsSpacing;\n } else if (direction === 'column') {\n yStep = itemHeight + itemsSpacing;\n }\n\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(x, \",\").concat(y, \")\")\n }, data.map(function (data, i) {\n return React.createElement(LegendSvgItem, {\n key: i,\n data: data,\n x: i * xStep + padding.left,\n y: i * yStep + padding.top,\n width: itemWidth,\n height: itemHeight,\n direction: itemDirection,\n justify: justify,\n effects: effects,\n textColor: itemTextColor,\n background: itemBackground,\n opacity: itemOpacity,\n symbolShape: symbolShape,\n symbolSize: symbolSize,\n symbolSpacing: symbolSpacing,\n symbolBorderWidth: symbolBorderWidth,\n symbolBorderColor: symbolBorderColor,\n onClick: onClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n });\n }));\n};\n\nLegendSvg.defaultProps = {\n padding: 0,\n justify: false,\n itemsSpacing: 0,\n itemDirection: 'left-to-right',\n itemTextColor: 'black',\n itemBackground: 'transparent',\n itemOpacity: 1\n};\n\nfunction _objectSpread$8(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$8(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$8(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar BoxLegendSvg = function BoxLegendSvg(_ref) {\n var data = _ref.data,\n containerWidth = _ref.containerWidth,\n containerHeight = _ref.containerHeight,\n translateX = _ref.translateX,\n translateY = _ref.translateY,\n anchor = _ref.anchor,\n direction = _ref.direction,\n padding = _ref.padding,\n justify = _ref.justify,\n itemsSpacing = _ref.itemsSpacing,\n itemWidth = _ref.itemWidth,\n itemHeight = _ref.itemHeight,\n itemDirection = _ref.itemDirection,\n itemTextColor = _ref.itemTextColor,\n itemBackground = _ref.itemBackground,\n itemOpacity = _ref.itemOpacity,\n symbolShape = _ref.symbolShape,\n symbolSize = _ref.symbolSize,\n symbolSpacing = _ref.symbolSpacing,\n symbolBorderWidth = _ref.symbolBorderWidth,\n symbolBorderColor = _ref.symbolBorderColor,\n onClick = _ref.onClick,\n onMouseEnter = _ref.onMouseEnter,\n onMouseLeave = _ref.onMouseLeave,\n effects = _ref.effects;\n\n var _computeDimensions = computeDimensions({\n itemCount: data.length,\n itemsSpacing: itemsSpacing,\n itemWidth: itemWidth,\n itemHeight: itemHeight,\n direction: direction,\n padding: padding\n }),\n width = _computeDimensions.width,\n height = _computeDimensions.height;\n\n var _computePositionFromA = computePositionFromAnchor({\n anchor: anchor,\n translateX: translateX,\n translateY: translateY,\n containerWidth: containerWidth,\n containerHeight: containerHeight,\n width: width,\n height: height\n }),\n x = _computePositionFromA.x,\n y = _computePositionFromA.y;\n\n return React.createElement(LegendSvg, {\n data: data,\n x: x,\n y: y,\n direction: direction,\n padding: padding,\n justify: justify,\n effects: effects,\n itemsSpacing: itemsSpacing,\n itemWidth: itemWidth,\n itemHeight: itemHeight,\n itemDirection: itemDirection,\n itemTextColor: itemTextColor,\n itemBackground: itemBackground,\n itemOpacity: itemOpacity,\n symbolShape: symbolShape,\n symbolSize: symbolSize,\n symbolSpacing: symbolSpacing,\n symbolBorderWidth: symbolBorderWidth,\n symbolBorderColor: symbolBorderColor,\n onClick: onClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n });\n};\n\nBoxLegendSvg.defaultProps = {\n translateX: 0,\n translateY: 0,\n itemsSpacing: LegendSvg.defaultProps.itemsSpacing,\n padding: LegendSvg.defaultProps.padding\n};\nvar textPropsMapping = {\n align: {\n start: 'left',\n middle: 'center',\n end: 'right'\n },\n baseline: {\n hanging: 'top',\n middle: 'middle',\n central: 'middle',\n baseline: 'bottom'\n }\n};\n\nvar renderLegendToCanvas = function renderLegendToCanvas(ctx, _ref) {\n var data = _ref.data,\n containerWidth = _ref.containerWidth,\n containerHeight = _ref.containerHeight,\n _ref$translateX = _ref.translateX,\n translateX = _ref$translateX === void 0 ? BoxLegendSvg.defaultProps.translateX : _ref$translateX,\n _ref$translateY = _ref.translateY,\n translateY = _ref$translateY === void 0 ? BoxLegendSvg.defaultProps.translateY : _ref$translateY,\n anchor = _ref.anchor,\n direction = _ref.direction,\n _ref$padding = _ref.padding,\n _padding = _ref$padding === void 0 ? LegendSvg.defaultProps.padding : _ref$padding,\n _ref$justify = _ref.justify,\n justify = _ref$justify === void 0 ? LegendSvgItem.defaultProps.justify : _ref$justify,\n _ref$itemsSpacing = _ref.itemsSpacing,\n itemsSpacing = _ref$itemsSpacing === void 0 ? LegendSvg.defaultProps.itemsSpacing : _ref$itemsSpacing,\n itemWidth = _ref.itemWidth,\n itemHeight = _ref.itemHeight,\n _ref$itemDirection = _ref.itemDirection,\n itemDirection = _ref$itemDirection === void 0 ? LegendSvgItem.defaultProps.direction : _ref$itemDirection,\n _ref$itemTextColor = _ref.itemTextColor,\n itemTextColor = _ref$itemTextColor === void 0 ? LegendSvg.defaultProps.textColor : _ref$itemTextColor,\n _ref$symbolSize = _ref.symbolSize,\n symbolSize = _ref$symbolSize === void 0 ? LegendSvgItem.defaultProps.symbolSize : _ref$symbolSize,\n _ref$symbolSpacing = _ref.symbolSpacing,\n symbolSpacing = _ref$symbolSpacing === void 0 ? LegendSvgItem.defaultProps.symbolSpacing : _ref$symbolSpacing,\n theme = _ref.theme;\n\n var _computeDimensions = computeDimensions({\n itemCount: data.length,\n itemWidth: itemWidth,\n itemHeight: itemHeight,\n itemsSpacing: itemsSpacing,\n direction: direction,\n padding: _padding\n }),\n width = _computeDimensions.width,\n height = _computeDimensions.height,\n padding = _computeDimensions.padding;\n\n var _computePositionFromA = computePositionFromAnchor({\n anchor: anchor,\n translateX: translateX,\n translateY: translateY,\n containerWidth: containerWidth,\n containerHeight: containerHeight,\n width: width,\n height: height\n }),\n x = _computePositionFromA.x,\n y = _computePositionFromA.y;\n\n var xStep = 0;\n var yStep = 0;\n\n if (direction === DIRECTION_ROW) {\n xStep = itemWidth + itemsSpacing;\n } else if (direction === DIRECTION_COLUMN) {\n yStep = itemHeight + itemsSpacing;\n }\n\n ctx.save();\n ctx.translate(x, y);\n ctx.font = \"\".concat(theme.legends.text.fontSize, \"px \").concat(theme.legends.text.fontFamily || 'sans-serif');\n data.forEach(function (d, i) {\n var itemX = i * xStep + padding.left;\n var itemY = i * yStep + padding.top;\n\n var _computeItemLayout = computeItemLayout({\n direction: itemDirection,\n justify: justify,\n symbolSize: symbolSize,\n symbolSpacing: symbolSpacing,\n width: itemWidth,\n height: itemHeight\n }),\n symbolX = _computeItemLayout.symbolX,\n symbolY = _computeItemLayout.symbolY,\n labelX = _computeItemLayout.labelX,\n labelY = _computeItemLayout.labelY,\n labelAnchor = _computeItemLayout.labelAnchor,\n labelAlignment = _computeItemLayout.labelAlignment;\n\n ctx.fillStyle = d.color;\n ctx.fillRect(itemX + symbolX, itemY + symbolY, symbolSize, symbolSize);\n ctx.textAlign = textPropsMapping.align[labelAnchor];\n ctx.textBaseline = textPropsMapping.baseline[labelAlignment];\n ctx.fillStyle = itemTextColor || theme.legends.text.fill;\n ctx.fillText(d.label, itemX + labelX, itemY + labelY);\n });\n ctx.restore();\n};\n\nfunction _slicedToArray$1(arr, i) {\n return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _nonIterableRest$1();\n}\n\nfunction _nonIterableRest$1() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit$1(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles$1(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar useQuantizeColorScaleLegendData = function useQuantizeColorScaleLegendData(_ref) {\n var scale = _ref.scale,\n overriddenDomain = _ref.domain,\n _ref$reverse = _ref.reverse,\n reverse = _ref$reverse === void 0 ? false : _ref$reverse,\n _ref$valueFormat = _ref.valueFormat,\n valueFormat = _ref$valueFormat === void 0 ? function (v) {\n return v;\n } : _ref$valueFormat,\n _ref$separator = _ref.separator,\n separator = _ref$separator === void 0 ? ' - ' : _ref$separator;\n return useMemo(function () {\n var domain = overriddenDomain || scale.range();\n var items = domain.map(function (domainValue, index) {\n var _scale$invertExtent = scale.invertExtent(domainValue),\n _scale$invertExtent2 = _slicedToArray$1(_scale$invertExtent, 2),\n start = _scale$invertExtent2[0],\n end = _scale$invertExtent2[1];\n\n return {\n id: domainValue,\n index: index,\n extent: [start, end],\n label: \"\".concat(valueFormat(start)).concat(separator).concat(valueFormat(end)),\n value: scale(start),\n color: domainValue\n };\n });\n if (reverse === true) items.reverse();\n return items;\n }, [overriddenDomain, scale, reverse]);\n};\n\nexport { ANCHOR_BOTTOM, ANCHOR_BOTTOM_LEFT, ANCHOR_BOTTOM_RIGHT, ANCHOR_CENTER, ANCHOR_LEFT, ANCHOR_RIGHT, ANCHOR_TOP, ANCHOR_TOP_LEFT, ANCHOR_TOP_RIGHT, BoxLegendSvg, DIRECTION_BOTTOM_TO_TOP, DIRECTION_COLUMN, DIRECTION_LEFT_TO_RIGHT, DIRECTION_RIGHT_TO_LEFT, DIRECTION_ROW, DIRECTION_TOP_TO_BOTTOM, LegendPropShape, LegendSvg, LegendSvgItem, datumPropType, interactivityPropTypes, legendEffectPropType, renderLegendToCanvas, symbolPropTypes, useQuantizeColorScaleLegendData };","import colors from \"../colors.js\";\nexport default colors(\"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f\");","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"fc8d59ffffbf99d594\", \"d7191cfdae61abdda42b83ba\", \"d7191cfdae61ffffbfabdda42b83ba\", \"d53e4ffc8d59fee08be6f59899d5943288bd\", \"d53e4ffc8d59fee08bffffbfe6f59899d5943288bd\", \"d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd\", \"d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd\", \"9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2\", \"9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2\").map(colors);\nexport default ramp(scheme);","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport { Component, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport ResizeObserver from 'resize-observer-polyfill';\nvar types = ['client', 'offset', 'scroll', 'bounds', 'margin'];\n\nfunction getTypes(props) {\n var allowedTypes = [];\n types.forEach(function (type) {\n if (props[type]) {\n allowedTypes.push(type);\n }\n });\n return allowedTypes;\n}\n\nfunction getContentRect(node, types) {\n var calculations = {};\n\n if (types.indexOf('client') > -1) {\n calculations.client = {\n top: node.clientTop,\n left: node.clientLeft,\n width: node.clientWidth,\n height: node.clientHeight\n };\n }\n\n if (types.indexOf('offset') > -1) {\n calculations.offset = {\n top: node.offsetTop,\n left: node.offsetLeft,\n width: node.offsetWidth,\n height: node.offsetHeight\n };\n }\n\n if (types.indexOf('scroll') > -1) {\n calculations.scroll = {\n top: node.scrollTop,\n left: node.scrollLeft,\n width: node.scrollWidth,\n height: node.scrollHeight\n };\n }\n\n if (types.indexOf('bounds') > -1) {\n var rect = node.getBoundingClientRect();\n calculations.bounds = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.width,\n height: rect.height\n };\n }\n\n if (types.indexOf('margin') > -1) {\n var styles = getComputedStyle(node);\n calculations.margin = {\n top: styles ? parseInt(styles.marginTop) : 0,\n right: styles ? parseInt(styles.marginRight) : 0,\n bottom: styles ? parseInt(styles.marginBottom) : 0,\n left: styles ? parseInt(styles.marginLeft) : 0\n };\n }\n\n return calculations;\n}\n/**\n * Returns the global window object associated with provided element.\n */\n\n\nfunction getWindowOf(target) {\n // Assume that the element is an instance of Node, which means that it\n // has the \"ownerDocument\" property from which we can retrieve a\n // corresponding global object.\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView; // Return the local window object if it's not possible extract one from\n // provided element.\n\n return ownerGlobal || window;\n}\n\nfunction withContentRect(types) {\n return function (WrappedComponent) {\n var _class, _temp;\n\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inheritsLoose(WithContentRect, _Component);\n\n function WithContentRect() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.state = {\n contentRect: {\n entry: {},\n client: {},\n offset: {},\n scroll: {},\n bounds: {},\n margin: {}\n }\n };\n _this._animationFrameID = null;\n _this._resizeObserver = null;\n _this._node = null;\n _this._window = null;\n\n _this.measure = function (entries) {\n var contentRect = getContentRect(_this._node, types || getTypes(_this.props));\n\n if (entries) {\n contentRect.entry = entries[0].contentRect;\n }\n\n _this._animationFrameID = _this._window.requestAnimationFrame(function () {\n if (_this._resizeObserver !== null) {\n _this.setState({\n contentRect: contentRect\n });\n\n if (typeof _this.props.onResize === 'function') {\n _this.props.onResize(contentRect);\n }\n }\n });\n };\n\n _this._handleRef = function (node) {\n if (_this._resizeObserver !== null && _this._node !== null) {\n _this._resizeObserver.unobserve(_this._node);\n }\n\n _this._node = node;\n _this._window = getWindowOf(_this._node);\n var innerRef = _this.props.innerRef;\n\n if (innerRef) {\n if (typeof innerRef === 'function') {\n innerRef(_this._node);\n } else {\n innerRef.current = _this._node;\n }\n }\n\n if (_this._resizeObserver !== null && _this._node !== null) {\n _this._resizeObserver.observe(_this._node);\n }\n };\n\n return _this;\n }\n\n var _proto = WithContentRect.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this._resizeObserver = this._window !== null && this._window.ResizeObserver ? new this._window.ResizeObserver(this.measure) : new ResizeObserver(this.measure);\n\n if (this._node !== null) {\n this._resizeObserver.observe(this._node);\n\n if (typeof this.props.onResize === 'function') {\n this.props.onResize(getContentRect(this._node, types || getTypes(this.props)));\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._window !== null) {\n this._window.cancelAnimationFrame(this._animationFrameID);\n }\n\n if (this._resizeObserver !== null) {\n this._resizeObserver.disconnect();\n\n this._resizeObserver = null;\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n innerRef = _this$props.innerRef,\n onResize = _this$props.onResize,\n props = _objectWithoutPropertiesLoose(_this$props, [\"innerRef\", \"onResize\"]);\n\n return createElement(WrappedComponent, _extends({}, props, {\n measureRef: this._handleRef,\n measure: this.measure,\n contentRect: this.state.contentRect\n }));\n };\n\n return WithContentRect;\n }(Component), _class.propTypes = {\n client: PropTypes.bool,\n offset: PropTypes.bool,\n scroll: PropTypes.bool,\n bounds: PropTypes.bool,\n margin: PropTypes.bool,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n onResize: PropTypes.func\n }, _temp;\n };\n}\n\nvar Measure = withContentRect()(function (_ref) {\n var measure = _ref.measure,\n measureRef = _ref.measureRef,\n contentRect = _ref.contentRect,\n children = _ref.children;\n return children({\n measure: measure,\n measureRef: measureRef,\n contentRect: contentRect\n });\n});\nMeasure.displayName = 'Measure';\nMeasure.propTypes.children = PropTypes.func;\nexport default Measure;\nexport { withContentRect };","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}","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function () {\n return this.fill + this.align + this.sign + this.symbol + (this.zero ? \"0\" : \"\") + (this.width === undefined ? \"\" : Math.max(1, this.width | 0)) + (this.comma ? \",\" : \"\") + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0)) + (this.trim ? \"~\" : \"\") + this.type;\n};","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var baseSet = require('./_baseSet');\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nmodule.exports = set;\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"ece2f0a6bddb1c9099\", \"f6eff7bdc9e167a9cf02818a\", \"f6eff7bdc9e167a9cf1c9099016c59\", \"f6eff7d0d1e6a6bddb67a9cf1c9099016c59\", \"f6eff7d0d1e6a6bddb67a9cf3690c002818a016450\", \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450\", \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636\").map(colors);\nexport default ramp(scheme);","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"edf8b17fcdbb2c7fb8\", \"ffffcca1dab441b6c4225ea8\", \"ffffcca1dab441b6c42c7fb8253494\", \"ffffccc7e9b47fcdbb41b6c42c7fb8253494\", \"ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84\", \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84\", \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58\").map(colors);\nexport default ramp(scheme);","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","export default function (x) {\n return function () {\n return x;\n };\n}","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function (t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function (t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function (a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}","var realNames = require('./_realNames');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\nfunction getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n}\n\nmodule.exports = getFuncName;\n","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport var prefixExponent;\nexport default function (x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join(\"0\") : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i) : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var format;\nexport var formatPrefix;\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport default function (x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\nexport default {\n \"%\": function _(x, p) {\n return (x * 100).toFixed(p);\n },\n \"b\": function b(x) {\n return Math.round(x).toString(2);\n },\n \"c\": function c(x) {\n return x + \"\";\n },\n \"d\": formatDecimal,\n \"e\": function e(x, p) {\n return x.toExponential(p);\n },\n \"f\": function f(x, p) {\n return x.toFixed(p);\n },\n \"g\": function g(x, p) {\n return x.toPrecision(p);\n },\n \"o\": function o(x) {\n return Math.round(x).toString(8);\n },\n \"p\": function p(x, _p) {\n return formatRounded(x * 100, _p);\n },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function X(x) {\n return Math.round(x).toString(16).toUpperCase();\n },\n \"x\": function x(_x) {\n return Math.round(_x).toString(16);\n }\n};","export default function (x) {\n return x;\n}","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport { prefixExponent } from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\nvar map = Array.prototype.map,\n prefixes = [\"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"µ\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\nexport default function (locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type; // The \"n\" type is an alias for \",g\".\n\n if (type === \"n\") comma = true, type = \"g\"; // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\"; // If zero fill is specified, padding goes after sign and before digits.\n\n if (zero || fill === \"0\" && align === \"=\") zero = true, fill = \"0\", align = \"=\"; // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\"; // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type); // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n\n precision = precision === undefined ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i,\n n,\n c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value; // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n\n var valueNegative = value < 0 || 1 / value < 0; // Perform the initial formatting.\n\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision); // Trim insignificant zeros.\n\n if (trim) value = formatTrim(value); // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false; // Compute the prefix and suffix.\n\n valuePrefix = (valueNegative ? sign === \"(\" ? sign : minus : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\"); // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n\n if (maybeSuffix) {\n i = -1, n = value.length;\n\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n } // If the fill character is not \"0\", grouping is applied before padding.\n\n\n if (comma && !zero) value = group(value, Infinity); // Compute the padding.\n\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\"; // If the fill character is \"0\", grouping is applied after padding.\n\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\"; // Reconstruct the final output based on the desired alignment.\n\n switch (align) {\n case \"<\":\n value = valuePrefix + value + valueSuffix + padding;\n break;\n\n case \"=\":\n value = valuePrefix + padding + value + valueSuffix;\n break;\n\n case \"^\":\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n\n default:\n value = padding + valuePrefix + value + valueSuffix;\n break;\n }\n\n return numerals(value);\n }\n\n format.toString = function () {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function (value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}","export default function (grouping, thousands) {\n return function (value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}","export default function (numerals) {\n return function (value) {\n return value.replace(/[0-9]/g, function (i) {\n return numerals[+i];\n });\n };\n}","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function (s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\":\n i0 = i1 = i;\n break;\n\n case \"0\":\n if (i0 === 0) i0 = i;\n i1 = i;\n break;\n\n default:\n if (!+s[i]) break out;\n if (i0 > 0) i0 = 0;\n break;\n }\n }\n\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}","var baseCreate = require('./_baseCreate'),\n isObject = require('./isObject');\n\n/**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n}\n\nmodule.exports = createCtor;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","import \"core-js/modules/es.array.reduce.js\";\nimport \"core-js/modules/es.array.sort.js\";\nimport React, { memo, useMemo, useCallback, useState, Fragment, useRef, useEffect } from 'react';\nimport { lineCurvePropType, blendModePropType, motionPropTypes, defsPropTypes, curveFromProp, useValueFormatter, useTheme, useMotionConfig, SmartMotion, getLabelGenerator, DotsItem, withContainer, useDimensions, CartesianMarkers, bindDefs, SvgWrapper, ResponsiveWrapper, getRelativeCursor, isCursorInRect } from '@nivo/core';\nimport { ordinalColorsPropType, useOrdinalColorScale, useInheritedColor } from '@nivo/colors';\nimport { axisPropType, Grid, Axes, renderGridLinesToCanvas, renderAxesToCanvas } from '@nivo/axes';\nimport { LegendPropShape, BoxLegendSvg, renderLegendToCanvas } from '@nivo/legends';\nimport { BasicTooltip, TableTooltip, crosshairPropTypes, useTooltip, Crosshair } from '@nivo/tooltip';\nimport { line, area } from 'd3-shape';\nimport { scalePropType, computeXYScalesForSeries } from '@nivo/scales';\nimport PropTypes from 'prop-types';\nimport { TransitionMotion, spring } from 'react-motion';\nimport { Mesh as Mesh$2, useVoronoiMesh, renderVoronoiToCanvas, renderVoronoiCellToCanvas } from '@nivo/voronoi';\n\nvar LinePointTooltip = function LinePointTooltip(_ref) {\n var point = _ref.point;\n return React.createElement(BasicTooltip, {\n id: React.createElement(\"span\", null, \"x: \", React.createElement(\"strong\", null, point.data.xFormatted), \", y:\", ' ', React.createElement(\"strong\", null, point.data.yFormatted)),\n enableChip: true,\n color: point.serieColor\n });\n};\n\nvar PointTooltip = memo(LinePointTooltip);\n\nvar Chip = function Chip(_ref) {\n var color = _ref.color;\n return React.createElement(\"span\", {\n style: {\n display: 'block',\n width: '12px',\n height: '12px',\n background: color\n }\n });\n};\n\nvar SliceTooltip = function SliceTooltip(_ref2) {\n var slice = _ref2.slice,\n axis = _ref2.axis;\n var otherAxis = axis === 'x' ? 'y' : 'x';\n return React.createElement(TableTooltip, {\n rows: slice.points.map(function (point) {\n return [React.createElement(Chip, {\n key: \"chip\",\n color: point.serieColor\n }), point.serieId, React.createElement(\"strong\", {\n key: \"value\"\n }, point.data[\"\".concat(otherAxis, \"Formatted\")])];\n })\n });\n};\n\nvar SliceTooltip$1 = memo(SliceTooltip);\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar commonPropTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n data: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)])\n })).isRequired\n })).isRequired,\n xScale: scalePropType.isRequired,\n xFormat: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n yScale: scalePropType.isRequired,\n yFormat: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n layers: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['grid', 'markers', 'axes', 'areas', 'crosshair', 'lines', 'slices', 'points', 'mesh', 'legends']), PropTypes.func])).isRequired,\n curve: lineCurvePropType.isRequired,\n axisTop: axisPropType,\n axisRight: axisPropType,\n axisBottom: axisPropType,\n axisLeft: axisPropType,\n enableGridX: PropTypes.bool.isRequired,\n enableGridY: PropTypes.bool.isRequired,\n gridXValues: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]))]),\n gridYValues: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]))]),\n enablePoints: PropTypes.bool.isRequired,\n pointSymbol: PropTypes.func,\n pointSize: PropTypes.number.isRequired,\n pointColor: PropTypes.any.isRequired,\n pointBorderWidth: PropTypes.number.isRequired,\n pointBorderColor: PropTypes.any.isRequired,\n markers: PropTypes.arrayOf(PropTypes.shape({\n axis: PropTypes.oneOf(['x', 'y']).isRequired,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]).isRequired,\n style: PropTypes.object\n })),\n colors: ordinalColorsPropType.isRequired,\n enableArea: PropTypes.bool.isRequired,\n areaOpacity: PropTypes.number.isRequired,\n areaBlendMode: blendModePropType.isRequired,\n areaBaselineValue: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]).isRequired,\n lineWidth: PropTypes.number.isRequired,\n legends: PropTypes.arrayOf(PropTypes.shape(LegendPropShape)).isRequired,\n isInteractive: PropTypes.bool.isRequired,\n debugMesh: PropTypes.bool.isRequired,\n tooltip: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired,\n tooltipFormat: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n enableSlices: PropTypes.oneOf(['x', 'y', false]).isRequired,\n debugSlices: PropTypes.bool.isRequired,\n sliceTooltip: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired,\n enableCrosshair: PropTypes.bool.isRequired,\n crosshairType: crosshairPropTypes.type.isRequired\n};\n\nvar LinePropTypes = _objectSpread({}, commonPropTypes, {\n enablePointLabel: PropTypes.bool.isRequired,\n useMesh: PropTypes.bool.isRequired\n}, motionPropTypes, defsPropTypes);\n\nvar LineCanvasPropTypes = _objectSpread({\n pixelRatio: PropTypes.number.isRequired\n}, commonPropTypes);\n\nvar commonDefaultProps = {\n curve: 'linear',\n xScale: {\n type: 'point'\n },\n yScale: {\n type: 'linear',\n min: 0,\n max: 'auto'\n },\n layers: ['grid', 'markers', 'axes', 'areas', 'crosshair', 'lines', 'points', 'slices', 'mesh', 'legends'],\n axisBottom: {},\n axisLeft: {},\n enableGridX: true,\n enableGridY: true,\n enablePoints: true,\n pointSize: 6,\n pointColor: {\n from: 'color'\n },\n pointBorderWidth: 0,\n pointBorderColor: {\n theme: 'background'\n },\n colors: {\n scheme: 'nivo'\n },\n enableArea: false,\n areaBaselineValue: 0,\n areaOpacity: 0.2,\n areaBlendMode: 'normal',\n lineWidth: 2,\n legends: [],\n isInteractive: true,\n tooltip: PointTooltip,\n enableSlices: false,\n debugSlices: false,\n sliceTooltip: SliceTooltip$1,\n debugMesh: false,\n enableCrosshair: true,\n crosshairType: 'bottom-left'\n};\n\nvar LineDefaultProps = _objectSpread({}, commonDefaultProps, {\n enablePointLabel: false,\n useMesh: false,\n animate: true,\n motionStiffness: 90,\n motionDamping: 15,\n defs: [],\n fill: []\n});\n\nvar LineCanvasDefaultProps = _objectSpread({}, commonDefaultProps, {\n pixelRatio: global.window && global.window.devicePixelRatio ? global.window.devicePixelRatio : 1\n});\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _objectSpread$1(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$1(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$1(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nvar useLineGenerator = function useLineGenerator(_ref) {\n var curve = _ref.curve;\n return useMemo(function () {\n return line().defined(function (d) {\n return d.x !== null && d.y !== null;\n }).x(function (d) {\n return d.x;\n }).y(function (d) {\n return d.y;\n }).curve(curveFromProp(curve));\n }, [curve]);\n};\n\nvar useAreaGenerator = function useAreaGenerator(_ref2) {\n var curve = _ref2.curve,\n yScale = _ref2.yScale,\n areaBaselineValue = _ref2.areaBaselineValue;\n return useMemo(function () {\n return area().defined(function (d) {\n return d.x !== null && d.y !== null;\n }).x(function (d) {\n return d.x;\n }).y1(function (d) {\n return d.y;\n }).curve(curveFromProp(curve)).y0(yScale(areaBaselineValue));\n }, [curve, yScale, areaBaselineValue]);\n};\n\nvar usePoints = function usePoints(_ref3) {\n var series = _ref3.series,\n getPointColor = _ref3.getPointColor,\n getPointBorderColor = _ref3.getPointBorderColor,\n formatX = _ref3.formatX,\n formatY = _ref3.formatY;\n return useMemo(function () {\n return series.reduce(function (acc, serie) {\n return [].concat(_toConsumableArray(acc), _toConsumableArray(serie.data.filter(function (datum) {\n return datum.position.x !== null && datum.position.y !== null;\n }).map(function (datum, i) {\n var point = {\n id: \"\".concat(serie.id, \".\").concat(i),\n index: acc.length + i,\n serieId: serie.id,\n serieColor: serie.color,\n x: datum.position.x,\n y: datum.position.y\n };\n point.color = getPointColor(serie);\n point.borderColor = getPointBorderColor(point);\n point.data = _objectSpread$1({}, datum.data, {\n xFormatted: formatX(datum.data.x),\n yFormatted: formatY(datum.data.y)\n });\n return point;\n })));\n }, []);\n }, [series, getPointColor, getPointBorderColor, formatX, formatY]);\n};\n\nvar useSlices = function useSlices(_ref4) {\n var enableSlices = _ref4.enableSlices,\n points = _ref4.points,\n width = _ref4.width,\n height = _ref4.height;\n return useMemo(function () {\n if (enableSlices === false) return [];\n\n if (enableSlices === 'x') {\n var map = new Map();\n points.forEach(function (point) {\n if (point.data.x === null || point.data.y === null) return;\n if (!map.has(point.x)) map.set(point.x, [point]);else map.get(point.x).push(point);\n });\n return Array.from(map.entries()).sort(function (a, b) {\n return a[0] - b[0];\n }).map(function (_ref5, i, slices) {\n var _ref6 = _slicedToArray(_ref5, 2),\n x = _ref6[0],\n slicePoints = _ref6[1];\n\n var prevSlice = slices[i - 1];\n var nextSlice = slices[i + 1];\n var x0;\n if (!prevSlice) x0 = x;else x0 = x - (x - prevSlice[0]) / 2;\n var sliceWidth;\n if (!nextSlice) sliceWidth = width - x0;else sliceWidth = x - x0 + (nextSlice[0] - x) / 2;\n return {\n id: x,\n x0: x0,\n x: x,\n y0: 0,\n y: 0,\n width: sliceWidth,\n height: height,\n points: slicePoints.reverse()\n };\n });\n } else if (enableSlices === 'y') {\n var _map = new Map();\n\n points.forEach(function (point) {\n if (point.data.x === null || point.data.y === null) return;\n if (!_map.has(point.y)) _map.set(point.y, [point]);else _map.get(point.y).push(point);\n });\n return Array.from(_map.entries()).sort(function (a, b) {\n return a[0] - b[0];\n }).map(function (_ref7, i, slices) {\n var _ref8 = _slicedToArray(_ref7, 2),\n y = _ref8[0],\n slicePoints = _ref8[1];\n\n var prevSlice = slices[i - 1];\n var nextSlice = slices[i + 1];\n var y0;\n if (!prevSlice) y0 = y;else y0 = y - (y - prevSlice[0]) / 2;\n var sliceHeight;\n if (!nextSlice) sliceHeight = height - y0;else sliceHeight = y - y0 + (nextSlice[0] - y) / 2;\n return {\n id: y,\n x0: 0,\n x: 0,\n y0: y0,\n y: y,\n width: width,\n height: sliceHeight,\n points: slicePoints.reverse()\n };\n });\n }\n }, [enableSlices, points]);\n};\n\nvar useLine = function useLine(_ref9) {\n var data = _ref9.data,\n _ref9$xScale = _ref9.xScale,\n xScaleSpec = _ref9$xScale === void 0 ? LineDefaultProps.xScale : _ref9$xScale,\n xFormat = _ref9.xFormat,\n _ref9$yScale = _ref9.yScale,\n yScaleSpec = _ref9$yScale === void 0 ? LineDefaultProps.yScale : _ref9$yScale,\n yFormat = _ref9.yFormat,\n width = _ref9.width,\n height = _ref9.height,\n _ref9$colors = _ref9.colors,\n colors = _ref9$colors === void 0 ? LineDefaultProps.colors : _ref9$colors,\n _ref9$curve = _ref9.curve,\n curve = _ref9$curve === void 0 ? LineDefaultProps.curve : _ref9$curve,\n _ref9$areaBaselineVal = _ref9.areaBaselineValue,\n areaBaselineValue = _ref9$areaBaselineVal === void 0 ? LineDefaultProps.areaBaselineValue : _ref9$areaBaselineVal,\n _ref9$pointColor = _ref9.pointColor,\n pointColor = _ref9$pointColor === void 0 ? LineDefaultProps.pointColor : _ref9$pointColor,\n _ref9$pointBorderColo = _ref9.pointBorderColor,\n pointBorderColor = _ref9$pointBorderColo === void 0 ? LineDefaultProps.pointBorderColor : _ref9$pointBorderColo,\n _ref9$enableSlices = _ref9.enableSlices,\n enableSlices = _ref9$enableSlices === void 0 ? LineDefaultProps.enableSlicesTooltip : _ref9$enableSlices;\n var formatX = useValueFormatter(xFormat);\n var formatY = useValueFormatter(yFormat);\n var getColor = useOrdinalColorScale(colors, 'id');\n var theme = useTheme();\n var getPointColor = useInheritedColor(pointColor, theme);\n var getPointBorderColor = useInheritedColor(pointBorderColor, theme);\n\n var _useMemo = useMemo(function () {\n return computeXYScalesForSeries(data, xScaleSpec, yScaleSpec, width, height);\n }, [data, xScaleSpec, yScaleSpec, width, height]),\n xScale = _useMemo.xScale,\n yScale = _useMemo.yScale,\n rawSeries = _useMemo.series;\n\n var series = useMemo(function () {\n return rawSeries.map(function (serie) {\n return _objectSpread$1({}, serie, {\n color: getColor(serie)\n });\n });\n }, [rawSeries, getColor]);\n var points = usePoints({\n series: series,\n getPointColor: getPointColor,\n getPointBorderColor: getPointBorderColor,\n formatX: formatX,\n formatY: formatY\n });\n var slices = useSlices({\n enableSlices: enableSlices,\n points: points,\n width: width,\n height: height\n });\n var lineGenerator = useLineGenerator({\n curve: curve\n });\n var areaGenerator = useAreaGenerator({\n curve: curve,\n yScale: yScale,\n areaBaselineValue: areaBaselineValue\n });\n return {\n lineGenerator: lineGenerator,\n areaGenerator: areaGenerator,\n getColor: getColor,\n series: series,\n xScale: xScale,\n yScale: yScale,\n slices: slices,\n points: points\n };\n};\n\nvar Areas = function Areas(_ref) {\n var areaGenerator = _ref.areaGenerator,\n areaOpacity = _ref.areaOpacity,\n areaBlendMode = _ref.areaBlendMode,\n lines = _ref.lines;\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n\n if (animate !== true) {\n return React.createElement(\"g\", null, lines.slice(0).reverse().map(function (_ref2) {\n var id = _ref2.id,\n data = _ref2.data,\n areaColor = _ref2.color,\n fill = _ref2.fill;\n return React.createElement(\"path\", {\n key: id,\n d: areaGenerator(data.map(function (d) {\n return d.position;\n })),\n fill: fill ? fill : areaColor,\n fillOpacity: areaOpacity,\n strokeWidth: 0,\n style: {\n mixBlendMode: areaBlendMode\n }\n });\n }));\n }\n\n return React.createElement(\"g\", null, lines.slice(0).reverse().map(function (_ref3) {\n var id = _ref3.id,\n data = _ref3.data,\n areaColor = _ref3.color,\n fill = _ref3.fill;\n return React.createElement(SmartMotion, {\n key: id,\n style: function style(spring) {\n return {\n d: spring(areaGenerator(data.map(function (d) {\n return d.position;\n })), springConfig),\n fill: spring(areaColor, springConfig)\n };\n }\n }, function (style) {\n return React.createElement(\"path\", {\n key: id,\n d: style.d,\n fill: fill ? fill : areaColor,\n fillOpacity: areaOpacity,\n strokeWidth: 0,\n style: {\n mixBlendMode: areaBlendMode\n }\n });\n });\n }));\n};\n\nvar Areas$1 = memo(Areas);\n\nvar LinesItem = function LinesItem(_ref) {\n var lineGenerator = _ref.lineGenerator,\n id = _ref.id,\n points = _ref.points,\n color = _ref.color,\n thickness = _ref.thickness;\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n\n if (animate !== true) {\n return React.createElement(\"path\", {\n key: id,\n d: lineGenerator(points),\n fill: \"none\",\n strokeWidth: thickness,\n stroke: color\n });\n }\n\n return React.createElement(SmartMotion, {\n key: id,\n style: function style(spring) {\n return {\n d: spring(lineGenerator(points), springConfig),\n stroke: spring(color, springConfig)\n };\n }\n }, function (style) {\n return React.createElement(\"path\", {\n key: id,\n d: style.d,\n fill: \"none\",\n strokeWidth: thickness,\n stroke: style.stroke\n });\n });\n};\n\nvar LinesItem$1 = memo(LinesItem);\n\nvar Lines = function Lines(_ref) {\n var lines = _ref.lines,\n lineGenerator = _ref.lineGenerator,\n lineWidth = _ref.lineWidth;\n return lines.map(function (_ref2) {\n var id = _ref2.id,\n data = _ref2.data,\n color = _ref2.color;\n return React.createElement(LinesItem$1, {\n key: id,\n id: id,\n points: data.map(function (d) {\n return d.position;\n }),\n lineGenerator: lineGenerator,\n color: color,\n thickness: lineWidth\n });\n });\n};\n\nvar Lines$1 = memo(Lines);\n\nvar SlicesItem = function SlicesItem(_ref) {\n var slice = _ref.slice,\n axis = _ref.axis,\n debug = _ref.debug,\n tooltip = _ref.tooltip,\n isCurrent = _ref.isCurrent,\n setCurrent = _ref.setCurrent;\n\n var _useTooltip = useTooltip(),\n showTooltipFromEvent = _useTooltip.showTooltipFromEvent,\n hideTooltip = _useTooltip.hideTooltip;\n\n var handleMouseEnter = useCallback(function (event) {\n showTooltipFromEvent(React.createElement(tooltip, {\n slice: slice,\n axis: axis\n }), event, 'right');\n setCurrent(slice);\n }, [showTooltipFromEvent, tooltip, slice]);\n var handleMouseMove = useCallback(function (event) {\n showTooltipFromEvent(React.createElement(tooltip, {\n slice: slice,\n axis: axis\n }), event, 'right');\n }, [showTooltipFromEvent, tooltip, slice]);\n var handleMouseLeave = useCallback(function () {\n hideTooltip();\n setCurrent(null);\n }, [hideTooltip]);\n return React.createElement(\"rect\", {\n x: slice.x0,\n y: slice.y0,\n width: slice.width,\n height: slice.height,\n stroke: \"red\",\n strokeWidth: debug ? 1 : 0,\n strokeOpacity: 0.75,\n fill: \"red\",\n fillOpacity: isCurrent && debug ? 0.35 : 0,\n onMouseEnter: handleMouseEnter,\n onMouseMove: handleMouseMove,\n onMouseLeave: handleMouseLeave\n });\n};\n\nvar SlicesItem$1 = memo(SlicesItem);\n\nvar Slices = function Slices(_ref) {\n var slices = _ref.slices,\n axis = _ref.axis,\n debug = _ref.debug,\n height = _ref.height,\n tooltip = _ref.tooltip,\n current = _ref.current,\n setCurrent = _ref.setCurrent;\n return slices.map(function (slice) {\n return React.createElement(SlicesItem$1, {\n key: slice.id,\n slice: slice,\n axis: axis,\n debug: debug,\n height: height,\n tooltip: tooltip,\n setCurrent: setCurrent,\n isCurrent: current !== null && current.id === slice.id\n });\n });\n};\n\nvar Slices$1 = memo(Slices);\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar Points = function Points(_ref) {\n var points = _ref.points,\n symbol = _ref.symbol,\n size = _ref.size,\n borderWidth = _ref.borderWidth,\n enableLabel = _ref.enableLabel,\n label = _ref.label,\n labelYOffset = _ref.labelYOffset;\n var theme = useTheme();\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n\n var getLabel = getLabelGenerator(label);\n var mappedPoints = points.map(function (point) {\n var mappedPoint = {\n id: point.id,\n x: point.x,\n y: point.y,\n datum: point.data,\n fill: point.color,\n stroke: point.borderColor,\n label: enableLabel ? getLabel(point.data) : null\n };\n return mappedPoint;\n });\n\n if (animate !== true) {\n return React.createElement(\"g\", null, mappedPoints.map(function (point) {\n return React.createElement(DotsItem, {\n key: point.id,\n x: point.x,\n y: point.y,\n datum: point.datum,\n symbol: symbol,\n size: size,\n color: point.fill,\n borderWidth: borderWidth,\n borderColor: point.stroke,\n label: point.label,\n labelYOffset: labelYOffset,\n theme: theme\n });\n }));\n }\n\n return React.createElement(TransitionMotion, {\n styles: mappedPoints.map(function (point) {\n return {\n key: point.id,\n data: point,\n style: {\n x: spring(point.x, springConfig),\n y: spring(point.y, springConfig),\n size: spring(size, springConfig)\n }\n };\n })\n }, function (interpolatedStyles) {\n return React.createElement(\"g\", null, interpolatedStyles.map(function (_ref2) {\n var key = _ref2.key,\n style = _ref2.style,\n point = _ref2.data;\n return React.createElement(DotsItem, _extends({\n key: key\n }, style, {\n symbol: symbol,\n datum: point.datum,\n color: point.fill,\n borderWidth: borderWidth,\n borderColor: point.stroke,\n label: point.label,\n labelYOffset: labelYOffset,\n theme: theme\n }));\n }));\n });\n};\n\nPoints.defaultProps = {\n enableLabel: false,\n label: 'yFormatted'\n};\nvar Points$1 = memo(Points);\n\nvar Mesh = function Mesh(_ref) {\n var points = _ref.points,\n width = _ref.width,\n height = _ref.height,\n margin = _ref.margin,\n setCurrent = _ref.setCurrent,\n onMouseEnter = _ref.onMouseEnter,\n onMouseMove = _ref.onMouseMove,\n onMouseLeave = _ref.onMouseLeave,\n onClick = _ref.onClick,\n tooltip = _ref.tooltip,\n debug = _ref.debug;\n\n var _useTooltip = useTooltip(),\n showTooltipAt = _useTooltip.showTooltipAt,\n hideTooltip = _useTooltip.hideTooltip;\n\n var handleMouseEnter = useCallback(function (point, event) {\n showTooltipAt(React.createElement(tooltip, {\n point: point\n }), [point.x + margin.left, point.y + margin.top], 'top');\n setCurrent(point);\n onMouseEnter && onMouseEnter(point, event);\n }, [setCurrent, showTooltipAt, tooltip, onMouseEnter, margin]);\n var handleMouseMove = useCallback(function (point, event) {\n showTooltipAt(React.createElement(tooltip, {\n point: point\n }), [point.x + margin.left, point.y + margin.top], 'top');\n setCurrent(point);\n onMouseMove && onMouseMove(point, event);\n }, [setCurrent, showTooltipAt, tooltip, onMouseMove]);\n var handleMouseLeave = useCallback(function (point, event) {\n hideTooltip();\n setCurrent(null);\n onMouseLeave && onMouseLeave(point, event);\n }, [hideTooltip, setCurrent, onMouseLeave]);\n var handleClick = useCallback(function (point, event) {\n onClick && onClick(point, event);\n }, [onClick]);\n return React.createElement(Mesh$2, {\n nodes: points,\n width: width,\n height: height,\n onMouseEnter: handleMouseEnter,\n onMouseMove: handleMouseMove,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n debug: debug\n });\n};\n\nvar Mesh$1 = memo(Mesh);\n\nfunction _objectSpread$2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$2(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$2(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends$1() {\n _extends$1 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$1.apply(this, arguments);\n}\n\nfunction _slicedToArray$1(arr, i) {\n return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _nonIterableRest$1();\n}\n\nfunction _nonIterableRest$1() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit$1(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles$1(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar Line = function Line(props) {\n var data = props.data,\n xScaleSpec = props.xScale,\n xFormat = props.xFormat,\n yScaleSpec = props.yScale,\n yFormat = props.yFormat,\n layers = props.layers,\n curve = props.curve,\n areaBaselineValue = props.areaBaselineValue,\n colors = props.colors,\n partialMargin = props.margin,\n width = props.width,\n height = props.height,\n axisTop = props.axisTop,\n axisRight = props.axisRight,\n axisBottom = props.axisBottom,\n axisLeft = props.axisLeft,\n enableGridX = props.enableGridX,\n enableGridY = props.enableGridY,\n gridXValues = props.gridXValues,\n gridYValues = props.gridYValues,\n lineWidth = props.lineWidth,\n enableArea = props.enableArea,\n areaOpacity = props.areaOpacity,\n areaBlendMode = props.areaBlendMode,\n enablePoints = props.enablePoints,\n pointSymbol = props.pointSymbol,\n pointSize = props.pointSize,\n pointColor = props.pointColor,\n pointBorderWidth = props.pointBorderWidth,\n pointBorderColor = props.pointBorderColor,\n enablePointLabel = props.enablePointLabel,\n pointLabel = props.pointLabel,\n pointLabelFormat = props.pointLabelFormat,\n pointLabelYOffset = props.pointLabelYOffset,\n defs = props.defs,\n fill = props.fill,\n markers = props.markers,\n legends = props.legends,\n isInteractive = props.isInteractive,\n useMesh = props.useMesh,\n debugMesh = props.debugMesh,\n onMouseEnter = props.onMouseEnter,\n onMouseMove = props.onMouseMove,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n tooltip = props.tooltip,\n enableSlices = props.enableSlices,\n debugSlices = props.debugSlices,\n sliceTooltip = props.sliceTooltip,\n enableCrosshair = props.enableCrosshair,\n crosshairType = props.crosshairType;\n\n var _useDimensions = useDimensions(width, height, partialMargin),\n margin = _useDimensions.margin,\n innerWidth = _useDimensions.innerWidth,\n innerHeight = _useDimensions.innerHeight,\n outerWidth = _useDimensions.outerWidth,\n outerHeight = _useDimensions.outerHeight;\n\n var _useLine = useLine({\n data: data,\n xScale: xScaleSpec,\n xFormat: xFormat,\n yScale: yScaleSpec,\n yFormat: yFormat,\n width: innerWidth,\n height: innerHeight,\n colors: colors,\n curve: curve,\n areaBaselineValue: areaBaselineValue,\n pointColor: pointColor,\n pointBorderColor: pointBorderColor,\n enableSlices: enableSlices\n }),\n lineGenerator = _useLine.lineGenerator,\n areaGenerator = _useLine.areaGenerator,\n series = _useLine.series,\n xScale = _useLine.xScale,\n yScale = _useLine.yScale,\n slices = _useLine.slices,\n points = _useLine.points;\n\n var theme = useTheme();\n var getPointColor = useInheritedColor(pointColor, theme);\n var getPointBorderColor = useInheritedColor(pointBorderColor, theme);\n\n var _useState = useState(null),\n _useState2 = _slicedToArray$1(_useState, 2),\n currentPoint = _useState2[0],\n setCurrentPoint = _useState2[1];\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray$1(_useState3, 2),\n currentSlice = _useState4[0],\n setCurrentSlice = _useState4[1];\n\n var legendData = useMemo(function () {\n return series.map(function (line) {\n return {\n id: line.id,\n label: line.id,\n color: line.color\n };\n }).reverse();\n }, [series]);\n var layerById = {\n grid: React.createElement(Grid, {\n key: \"grid\",\n theme: theme,\n width: innerWidth,\n height: innerHeight,\n xScale: enableGridX ? xScale : null,\n yScale: enableGridY ? yScale : null,\n xValues: gridXValues,\n yValues: gridYValues\n }),\n markers: React.createElement(CartesianMarkers, {\n key: \"markers\",\n markers: markers,\n width: innerWidth,\n height: innerHeight,\n xScale: xScale,\n yScale: yScale,\n theme: theme\n }),\n axes: React.createElement(Axes, {\n key: \"axes\",\n xScale: xScale,\n yScale: yScale,\n width: innerWidth,\n height: innerHeight,\n theme: theme,\n top: axisTop,\n right: axisRight,\n bottom: axisBottom,\n left: axisLeft\n }),\n areas: null,\n lines: React.createElement(Lines$1, {\n key: \"lines\",\n lines: series,\n lineGenerator: lineGenerator,\n lineWidth: lineWidth\n }),\n slices: null,\n points: null,\n crosshair: null,\n mesh: null,\n legends: legends.map(function (legend, i) {\n return React.createElement(BoxLegendSvg, _extends$1({\n key: \"legend.\".concat(i)\n }, legend, {\n containerWidth: innerWidth,\n containerHeight: innerHeight,\n data: legend.data || legendData,\n theme: theme\n }));\n })\n };\n var boundDefs = bindDefs(defs, series, fill);\n\n if (enableArea) {\n layerById.areas = React.createElement(Areas$1, {\n key: \"areas\",\n areaGenerator: areaGenerator,\n areaOpacity: areaOpacity,\n areaBlendMode: areaBlendMode,\n lines: series\n });\n }\n\n if (isInteractive && enableSlices !== false) {\n layerById.slices = React.createElement(Slices$1, {\n key: \"slices\",\n slices: slices,\n axis: enableSlices,\n debug: debugSlices,\n height: innerHeight,\n tooltip: sliceTooltip,\n current: currentSlice,\n setCurrent: setCurrentSlice\n });\n }\n\n if (enablePoints) {\n layerById.points = React.createElement(Points$1, {\n key: \"points\",\n points: points,\n symbol: pointSymbol,\n size: pointSize,\n color: getPointColor,\n borderWidth: pointBorderWidth,\n borderColor: getPointBorderColor,\n enableLabel: enablePointLabel,\n label: pointLabel,\n labelFormat: pointLabelFormat,\n labelYOffset: pointLabelYOffset\n });\n }\n\n if (isInteractive && enableCrosshair) {\n if (currentPoint !== null) {\n layerById.crosshair = React.createElement(Crosshair, {\n key: \"crosshair\",\n width: innerWidth,\n height: innerHeight,\n x: currentPoint.x,\n y: currentPoint.y,\n type: crosshairType\n });\n }\n\n if (currentSlice !== null) {\n layerById.crosshair = React.createElement(Crosshair, {\n key: \"crosshair\",\n width: innerWidth,\n height: innerHeight,\n x: currentSlice.x,\n y: currentSlice.y,\n type: enableSlices\n });\n }\n }\n\n if (isInteractive && useMesh && enableSlices === false) {\n layerById.mesh = React.createElement(Mesh$1, {\n key: \"mesh\",\n points: points,\n width: innerWidth,\n height: innerHeight,\n margin: margin,\n current: currentPoint,\n setCurrent: setCurrentPoint,\n onMouseEnter: onMouseEnter,\n onMouseMove: onMouseMove,\n onMouseLeave: onMouseLeave,\n onClick: onClick,\n tooltip: tooltip,\n debug: debugMesh\n });\n }\n\n return React.createElement(SvgWrapper, {\n defs: boundDefs,\n width: outerWidth,\n height: outerHeight,\n margin: margin\n }, layers.map(function (layer, i) {\n if (typeof layer === 'function') {\n return React.createElement(Fragment, {\n key: i\n }, layer(_objectSpread$2({}, props, {\n innerWidth: innerWidth,\n innerHeight: innerHeight,\n series: series,\n slices: slices,\n points: points,\n xScale: xScale,\n yScale: yScale,\n lineGenerator: lineGenerator,\n areaGenerator: areaGenerator,\n currentPoint: currentPoint,\n setCurrentPoint: setCurrentPoint,\n currentSlice: currentSlice,\n setCurrentSlice: setCurrentSlice\n })));\n }\n\n return layerById[layer];\n }));\n};\n\nLine.defaultProps = LineDefaultProps;\nvar Line$1 = withContainer(Line);\n\nfunction _extends$2() {\n _extends$2 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$2.apply(this, arguments);\n}\n\nvar ResponsiveLine = function ResponsiveLine(props) {\n return React.createElement(ResponsiveWrapper, null, function (_ref) {\n var width = _ref.width,\n height = _ref.height;\n return React.createElement(Line$1, _extends$2({\n width: width,\n height: height\n }, props));\n });\n};\n\nfunction _objectSpread$3(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$3(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$3(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray$2(arr, i) {\n return _arrayWithHoles$2(arr) || _iterableToArrayLimit$2(arr, i) || _nonIterableRest$2();\n}\n\nfunction _nonIterableRest$2() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit$2(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles$2(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar LineCanvas = function LineCanvas(_ref) {\n var width = _ref.width,\n height = _ref.height,\n partialMargin = _ref.margin,\n pixelRatio = _ref.pixelRatio,\n data = _ref.data,\n xScaleSpec = _ref.xScale,\n xFormat = _ref.xFormat,\n yScaleSpec = _ref.yScale,\n yFormat = _ref.yFormat,\n curve = _ref.curve,\n layers = _ref.layers,\n colors = _ref.colors,\n lineWidth = _ref.lineWidth,\n enableArea = _ref.enableArea,\n areaBaselineValue = _ref.areaBaselineValue,\n areaOpacity = _ref.areaOpacity,\n enablePoints = _ref.enablePoints,\n pointSize = _ref.pointSize,\n pointColor = _ref.pointColor,\n pointBorderWidth = _ref.pointBorderWidth,\n pointBorderColor = _ref.pointBorderColor,\n enableGridX = _ref.enableGridX,\n gridXValues = _ref.gridXValues,\n enableGridY = _ref.enableGridY,\n gridYValues = _ref.gridYValues,\n axisTop = _ref.axisTop,\n axisRight = _ref.axisRight,\n axisBottom = _ref.axisBottom,\n axisLeft = _ref.axisLeft,\n legends = _ref.legends,\n isInteractive = _ref.isInteractive,\n debugMesh = _ref.debugMesh,\n onMouseLeave = _ref.onMouseLeave,\n onClick = _ref.onClick,\n tooltip = _ref.tooltip;\n var canvasEl = useRef(null);\n\n var _useDimensions = useDimensions(width, height, partialMargin),\n margin = _useDimensions.margin,\n innerWidth = _useDimensions.innerWidth,\n innerHeight = _useDimensions.innerHeight,\n outerWidth = _useDimensions.outerWidth,\n outerHeight = _useDimensions.outerHeight;\n\n var theme = useTheme();\n\n var _useState = useState(null),\n _useState2 = _slicedToArray$2(_useState, 2),\n currentPoint = _useState2[0],\n setCurrentPoint = _useState2[1];\n\n var _useLine = useLine({\n data: data,\n xScale: xScaleSpec,\n xFormat: xFormat,\n yScale: yScaleSpec,\n yFormat: yFormat,\n width: innerWidth,\n height: innerHeight,\n colors: colors,\n curve: curve,\n areaBaselineValue: areaBaselineValue,\n pointColor: pointColor,\n pointBorderColor: pointBorderColor\n }),\n lineGenerator = _useLine.lineGenerator,\n areaGenerator = _useLine.areaGenerator,\n series = _useLine.series,\n xScale = _useLine.xScale,\n yScale = _useLine.yScale,\n points = _useLine.points;\n\n var _useVoronoiMesh = useVoronoiMesh({\n points: points,\n width: innerWidth,\n height: innerHeight,\n debug: debugMesh\n }),\n delaunay = _useVoronoiMesh.delaunay,\n voronoi = _useVoronoiMesh.voronoi;\n\n useEffect(function () {\n canvasEl.current.width = outerWidth * pixelRatio;\n canvasEl.current.height = outerHeight * pixelRatio;\n var ctx = canvasEl.current.getContext('2d');\n ctx.scale(pixelRatio, pixelRatio);\n ctx.fillStyle = theme.background;\n ctx.fillRect(0, 0, outerWidth, outerHeight);\n ctx.translate(margin.left, margin.top);\n layers.forEach(function (layer) {\n if (layer === 'grid' && theme.grid.line.strokeWidth > 0) {\n ctx.lineWidth = theme.grid.line.strokeWidth;\n ctx.strokeStyle = theme.grid.line.stroke;\n enableGridX && renderGridLinesToCanvas(ctx, {\n width: innerWidth,\n height: innerHeight,\n scale: xScale,\n axis: 'x',\n values: gridXValues\n });\n enableGridY && renderGridLinesToCanvas(ctx, {\n width: innerWidth,\n height: innerHeight,\n scale: yScale,\n axis: 'y',\n values: gridYValues\n });\n }\n\n if (layer === 'axes') {\n renderAxesToCanvas(ctx, {\n xScale: xScale,\n yScale: yScale,\n width: innerWidth,\n height: innerHeight,\n top: axisTop,\n right: axisRight,\n bottom: axisBottom,\n left: axisLeft,\n theme: theme\n });\n }\n\n if (layer === 'areas' && enableArea === true) {\n ctx.save();\n ctx.globalAlpha = areaOpacity;\n areaGenerator.context(ctx);\n series.forEach(function (serie) {\n ctx.fillStyle = serie.color;\n ctx.beginPath();\n areaGenerator(serie.data.map(function (d) {\n return d.position;\n }));\n ctx.fill();\n });\n ctx.restore();\n }\n\n if (layer === 'lines') {\n lineGenerator.context(ctx);\n series.forEach(function (serie) {\n ctx.strokeStyle = serie.color;\n ctx.lineWidth = lineWidth;\n ctx.beginPath();\n lineGenerator(serie.data.map(function (d) {\n return d.position;\n }));\n ctx.stroke();\n });\n }\n\n if (layer === 'points' && enablePoints === true && pointSize > 0) {\n points.forEach(function (point) {\n ctx.fillStyle = point.color;\n ctx.beginPath();\n ctx.arc(point.x, point.y, pointSize / 2, 0, 2 * Math.PI);\n ctx.fill();\n\n if (pointBorderWidth > 0) {\n ctx.strokeStyle = point.borderColor;\n ctx.lineWidth = pointBorderWidth;\n ctx.stroke();\n }\n });\n }\n\n if (layer === 'mesh' && debugMesh === true) {\n renderVoronoiToCanvas(ctx, voronoi);\n\n if (currentPoint) {\n renderVoronoiCellToCanvas(ctx, voronoi, currentPoint.index);\n }\n }\n\n if (layer === 'legends') {\n var legendData = series.map(function (serie) {\n return {\n id: serie.id,\n label: serie.id,\n color: serie.color\n };\n }).reverse();\n legends.forEach(function (legend) {\n renderLegendToCanvas(ctx, _objectSpread$3({}, legend, {\n data: legend.data || legendData,\n containerWidth: innerWidth,\n containerHeight: innerHeight,\n theme: theme\n }));\n });\n }\n });\n }, [canvasEl, outerWidth, outerHeight, layers, theme, lineGenerator, series, xScale, yScale, enableGridX, gridXValues, enableGridY, gridYValues, axisTop, axisRight, axisBottom, axisLeft, legends, points, enablePoints, pointSize, currentPoint]);\n var getPointFromMouseEvent = useCallback(function (event) {\n var _getRelativeCursor = getRelativeCursor(canvasEl.current, event),\n _getRelativeCursor2 = _slicedToArray$2(_getRelativeCursor, 2),\n x = _getRelativeCursor2[0],\n y = _getRelativeCursor2[1];\n\n if (!isCursorInRect(margin.left, margin.top, innerWidth, innerHeight, x, y)) return null;\n var pointIndex = delaunay.find(x - margin.left, y - margin.top);\n return points[pointIndex];\n }, [canvasEl, margin, innerWidth, innerHeight, delaunay]);\n\n var _useTooltip = useTooltip(),\n showTooltipFromEvent = _useTooltip.showTooltipFromEvent,\n hideTooltip = _useTooltip.hideTooltip;\n\n var handleMouseHover = useCallback(function (event) {\n var point = getPointFromMouseEvent(event);\n setCurrentPoint(point);\n\n if (point) {\n showTooltipFromEvent(React.createElement(tooltip, {\n point: point\n }), event);\n } else {\n hideTooltip();\n }\n }, [getPointFromMouseEvent, setCurrentPoint, showTooltipFromEvent, hideTooltip, tooltip]);\n var handleMouseLeave = useCallback(function (event) {\n hideTooltip();\n setCurrentPoint(null);\n currentPoint && onMouseLeave && onMouseLeave(currentPoint, event);\n }, [hideTooltip, setCurrentPoint, onMouseLeave]);\n var handleClick = useCallback(function (event) {\n if (onClick) {\n var point = getPointFromMouseEvent(event);\n point && onClick(point, event);\n }\n }, [getPointFromMouseEvent, onClick]);\n return React.createElement(\"canvas\", {\n ref: canvasEl,\n width: outerWidth * pixelRatio,\n height: outerHeight * pixelRatio,\n style: {\n width: outerWidth,\n height: outerHeight,\n cursor: isInteractive ? 'auto' : 'normal'\n },\n onMouseEnter: isInteractive ? handleMouseHover : undefined,\n onMouseMove: isInteractive ? handleMouseHover : undefined,\n onMouseLeave: isInteractive ? handleMouseLeave : undefined,\n onClick: isInteractive ? handleClick : undefined\n });\n};\n\nLineCanvas.defaultProps = LineCanvasDefaultProps;\nvar LineCanvas$1 = withContainer(LineCanvas);\n\nfunction _extends$3() {\n _extends$3 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$3.apply(this, arguments);\n}\n\nvar ResponsiveLineCanvas = function ResponsiveLineCanvas(props) {\n return React.createElement(ResponsiveWrapper, null, function (_ref) {\n var width = _ref.width,\n height = _ref.height;\n return React.createElement(LineCanvas$1, _extends$3({\n width: width,\n height: height\n }, props));\n });\n};\n\nexport { Line$1 as Line, LineCanvas$1 as LineCanvas, LineCanvasDefaultProps, LineCanvasPropTypes, LineDefaultProps, LinePropTypes, ResponsiveLine, ResponsiveLineCanvas, useAreaGenerator, useLine, useLineGenerator, useSlices };","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;","import define, { extend } from \"./define.js\";\nimport { Color, rgbConvert, Rgb, darker as _darker, brighter as _brighter } from \"./color.js\";\nimport { deg2rad, rad2deg } from \"./math.js\";\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)),\n // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function rgb() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(255 * (l + a * (A * cosh + B * sinh)), 255 * (l + a * (C * cosh + D * sinh)), 255 * (l + a * (E * cosh)), this.opacity);\n }\n}));","var basePickBy = require('./_basePickBy'),\n hasIn = require('./hasIn');\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nmodule.exports = basePick;\n","import define, { extend } from \"./define.js\";\nexport function Color() {}\nvar _darker = 0.7;\nexport { _darker as darker };\n\nvar _brighter = 1 / _darker;\n\nexport { _brighter as brighter };\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\ndefine(Color, color, {\n copy: function copy(channels) {\n return Object.assign(new this.constructor(), this, channels);\n },\n displayable: function displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb(m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, (m & 0xf) << 4 | m & 0xf, 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba(m >> 12 & 0xf | m >> 8 & 0xf0, m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, ((m & 0xf) << 4 | m & 0xf) / 0xff) // #f000\n : null // invalid hex\n ) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb();\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\ndefine(Rgb, rgb, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function rgb() {\n return this;\n },\n displayable: function displayable() {\n return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;\n },\n hex: rgb_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;else if (l <= 0 || l >= 1) h = s = NaN;else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl();\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;else if (g === max) h = (b - r) / s + 2;else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n\n return new Hsl(h, s, l, o.opacity);\n}\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity);\n },\n displayable: function displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;\n },\n formatHsl: function formatHsl() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\") + (this.h || 0) + \", \" + (this.s || 0) * 100 + \"%, \" + (this.l || 0) * 100 + \"%\" + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n/* From FvD 13.37, CSS Color Module Level 3 */\n\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;\n}","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var global = require('../internals/global');\nvar toPositiveInteger = require('../internals/to-positive-integer');\n\nvar RangeError = global.RangeError;\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","/**\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 getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * 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","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar aCallable = require('../internals/a-callable');\nvar internalSort = require('../internals/array-sort');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = global.Uint16Array;\nvar un$Sort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!un$Sort && !(fails(function () {\n un$Sort(new Uint16Array(2), null);\n}) && fails(function () {\n un$Sort(new Uint16Array(2), {});\n}));\n\nvar STABLE_SORT = !!un$Sort && !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 74;\n if (FF) return FF < 67;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 602;\n\n var array = new Uint16Array(516);\n var expected = Array(516);\n var index, mod;\n\n for (index = 0; index < 516; index++) {\n mod = index % 4;\n array[index] = 515 - index;\n expected[index] = index - 2 * mod + 3;\n }\n\n un$Sort(array, function (a, b) {\n return (a / 4 | 0) - (b / 4 | 0);\n });\n\n for (index = 0; index < 516; index++) {\n if (array[index] !== expected[index]) return true;\n }\n});\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (y !== y) return -1;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (x !== x) return 1;\n if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;\n return x > y;\n };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n if (STABLE_SORT) return un$Sort(this, comparefn);\n\n return internalSort(aTypedArray(this), getSortCompare(comparefn));\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar pick = function pick(obj, keys) {\n var result = {};\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (obj.hasOwnProperty(key)) {\n result[key] = obj[key];\n }\n }\n\n return result;\n};\n\nvar _default = pick;\nexports.default = _default;","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var baseRest = require('./_baseRest'),\n createWrap = require('./_createWrap'),\n getHolder = require('./_getHolder'),\n replaceHolders = require('./_replaceHolders');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\nvar partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n});\n\n// Assign default placeholders.\npartialRight.placeholder = {};\n\nmodule.exports = partialRight;\n","import colors from \"../colors.js\";\nexport default colors(\"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666\");","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var basePick = require('./_basePick'),\n flatRest = require('./_flatRest');\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nmodule.exports = pick;\n","/** Used to lookup unminified function names. */\nvar realNames = {};\n\nmodule.exports = realNames;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var metaMap = require('./_metaMap'),\n noop = require('./noop');\n\n/**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\nvar getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n};\n\nmodule.exports = getData;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var LazyWrapper = require('./_LazyWrapper'),\n LodashWrapper = require('./_LodashWrapper'),\n baseLodash = require('./_baseLodash'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike'),\n wrapperClone = require('./_wrapperClone');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\nfunction lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n}\n\n// Ensure wrappers are instances of `baseLodash`.\nlodash.prototype = baseLodash.prototype;\nlodash.prototype.constructor = lodash;\n\nmodule.exports = lodash;\n","import ascending from \"./ascending.js\";\nexport default function (f) {\n var delta = f;\n var compare = f;\n\n if (f.length === 1) {\n delta = function delta(d, x) {\n return f(d) - x;\n };\n\n compare = ascendingComparator(f);\n }\n\n function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;else hi = mid;\n }\n\n return lo;\n }\n\n function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;else lo = mid + 1;\n }\n\n return lo;\n }\n\n function center(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n var i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {\n left: left,\n center: center,\n right: right\n };\n}\n\nfunction ascendingComparator(f) {\n return function (d, x) {\n return ascending(f(d), x);\n };\n}","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = {\n noWobble: {\n stiffness: 170,\n damping: 26\n },\n // the default, if nothing provided\n gentle: {\n stiffness: 120,\n damping: 14\n },\n wobbly: {\n stiffness: 180,\n damping: 12\n },\n stiff: {\n stiffness: 210,\n damping: 20\n }\n};\nmodule.exports = exports[\"default\"];","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"ef8a62ffffff999999\", \"ca0020f4a582bababa404040\", \"ca0020f4a582ffffffbababa404040\", \"b2182bef8a62fddbc7e0e0e09999994d4d4d\", \"b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d\", \"b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d\", \"b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d\", \"67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a\", \"67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a\").map(colors);\nexport default ramp(scheme);","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseDifference;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","'use strict';\n\nexports.__esModule = true;\nexports['default'] = reorderKeys;\nvar hasWarned = false;\n\nfunction reorderKeys() {\n if (process.env.NODE_ENV === 'development') {\n if (!hasWarned) {\n hasWarned = true;\n console.error('`reorderKeys` has been removed, since it is no longer needed for TransitionMotion\\'s new styles array API.');\n }\n }\n}\n\nmodule.exports = exports['default'];","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n}\n\nmodule.exports = composeArgsRight;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var LazyWrapper = require('./_LazyWrapper'),\n getData = require('./_getData'),\n getFuncName = require('./_getFuncName'),\n lodash = require('./wrapperLodash');\n\n/**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\nfunction isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n}\n\nmodule.exports = isLaziable;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\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}","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * 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","'use strict';\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS = !fails(function () {\n // eslint-disable-next-line es-x/no-typed-arrays -- required for testing\n var array = new Uint8ClampedArray(2);\n call($set, array, { length: 1, 0: 3 }, 1);\n return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n var array = new Int8Array(2);\n array.set(1);\n array.set('2', 1);\n return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var src = toIndexedObject(arrayLike);\n if (WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n var length = this.length;\n var len = lengthOfArrayLike(src);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _react = require(\"react\");\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar defaultProps = function defaultProps(props) {\n return function (BaseComponent) {\n var factory = (0, _react.createFactory)(BaseComponent);\n\n var DefaultProps = function DefaultProps(ownerProps) {\n return factory(ownerProps);\n };\n\n DefaultProps.defaultProps = props;\n\n if (process.env.NODE_ENV !== 'production') {\n return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'defaultProps'))(DefaultProps);\n }\n\n return DefaultProps;\n };\n};\n\nvar _default = defaultProps;\nexports.default = _default;","var arrayMap = require('./_arrayMap'),\n baseClone = require('./_baseClone'),\n baseUnset = require('./_baseUnset'),\n castPath = require('./_castPath'),\n copyObject = require('./_copyObject'),\n customOmitClone = require('./_customOmitClone'),\n flatRest = require('./_flatRest'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nmodule.exports = omit;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var $ = require('../internals/export');\n\n// eslint-disable-next-line es-x/no-math-hypot -- required for testing\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.es/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, arity: 2, forced: BUGGY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n hypot: function hypot(value1, value2) {\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * sqrt(sum);\n }\n});\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var t0 = new Date(),\n t1 = new Date();\nexport default function newInterval(floori, offseti, count, field) {\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date() : new Date(+date)), date;\n }\n\n interval.floor = function (date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function (date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function (date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function (date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function (start, stop, step) {\n var range = [],\n previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n\n do {\n range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n } while (previous < start && start < stop);\n\n return range;\n };\n\n interval.filter = function (test) {\n return newInterval(function (date) {\n if (date >= date) while (floori(date), !test(date)) {\n date.setTime(date - 1);\n }\n }, function (date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n\n }\n }\n });\n };\n\n if (count) {\n interval.count = function (start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function (step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? function (d) {\n return field(d) % step === 0;\n } : function (d) {\n return interval.count(0, d) % step === 0;\n });\n };\n }\n\n return interval;\n}","import interval from \"./interval.js\";\nvar millisecond = interval(function () {// noop\n}, function (date, step) {\n date.setTime(+date + step);\n}, function (start, end) {\n return end - start;\n}); // An optimized implementation for this simple case.\n\nmillisecond.every = function (k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function (date) {\n date.setTime(Math.floor(date / k) * k);\n }, function (date, step) {\n date.setTime(+date + step * k);\n }, function (start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;","import interval from \"./interval.js\";\nimport { durationSecond } from \"./duration.js\";\nvar second = interval(function (date) {\n date.setTime(date - date.getMilliseconds());\n}, function (date, step) {\n date.setTime(+date + step * durationSecond);\n}, function (start, end) {\n return (end - start) / durationSecond;\n}, function (date) {\n return date.getUTCSeconds();\n});\nexport default second;\nexport var seconds = second.range;","export var durationSecond = 1000;\nexport var durationMinute = durationSecond * 60;\nexport var durationHour = durationMinute * 60;\nexport var durationDay = durationHour * 24;\nexport var durationWeek = durationDay * 7;\nexport var durationMonth = durationDay * 30;\nexport var durationYear = durationDay * 365;","import interval from \"./interval.js\";\nimport { durationMinute, durationSecond } from \"./duration.js\";\nvar minute = interval(function (date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getMinutes();\n});\nexport default minute;\nexport var minutes = minute.range;","import interval from \"./interval.js\";\nimport { durationHour, durationMinute, durationSecond } from \"./duration.js\";\nvar hour = interval(function (date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function (date, step) {\n date.setTime(+date + step * durationHour);\n}, function (start, end) {\n return (end - start) / durationHour;\n}, function (date) {\n return date.getHours();\n});\nexport default hour;\nexport var hours = hour.range;","import interval from \"./interval.js\";\nimport { durationDay, durationMinute } from \"./duration.js\";\nvar day = interval(function (date) {\n return date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n return date.setDate(date.getDate() + step);\n}, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function (date) {\n return date.getDate() - 1;\n});\nexport default day;\nexport var days = day.range;","import interval from \"./interval.js\";\nimport { durationMinute, durationWeek } from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function (date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;","import interval from \"./interval.js\";\nvar month = interval(function (date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setMonth(date.getMonth() + step);\n}, function (start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function (date) {\n return date.getMonth();\n});\nexport default month;\nexport var months = month.range;","import interval from \"./interval.js\";\nvar year = interval(function (date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function (start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function (date) {\n return date.getFullYear();\n}); // An optimized implementation for this simple case.\n\nyear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;","import interval from \"./interval.js\";\nimport { durationMinute } from \"./duration.js\";\nvar utcMinute = interval(function (date) {\n date.setUTCSeconds(0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getUTCMinutes();\n});\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;","import interval from \"./interval.js\";\nimport { durationHour } from \"./duration.js\";\nvar utcHour = interval(function (date) {\n date.setUTCMinutes(0, 0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationHour);\n}, function (start, end) {\n return (end - start) / durationHour;\n}, function (date) {\n return date.getUTCHours();\n});\nexport default utcHour;\nexport var utcHours = utcHour.range;","import interval from \"./interval.js\";\nimport { durationDay } from \"./duration.js\";\nvar utcDay = interval(function (date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function (start, end) {\n return (end - start) / durationDay;\n}, function (date) {\n return date.getUTCDate() - 1;\n});\nexport default utcDay;\nexport var utcDays = utcDay.range;","import interval from \"./interval.js\";\nimport { durationWeek } from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function (date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function (start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;","import interval from \"./interval.js\";\nvar utcMonth = interval(function (date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function (start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function (date) {\n return date.getUTCMonth();\n});\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;","import interval from \"./interval.js\";\nvar utcYear = interval(function (date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function (start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function (date) {\n return date.getUTCFullYear();\n}); // An optimized implementation for this simple case.\n\nutcYear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;","import _slicedToArray from \"/Users/brianmiddleton/dev/2020-rails-survey-site/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\nimport { bisector, tickStep } from \"d3-array\";\nimport { durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear } from \"./duration.js\";\nimport millisecond from \"./millisecond.js\";\nimport second from \"./second.js\";\nimport minute from \"./minute.js\";\nimport hour from \"./hour.js\";\nimport day from \"./day.js\";\nimport { sunday as week } from \"./week.js\";\nimport month from \"./month.js\";\nimport year from \"./year.js\";\nimport utcMinute from \"./utcMinute.js\";\nimport utcHour from \"./utcHour.js\";\nimport utcDay from \"./utcDay.js\";\nimport { utcSunday as utcWeek } from \"./utcWeek.js\";\nimport utcMonth from \"./utcMonth.js\";\nimport utcYear from \"./utcYear.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n var tickIntervals = [[second, 1, durationSecond], [second, 5, 5 * durationSecond], [second, 15, 15 * durationSecond], [second, 30, 30 * durationSecond], [minute, 1, durationMinute], [minute, 5, 5 * durationMinute], [minute, 15, 15 * durationMinute], [minute, 30, 30 * durationMinute], [hour, 1, durationHour], [hour, 3, 3 * durationHour], [hour, 6, 6 * durationHour], [hour, 12, 12 * durationHour], [day, 1, durationDay], [day, 2, 2 * durationDay], [week, 1, durationWeek], [month, 1, durationMonth], [month, 3, 3 * durationMonth], [year, 1, durationYear]];\n\n function ticks(start, stop, count) {\n var reverse = stop < start;\n\n if (reverse) {\n var _ref = [stop, start];\n start = _ref[0];\n stop = _ref[1];\n }\n\n var interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n var ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n var target = Math.abs(stop - start) / count;\n var i = bisector(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 3),\n step = _ref3[2];\n\n return step;\n }).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n\n var _tickIntervals = _slicedToArray(tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i], 2),\n t = _tickIntervals[0],\n step = _tickIntervals[1];\n\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nvar _ticker = ticker(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute),\n _ticker2 = _slicedToArray(_ticker, 2),\n utcTicks = _ticker2[0],\n utcTickInterval = _ticker2[1];\n\nvar _ticker3 = ticker(year, month, week, day, hour, minute),\n _ticker4 = _slicedToArray(_ticker3, 2),\n timeTicks = _ticker4[0],\n timeTickInterval = _ticker4[1];\n\nexport { utcTicks, utcTickInterval, timeTicks, timeTickInterval };","import { timeDay, timeSunday, timeMonday, timeThursday, timeYear, utcDay, utcSunday, utcMonday, utcThursday, utcYear } from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {\n y: y,\n m: m,\n d: d,\n H: 0,\n M: 0,\n S: 0,\n L: 0\n };\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n }; // These recursive directive definitions must be deferred.\n\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function (date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function (string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week,\n day;\n if (i != string.length) return null; // If a UNIX timestamp is specified, return it.\n\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0)); // If this is utcParse, never use the local timezone.\n\n if (Z && !(\"Z\" in d)) d.Z = 0; // The am-pm flag is 0 for AM, and 1 for PM.\n\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12; // If the month was not specified, inherit from the quarter.\n\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0; // Convert day-of-week and week-of-year to day-of-year.\n\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n } // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n\n\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n } // Otherwise, all fields are in local time.\n\n\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || (j = parse(d, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function format(specifier) {\n var f = newFormat(specifier += \"\", formats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n parse: function parse(specifier) {\n var p = newParse(specifier += \"\", false);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n },\n utcFormat: function utcFormat(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n utcParse: function utcParse(specifier) {\n var p = newParse(specifier += \"\", true);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n }\n };\n}\nvar pads = {\n \"-\": \"\",\n \"_\": \" \",\n \"0\": \"0\"\n},\n numberRe = /^\\s*\\d+/,\n // note: ignores next directive\npercentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map(function (name, i) {\n return [name.toLowerCase(), i];\n }));\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, \"+\")) + pad(z / 60 | 0, \"0\", 2) + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction 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}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}","import { timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval } from \"d3-time\";\nimport { timeFormat } from \"d3-time-format\";\nimport continuous, { copy } from \"./continuous.js\";\nimport { initRange } from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond : minute(date) < date ? formatSecond : hour(date) < date ? formatMinute : day(date) < date ? formatHour : month(date) < date ? week(date) < date ? formatDay : formatWeek : year(date) < date ? formatMonth : formatYear)(date);\n }\n\n scale.invert = function (y) {\n return new Date(invert(y));\n };\n\n scale.domain = function (_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function (interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function (count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function (interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function () {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}","var t0 = new Date(),\n t1 = new Date();\nexport default function newInterval(floori, offseti, count, field) {\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date() : new Date(+date)), date;\n }\n\n interval.floor = function (date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function (date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function (date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function (date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function (start, stop, step) {\n var range = [],\n previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n\n do {\n range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n } while (previous < start && start < stop);\n\n return range;\n };\n\n interval.filter = function (test) {\n return newInterval(function (date) {\n if (date >= date) while (floori(date), !test(date)) {\n date.setTime(date - 1);\n }\n }, function (date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n\n }\n }\n });\n };\n\n if (count) {\n interval.count = function (start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function (step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? function (d) {\n return field(d) % step === 0;\n } : function (d) {\n return interval.count(0, d) % step === 0;\n });\n };\n }\n\n return interval;\n}","import interval from \"./interval.js\";\nimport { durationWeek } from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function (date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function (start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;","import interval from \"./interval.js\";\nimport { durationDay } from \"./duration.js\";\nvar utcDay = interval(function (date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function (start, end) {\n return (end - start) / durationDay;\n}, function (date) {\n return date.getUTCDate() - 1;\n});\nexport default utcDay;\nexport var utcDays = utcDay.range;","import interval from \"./interval.js\";\nimport { durationMinute, durationWeek } from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function (date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;","import interval from \"./interval.js\";\nimport { durationDay, durationMinute } from \"./duration.js\";\nvar day = interval(function (date) {\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setDate(date.getDate() + step);\n}, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function (date) {\n return date.getDate() - 1;\n});\nexport default day;\nexport var days = day.range;","import interval from \"./interval.js\";\nvar year = interval(function (date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function (start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function (date) {\n return date.getFullYear();\n}); // An optimized implementation for this simple case.\n\nyear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;","import interval from \"./interval.js\";\nvar utcYear = interval(function (date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function (start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function (date) {\n return date.getUTCFullYear();\n}); // An optimized implementation for this simple case.\n\nutcYear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;","import { timeDay, timeSunday, timeMonday, timeThursday, timeYear, utcDay, utcSunday, utcMonday, utcThursday, utcYear } from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {\n y: y,\n m: m,\n d: d,\n H: 0,\n M: 0,\n S: 0,\n L: 0\n };\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n }; // These recursive directive definitions must be deferred.\n\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function (date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function (string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week,\n day;\n if (i != string.length) return null; // If a UNIX timestamp is specified, return it.\n\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0)); // If this is utcParse, never use the local timezone.\n\n if (Z && !(\"Z\" in d)) d.Z = 0; // The am-pm flag is 0 for AM, and 1 for PM.\n\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12; // If the month was not specified, inherit from the quarter.\n\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0; // Convert day-of-week and week-of-year to day-of-year.\n\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n } // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n\n\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n } // Otherwise, all fields are in local time.\n\n\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || (j = parse(d, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function format(specifier) {\n var f = newFormat(specifier += \"\", formats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n parse: function parse(specifier) {\n var p = newParse(specifier += \"\", false);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n },\n utcFormat: function utcFormat(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n utcParse: function utcParse(specifier) {\n var p = newParse(specifier += \"\", true);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n }\n };\n}\nvar pads = {\n \"-\": \"\",\n \"_\": \" \",\n \"0\": \"0\"\n},\n numberRe = /^\\s*\\d+/,\n // note: ignores next directive\npercentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {},\n i = -1,\n n = names.length;\n\n while (++i < n) {\n map[names[i].toLowerCase()] = i;\n }\n\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction 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, \"+\")) + pad(z / 60 | 0, \"0\", 2) + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction 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}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}","import \"core-js/modules/es.array.sort.js\";\nimport PropTypes from 'prop-types';\nimport { scaleLinear, scaleLog, scalePoint, scaleUtc, scaleTime } from 'd3-scale';\nimport { utcParse, timeParse } from 'd3-time-format';\nimport uniq from 'lodash/uniq';\nimport uniqBy from 'lodash/uniqBy';\nimport sortBy from 'lodash/sortBy';\nimport last from 'lodash/last';\nimport isDate from 'lodash/isDate';\n\nvar linearScale = function linearScale(_ref, xy, width, height) {\n var axis = _ref.axis,\n _ref$min = _ref.min,\n min = _ref$min === void 0 ? 0 : _ref$min,\n _ref$max = _ref.max,\n max = _ref$max === void 0 ? 'auto' : _ref$max,\n _ref$stacked = _ref.stacked,\n stacked = _ref$stacked === void 0 ? false : _ref$stacked,\n _ref$reverse = _ref.reverse,\n reverse = _ref$reverse === void 0 ? false : _ref$reverse;\n var values = xy[axis];\n var size = axis === 'x' ? width : height;\n var minValue = min;\n\n if (min === 'auto') {\n minValue = stacked === true ? values.minStacked : values.min;\n }\n\n var maxValue = max;\n\n if (max === 'auto') {\n maxValue = stacked === true ? values.maxStacked : values.max;\n }\n\n var scale = scaleLinear().rangeRound(axis === 'x' ? [0, size] : [size, 0]);\n if (reverse === true) scale.domain([maxValue, minValue]);else scale.domain([minValue, maxValue]);\n scale.type = 'linear';\n scale.stacked = stacked;\n return scale;\n};\n\nvar linearScalePropTypes = {\n type: PropTypes.oneOf(['linear']).isRequired,\n min: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),\n max: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),\n stacked: PropTypes.bool,\n reverse: PropTypes.bool\n};\n\nvar logScale = function logScale(_ref, xy, width, height) {\n var axis = _ref.axis,\n _ref$base = _ref.base,\n base = _ref$base === void 0 ? 10 : _ref$base,\n _ref$min = _ref.min,\n min = _ref$min === void 0 ? 'auto' : _ref$min,\n _ref$max = _ref.max,\n max = _ref$max === void 0 ? 'auto' : _ref$max;\n var values = xy[axis];\n var size = axis === 'x' ? width : height;\n var hasZero = values.all.some(function (v) {\n return v === 0;\n });\n var sign;\n var hasMixedSign = false;\n values.all.forEach(function (v) {\n if (hasMixedSign === true) return;\n\n if (sign === undefined) {\n sign = Math.sign(v);\n } else if (Math.sign(v) !== sign) {\n hasMixedSign = true;\n }\n });\n\n if (hasZero || hasMixedSign) {\n throw new Error([\"a log scale domain must be strictly-positive or strictly-negative,\", \"and must not include or cross zero.\"].join('\\n'));\n }\n\n var minValue = min;\n\n if (min === 'auto') {\n minValue = values.min;\n }\n\n var maxValue = max;\n\n if (max === 'auto') {\n maxValue = values.max;\n }\n\n var scale = scaleLog().domain([minValue, maxValue]).rangeRound(axis === 'x' ? [0, size] : [size, 0]).base(base).nice();\n scale.type = 'log';\n return scale;\n};\n\nvar logScalePropTypes = {\n type: PropTypes.oneOf(['log']).isRequired,\n base: PropTypes.number,\n min: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),\n max: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number])\n};\n\nvar pointScale = function pointScale(_ref, xy, width, height) {\n var axis = _ref.axis;\n var values = xy[axis];\n var size = axis === 'x' ? width : height;\n var scale = scalePoint().range([0, size]).domain(values.all);\n scale.type = 'point';\n return scale;\n};\n\nvar pointScalePropTypes = {\n type: PropTypes.oneOf(['point']).isRequired\n};\n\nvar _precisionCutOffsByTy;\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar TIME_PRECISION_MILLISECOND = 'millisecond';\nvar TIME_PRECISION_SECOND = 'second';\nvar TIME_PRECISION_MINUTE = 'minute';\nvar TIME_PRECISION_HOUR = 'hour';\nvar TIME_PRECISION_DAY = 'day';\nvar TIME_PRECISION_MONTH = 'month';\nvar TIME_PRECISION_YEAR = 'year';\nvar timePrecisions = [TIME_PRECISION_MILLISECOND, TIME_PRECISION_SECOND, TIME_PRECISION_MINUTE, TIME_PRECISION_HOUR, TIME_PRECISION_DAY, TIME_PRECISION_MONTH, TIME_PRECISION_YEAR];\nvar precisionCutOffs = [function (date) {\n return date.setMilliseconds(0);\n}, function (date) {\n return date.setSeconds(0);\n}, function (date) {\n return date.setMinutes(0);\n}, function (date) {\n return date.setHours(0);\n}, function (date) {\n return date.setDate(1);\n}, function (date) {\n return date.setMonth(0);\n}];\nvar precisionCutOffsByType = (_precisionCutOffsByTy = {}, _defineProperty(_precisionCutOffsByTy, TIME_PRECISION_MILLISECOND, []), _defineProperty(_precisionCutOffsByTy, TIME_PRECISION_SECOND, precisionCutOffs.slice(0, 1)), _defineProperty(_precisionCutOffsByTy, TIME_PRECISION_MINUTE, precisionCutOffs.slice(0, 2)), _defineProperty(_precisionCutOffsByTy, TIME_PRECISION_HOUR, precisionCutOffs.slice(0, 3)), _defineProperty(_precisionCutOffsByTy, TIME_PRECISION_DAY, precisionCutOffs.slice(0, 4)), _defineProperty(_precisionCutOffsByTy, TIME_PRECISION_MONTH, precisionCutOffs.slice(0, 5)), _defineProperty(_precisionCutOffsByTy, TIME_PRECISION_YEAR, precisionCutOffs.slice(0, 6)), _precisionCutOffsByTy);\n\nvar createPrecisionMethod = function createPrecisionMethod(precision) {\n return function (date) {\n precisionCutOffsByType[precision].forEach(function (cutOff) {\n cutOff(date);\n });\n return date;\n };\n};\n\nvar createDateNormalizer = function createDateNormalizer(_ref) {\n var _ref$format = _ref.format,\n format = _ref$format === void 0 ? 'native' : _ref$format,\n _ref$precision = _ref.precision,\n precision = _ref$precision === void 0 ? 'millisecond' : _ref$precision,\n _ref$useUTC = _ref.useUTC,\n useUTC = _ref$useUTC === void 0 ? true : _ref$useUTC;\n var precisionFn = createPrecisionMethod(precision);\n if (format === 'native') return function (v) {\n return precisionFn(v);\n };\n var parseTime = useUTC ? utcParse(format) : timeParse(format);\n return function (v) {\n return precisionFn(parseTime(v));\n };\n};\n\nvar timeScale = function timeScale(_ref, xy, width, height) {\n var axis = _ref.axis,\n _ref$format = _ref.format,\n format = _ref$format === void 0 ? 'native' : _ref$format,\n _ref$precision = _ref.precision,\n precision = _ref$precision === void 0 ? TIME_PRECISION_MILLISECOND : _ref$precision,\n _ref$min = _ref.min,\n min = _ref$min === void 0 ? 'auto' : _ref$min,\n _ref$max = _ref.max,\n max = _ref$max === void 0 ? 'auto' : _ref$max,\n _ref$useUTC = _ref.useUTC,\n useUTC = _ref$useUTC === void 0 ? true : _ref$useUTC;\n var values = xy[axis];\n var size = axis === 'x' ? width : height;\n var normalize = createDateNormalizer({\n format: format,\n precision: precision,\n useUTC: useUTC\n });\n var minValue = min;\n\n if (min === 'auto') {\n minValue = values.min;\n } else if (format !== 'native') {\n minValue = normalize(min);\n }\n\n var maxValue = max;\n\n if (max === 'auto') {\n maxValue = values.max;\n } else if (format !== 'native') {\n maxValue = normalize(max);\n }\n\n var scale = useUTC ? scaleUtc() : scaleTime();\n scale.domain([minValue, maxValue]).range([0, size]);\n scale.type = 'time';\n scale.useUTC = useUTC;\n return scale;\n};\n\nvar timeScalePropTypes = {\n type: PropTypes.oneOf(['time']).isRequired,\n format: PropTypes.string,\n precision: PropTypes.oneOf(timePrecisions)\n};\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$1(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$1(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar getOtherAxis = function getOtherAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n};\n\nvar compareValues = function compareValues(a, b) {\n return a === b;\n};\n\nvar compareDateValues = function compareDateValues(a, b) {\n return a.getTime() === b.getTime();\n};\n\nvar computeXYScalesForSeries = function computeXYScalesForSeries(_series, xScaleSpec, yScaleSpec, width, height) {\n var series = _series.map(function (serie) {\n return _objectSpread({}, serie, {\n data: serie.data.map(function (d) {\n return {\n data: _objectSpread({}, d)\n };\n })\n });\n });\n\n var xy = generateSeriesXY(series, xScaleSpec, yScaleSpec);\n\n if (xScaleSpec.stacked === true) {\n stackX(yScaleSpec.type, xy, series);\n }\n\n if (yScaleSpec.stacked === true) {\n stackY(xScaleSpec.type, xy, series);\n }\n\n var xScale = computeScale(_objectSpread({}, xScaleSpec, {\n axis: 'x'\n }), xy, width, height);\n var yScale = computeScale(_objectSpread({}, yScaleSpec, {\n axis: 'y'\n }), xy, width, height);\n series.forEach(function (serie) {\n serie.data.forEach(function (d) {\n d.position = {\n x: xScale.stacked === true ? d.data.xStacked === null ? null : xScale(d.data.xStacked) : d.data.x === null ? null : xScale(d.data.x),\n y: yScale.stacked === true ? d.data.yStacked === null ? null : yScale(d.data.yStacked) : d.data.y === null ? null : yScale(d.data.y)\n };\n });\n });\n return _objectSpread({}, xy, {\n series: series,\n xScale: xScale,\n yScale: yScale\n });\n};\n\nvar computeScale = function computeScale(spec, xy, width, height) {\n if (spec.type === 'linear') return linearScale(spec, xy, width, height);else if (spec.type === 'point') return pointScale(spec, xy, width, height);else if (spec.type === 'time') return timeScale(spec, xy, width, height);else if (spec.type === 'log') return logScale(spec, xy, width, height);\n};\n\nvar generateSeriesXY = function generateSeriesXY(series, xScaleSpec, yScaleSpec) {\n return {\n x: generateSeriesAxis(series, 'x', xScaleSpec),\n y: generateSeriesAxis(series, 'y', yScaleSpec)\n };\n};\n\nvar generateSeriesAxis = function generateSeriesAxis(series, axis, scaleSpec) {\n var _ref = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n _ref$getValue = _ref.getValue,\n getValue = _ref$getValue === void 0 ? function (d) {\n return d.data[axis];\n } : _ref$getValue,\n _ref$setValue = _ref.setValue,\n setValue = _ref$setValue === void 0 ? function (d, v) {\n d.data[axis] = v;\n } : _ref$setValue;\n\n if (scaleSpec.type === 'linear') {\n series.forEach(function (serie) {\n serie.data.forEach(function (d) {\n setValue(d, getValue(d) === null ? null : parseFloat(getValue(d)));\n });\n });\n } else if (scaleSpec.type === 'time' && scaleSpec.format !== 'native') {\n var parseTime = createDateNormalizer(scaleSpec);\n series.forEach(function (serie) {\n serie.data.forEach(function (d) {\n setValue(d, getValue(d) === null ? null : parseTime(getValue(d)));\n });\n });\n }\n\n var all = [];\n series.forEach(function (serie) {\n serie.data.forEach(function (d) {\n all.push(getValue(d));\n });\n });\n var min, max;\n\n if (scaleSpec.type === 'linear') {\n all = uniq(all);\n all = sortBy(all, function (v) {\n return v;\n });\n min = Math.min.apply(Math, _toConsumableArray(all));\n max = Math.max.apply(Math, _toConsumableArray(all));\n } else if (scaleSpec.type === 'time') {\n all = uniqBy(all, function (v) {\n return v.getTime();\n });\n all = all.slice(0).sort(function (a, b) {\n return b - a;\n }).reverse();\n min = all[0];\n max = last(all);\n } else {\n all = uniq(all);\n min = all[0];\n max = last(all);\n }\n\n return {\n all: all,\n min: min,\n max: max\n };\n};\n\nvar stackAxis = function stackAxis(axis, otherType, xy, series) {\n var otherAxis = getOtherAxis(axis);\n var all = [];\n xy[otherAxis].all.forEach(function (v) {\n var compare = isDate(v) ? compareDateValues : compareValues;\n var stack = [];\n series.forEach(function (serie) {\n var datum = serie.data.find(function (d) {\n return compare(d.data[otherAxis], v);\n });\n var value = null;\n var stackValue = null;\n\n if (datum !== undefined) {\n value = datum.data[axis];\n\n if (value !== null) {\n var head = last(stack);\n\n if (head === undefined) {\n stackValue = value;\n } else if (head !== null) {\n stackValue = head + value;\n }\n }\n\n datum.data[\"\".concat(axis, \"Stacked\")] = stackValue;\n }\n\n stack.push(stackValue);\n all.push(stackValue);\n });\n });\n all = all.filter(function (v) {\n return v !== null;\n });\n xy[axis].minStacked = Math.min.apply(Math, _toConsumableArray(all));\n xy[axis].maxStacked = Math.max.apply(Math, _toConsumableArray(all));\n};\n\nvar stackX = function stackX(xy, otherType, series) {\n return stackAxis('x', xy, otherType, series);\n};\n\nvar stackY = function stackY(xy, otherType, series) {\n return stackAxis('y', xy, otherType, series);\n};\n\nvar computeAxisSlices = function computeAxisSlices(axis, data) {\n var otherAxis = getOtherAxis(axis);\n return data[otherAxis].all.map(function (v) {\n var _slice;\n\n var slice = (_slice = {\n id: v\n }, _defineProperty$1(_slice, otherAxis, data[\"\".concat(otherAxis, \"Scale\")](v)), _defineProperty$1(_slice, \"data\", []), _slice);\n var compare = isDate(v) ? compareDateValues : compareValues;\n data.series.forEach(function (serie) {\n var datum = serie.data.find(function (d) {\n return compare(d.data[otherAxis], v);\n });\n\n if (datum !== undefined) {\n slice.data.push(_objectSpread({}, datum, {\n serie: serie\n }));\n }\n });\n slice.data.reverse();\n return slice;\n });\n};\n\nvar computeXSlices = function computeXSlices(data) {\n return computeAxisSlices('x', data);\n};\n\nvar computeYSlices = function computeYSlices(data) {\n return computeAxisSlices('y', data);\n};\n\nvar scalePropType = PropTypes.oneOfType([PropTypes.shape(linearScalePropTypes), PropTypes.shape(pointScalePropTypes), PropTypes.shape(timeScalePropTypes), PropTypes.shape(logScalePropTypes)]);\nexport { compareDateValues, compareValues, computeAxisSlices, computeScale, computeXSlices, computeXYScalesForSeries, computeYSlices, generateSeriesAxis, generateSeriesXY, getOtherAxis, linearScale, linearScalePropTypes, logScale, logScalePropTypes, pointScale, pointScalePropTypes, scalePropType, stackAxis, stackX, stackY, timeScale, timeScalePropTypes };","import { utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval } from \"d3-time\";\nimport { utcFormat } from \"d3-time-format\";\nimport { calendar } from \"./time.js\";\nimport { initRange } from \"./init.js\";\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"efedf5bcbddc756bb1\", \"f2f0f7cbc9e29e9ac86a51a3\", \"f2f0f7cbc9e29e9ac8756bb154278f\", \"f2f0f7dadaebbcbddc9e9ac8756bb154278f\", \"f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486\", \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486\", \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d\").map(colors);\nexport default ramp(scheme);","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","import \"core-js/modules/es.array.reduce.js\";\nimport React, { useMemo, memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { Motion, spring } from 'react-motion';\nimport { absoluteAngleDegrees, radiansToDegrees, positionFromAngle, degreesToRadians, useTheme, useMotionConfig, SmartMotion } from '@nivo/core';\nimport isPlainObject from 'lodash/isPlainObject';\nimport filter from 'lodash/filter';\nimport omit from 'lodash/omit';\nvar annotationSpecPropType = PropTypes.shape({\n match: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired,\n type: PropTypes.oneOf(['circle', 'rect', 'dot']).isRequired,\n noteX: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n abs: PropTypes.number.isRequired\n })]).isRequired,\n noteY: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n abs: PropTypes.number.isRequired\n })]).isRequired,\n noteWidth: PropTypes.number,\n noteTextOffset: PropTypes.number,\n note: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired,\n offset: PropTypes.number\n});\nvar defaultProps = {\n noteWidth: 120,\n noteTextOffset: 8,\n animate: true,\n motionStiffness: 90,\n motionDamping: 13\n};\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar defaultPositionAccessor = function defaultPositionAccessor(item) {\n return {\n x: item.x,\n y: item.y\n };\n};\n\nvar bindAnnotations = function bindAnnotations(_ref) {\n var items = _ref.items,\n annotations = _ref.annotations,\n _ref$getPosition = _ref.getPosition,\n getPosition = _ref$getPosition === void 0 ? defaultPositionAccessor : _ref$getPosition,\n getDimensions = _ref.getDimensions;\n return annotations.reduce(function (acc, annotation) {\n filter(items, annotation.match).forEach(function (item) {\n var position = getPosition(item);\n var dimensions = getDimensions(item, annotation.offset || 0);\n acc.push(_objectSpread({}, omit(annotation, ['match', 'offset']), position, dimensions, {\n datum: item,\n size: annotation.size || dimensions.size\n }));\n });\n return acc;\n }, []);\n};\n\nvar getLinkAngle = function getLinkAngle(sourceX, sourceY, targetX, targetY) {\n var angle = Math.atan2(targetY - sourceY, targetX - sourceX);\n return absoluteAngleDegrees(radiansToDegrees(angle));\n};\n\nvar computeAnnotation = function computeAnnotation(_ref2) {\n var type = _ref2.type,\n x = _ref2.x,\n y = _ref2.y,\n size = _ref2.size,\n width = _ref2.width,\n height = _ref2.height,\n noteX = _ref2.noteX,\n noteY = _ref2.noteY,\n _ref2$noteWidth = _ref2.noteWidth,\n noteWidth = _ref2$noteWidth === void 0 ? defaultProps.noteWidth : _ref2$noteWidth,\n _ref2$noteTextOffset = _ref2.noteTextOffset,\n noteTextOffset = _ref2$noteTextOffset === void 0 ? defaultProps.noteTextOffset : _ref2$noteTextOffset;\n var computedNoteX;\n var computedNoteY;\n\n if (isPlainObject(noteX)) {\n if (noteX.abs !== undefined) {\n computedNoteX = noteX.abs;\n }\n } else {\n computedNoteX = x + noteX;\n }\n\n if (isPlainObject(noteY)) {\n if (noteY.abs !== undefined) {\n computedNoteY = noteY.abs;\n }\n } else {\n computedNoteY = y + noteY;\n }\n\n var computedX = x;\n var computedY = y;\n var angle = getLinkAngle(x, y, computedNoteX, computedNoteY);\n\n if (type === 'circle') {\n var position = positionFromAngle(degreesToRadians(angle), size / 2);\n computedX += position.x;\n computedY += position.y;\n }\n\n if (type === 'rect') {\n var eighth = Math.round((angle + 90) / 45) % 8;\n\n if (eighth === 0) {\n computedY -= height / 2;\n }\n\n if (eighth === 1) {\n computedX += width / 2;\n computedY -= height / 2;\n }\n\n if (eighth === 2) {\n computedX += width / 2;\n }\n\n if (eighth === 3) {\n computedX += width / 2;\n computedY += height / 2;\n }\n\n if (eighth === 4) {\n computedY += height / 2;\n }\n\n if (eighth === 5) {\n computedX -= width / 2;\n computedY += height / 2;\n }\n\n if (eighth === 6) {\n computedX -= width / 2;\n }\n\n if (eighth === 7) {\n computedX -= width / 2;\n computedY -= height / 2;\n }\n }\n\n var textX = computedNoteX;\n var textY = computedNoteY - noteTextOffset;\n var noteLineX = computedNoteX;\n var noteLineY = computedNoteY;\n\n if ((angle + 90) % 360 > 180) {\n textX -= noteWidth;\n noteLineX -= noteWidth;\n } else {\n noteLineX += noteWidth;\n }\n\n return {\n points: [[computedX, computedY], [computedNoteX, computedNoteY], [noteLineX, noteLineY]],\n text: [textX, textY],\n angle: angle + 90\n };\n};\n\nfunction _objectSpread$1(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$1(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$1(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar useAnnotations = function useAnnotations(_ref) {\n var items = _ref.items,\n annotations = _ref.annotations,\n getPosition = _ref.getPosition,\n getDimensions = _ref.getDimensions;\n return useMemo(function () {\n return bindAnnotations({\n items: items,\n annotations: annotations,\n getPosition: getPosition,\n getDimensions: getDimensions\n });\n }, [items, annotations, getPosition, getDimensions]);\n};\n\nvar useComputedAnnotations = function useComputedAnnotations(_ref2) {\n var annotations = _ref2.annotations,\n containerWidth = _ref2.containerWidth,\n containerHeight = _ref2.containerHeight;\n return useMemo(function () {\n return annotations.map(function (annotation) {\n return _objectSpread$1({}, annotation, {\n computed: computeAnnotation(_objectSpread$1({\n containerWidth: containerWidth,\n containerHeight: containerHeight\n }, annotation))\n });\n });\n }, [annotations, containerWidth, containerHeight]);\n};\n\nvar useComputedAnnotation = function useComputedAnnotation(_ref3) {\n var type = _ref3.type,\n containerWidth = _ref3.containerWidth,\n containerHeight = _ref3.containerHeight,\n x = _ref3.x,\n y = _ref3.y,\n size = _ref3.size,\n width = _ref3.width,\n height = _ref3.height,\n noteX = _ref3.noteX,\n noteY = _ref3.noteY,\n noteWidth = _ref3.noteWidth,\n noteTextOffset = _ref3.noteTextOffset;\n return useMemo(function () {\n return computeAnnotation({\n type: type,\n containerWidth: containerWidth,\n containerHeight: containerHeight,\n x: x,\n y: y,\n size: size,\n width: width,\n height: height,\n noteX: noteX,\n noteY: noteY,\n noteWidth: noteWidth,\n noteTextOffset: noteTextOffset\n });\n }, [type, containerWidth, containerHeight, x, y, size, width, height, noteX, noteY, noteWidth, noteTextOffset]);\n};\n\nfunction _objectSpread$2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$2(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$2(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar AnnotationNote = memo(function (_ref) {\n var datum = _ref.datum,\n x = _ref.x,\n y = _ref.y,\n note = _ref.note;\n var theme = useTheme();\n\n if (typeof note === 'function') {\n return note({\n x: x,\n y: y,\n datum: datum\n });\n }\n\n return React.createElement(React.Fragment, null, theme.annotations.text.outlineWidth > 0 && React.createElement(\"text\", {\n x: x,\n y: y,\n style: _objectSpread$2({}, theme.annotations.text, {\n strokeLinejoin: 'round',\n strokeWidth: theme.annotations.text.outlineWidth * 2,\n stroke: theme.annotations.text.outlineColor\n })\n }, note), React.createElement(\"text\", {\n x: x,\n y: y,\n style: omit(theme.annotations.text, ['outlineWidth', 'outlineColor'])\n }, note));\n});\nAnnotationNote.displayName = 'AnnotationNote';\nAnnotationNote.defaultProps = {};\n\nfunction _objectSpread$3(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$3(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$3(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar AnnotationLink = memo(function (_ref) {\n var points = _ref.points,\n isOutline = _ref.isOutline;\n var theme = useTheme();\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n\n if (isOutline && theme.annotations.link.outlineWidth <= 0) {\n return null;\n }\n\n var style = _objectSpread$3({}, theme.annotations.link);\n\n if (isOutline) {\n style.strokeLinecap = 'square';\n style.strokeWidth = theme.annotations.link.strokeWidth + theme.annotations.link.outlineWidth * 2;\n style.stroke = theme.annotations.link.outlineColor;\n }\n\n var path = \"M\".concat(points[0][0], \",\").concat(points[0][1]);\n points.slice(1).forEach(function (point) {\n path = \"\".concat(path, \" L\").concat(point[0], \",\").concat(point[1]);\n });\n\n if (!animate) {\n return React.createElement(\"path\", {\n fill: \"none\",\n d: path,\n style: style\n });\n }\n\n return React.createElement(SmartMotion, {\n style: function style(spring) {\n return {\n d: spring(path, springConfig)\n };\n }\n }, function (interpolated) {\n return React.createElement(\"path\", {\n fill: \"none\",\n d: interpolated.d,\n style: style\n });\n });\n});\nAnnotationLink.displayName = 'AnnotationLink';\nAnnotationLink.defaultProps = {\n isOutline: false\n};\n\nfunction _objectSpread$4(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$4(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$4(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar CircleAnnotationOutline = memo(function (_ref) {\n var x = _ref.x,\n y = _ref.y,\n size = _ref.size;\n var theme = useTheme();\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n\n if (!animate) {\n return React.createElement(React.Fragment, null, theme.annotations.outline.outlineWidth > 0 && React.createElement(\"circle\", {\n cx: x,\n cy: y,\n r: size / 2,\n style: _objectSpread$4({}, theme.annotations.outline, {\n fill: 'none',\n strokeWidth: theme.annotations.outline.strokeWidth + theme.annotations.outline.outlineWidth * 2,\n stroke: theme.annotations.outline.outlineColor\n })\n }), React.createElement(\"circle\", {\n cx: x,\n cy: y,\n r: size / 2,\n style: theme.annotations.outline\n }));\n }\n\n return React.createElement(Motion, {\n style: {\n x: spring(x, springConfig),\n y: spring(y, springConfig),\n size: spring(size, springConfig)\n }\n }, function (interpolated) {\n return React.createElement(React.Fragment, null, theme.annotations.outline.outlineWidth > 0 && React.createElement(\"circle\", {\n cx: interpolated.x,\n cy: interpolated.y,\n r: interpolated.size / 2,\n style: _objectSpread$4({}, theme.annotations.outline, {\n fill: 'none',\n strokeWidth: theme.annotations.outline.strokeWidth + theme.annotations.outline.outlineWidth * 2,\n stroke: theme.annotations.outline.outlineColor\n })\n }), React.createElement(\"circle\", {\n cx: interpolated.x,\n cy: interpolated.y,\n r: interpolated.size / 2,\n style: theme.annotations.outline\n }));\n });\n});\nCircleAnnotationOutline.displayName = 'CircleAnnotationOutline';\n\nfunction _objectSpread$5(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$5(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$5(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar DotAnnotationOutline = memo(function (_ref) {\n var x = _ref.x,\n y = _ref.y,\n size = _ref.size;\n var theme = useTheme();\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n\n if (!animate) {\n return React.createElement(React.Fragment, null, theme.annotations.outline.outlineWidth > 0 && React.createElement(\"circle\", {\n cx: x,\n cy: y,\n r: size / 2,\n style: _objectSpread$5({}, theme.annotations.outline, {\n fill: 'none',\n strokeWidth: theme.annotations.outline.outlineWidth * 2,\n stroke: theme.annotations.outline.outlineColor\n })\n }), React.createElement(\"circle\", {\n cx: x,\n cy: y,\n r: size / 2,\n style: theme.annotations.symbol\n }));\n }\n\n return React.createElement(Motion, {\n style: {\n x: spring(x, springConfig),\n y: spring(y, springConfig),\n size: spring(size, springConfig)\n }\n }, function (interpolated) {\n return React.createElement(React.Fragment, null, theme.annotations.outline.outlineWidth > 0 && React.createElement(\"circle\", {\n cx: interpolated.x,\n cy: interpolated.y,\n r: interpolated.size / 2,\n style: _objectSpread$5({}, theme.annotations.outline, {\n fill: 'none',\n strokeWidth: theme.annotations.outline.outlineWidth * 2,\n stroke: theme.annotations.outline.outlineColor\n })\n }), React.createElement(\"circle\", {\n cx: interpolated.x,\n cy: interpolated.y,\n r: interpolated.size / 2,\n style: theme.annotations.symbol\n }));\n });\n});\nDotAnnotationOutline.displayName = 'DotAnnotationOutline';\nDotAnnotationOutline.defaultProps = {\n size: 4\n};\n\nfunction _objectSpread$6(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$6(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$6(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar RectAnnotationOutline = memo(function (_ref) {\n var x = _ref.x,\n y = _ref.y,\n width = _ref.width,\n height = _ref.height;\n var theme = useTheme();\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n\n if (!animate) {\n return React.createElement(React.Fragment, null, theme.annotations.outline.outlineWidth > 0 && React.createElement(\"rect\", {\n x: x - width / 2,\n y: y - height / 2,\n width: width,\n height: height,\n style: _objectSpread$6({}, theme.annotations.outline, {\n fill: 'none',\n strokeWidth: theme.annotations.outline.strokeWidth + theme.annotations.outline.outlineWidth * 2,\n stroke: theme.annotations.outline.outlineColor\n })\n }), React.createElement(\"rect\", {\n x: x - width / 2,\n y: y - height / 2,\n width: width,\n height: height,\n style: theme.annotations.outline\n }));\n }\n\n return React.createElement(Motion, {\n style: {\n x: spring(x - width / 2, springConfig),\n y: spring(y - height / 2, springConfig),\n width: spring(width, springConfig),\n height: spring(height, springConfig)\n }\n }, function (interpolated) {\n return React.createElement(React.Fragment, null, theme.annotations.outline.outlineWidth > 0 && React.createElement(\"rect\", {\n x: interpolated.x,\n y: interpolated.y,\n width: interpolated.width,\n height: interpolated.height,\n style: _objectSpread$6({}, theme.annotations.outline, {\n fill: 'none',\n strokeWidth: theme.annotations.outline.strokeWidth + theme.annotations.outline.outlineWidth * 2,\n stroke: theme.annotations.outline.outlineColor\n })\n }), React.createElement(\"rect\", {\n x: interpolated.x,\n y: interpolated.y,\n width: interpolated.width,\n height: interpolated.height,\n style: theme.annotations.outline\n }));\n });\n});\nRectAnnotationOutline.displayName = 'RectAnnotationOutline';\nvar Annotation = memo(function (_ref) {\n var datum = _ref.datum,\n type = _ref.type,\n containerWidth = _ref.containerWidth,\n containerHeight = _ref.containerHeight,\n x = _ref.x,\n y = _ref.y,\n size = _ref.size,\n width = _ref.width,\n height = _ref.height,\n noteX = _ref.noteX,\n noteY = _ref.noteY,\n noteWidth = _ref.noteWidth,\n noteTextOffset = _ref.noteTextOffset,\n note = _ref.note;\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n\n var computed = useComputedAnnotation({\n type: type,\n containerWidth: containerWidth,\n containerHeight: containerHeight,\n x: x,\n y: y,\n size: size,\n width: width,\n height: height,\n noteX: noteX,\n noteY: noteY,\n noteWidth: noteWidth,\n noteTextOffset: noteTextOffset\n });\n return React.createElement(React.Fragment, null, React.createElement(AnnotationLink, {\n points: computed.points,\n isOutline: true\n }), type === 'circle' && React.createElement(CircleAnnotationOutline, {\n x: x,\n y: y,\n size: size\n }), type === 'dot' && React.createElement(DotAnnotationOutline, {\n x: x,\n y: y,\n size: size\n }), type === 'rect' && React.createElement(RectAnnotationOutline, {\n x: x,\n y: y,\n width: width,\n height: height\n }), React.createElement(AnnotationLink, {\n points: computed.points\n }), !animate && React.createElement(AnnotationNote, {\n x: computed.text[0],\n y: computed.text[1],\n note: note\n }), animate && React.createElement(Motion, {\n style: {\n x: spring(computed.text[0], springConfig),\n y: spring(computed.text[1], springConfig)\n }\n }, function (interpolated) {\n return React.createElement(AnnotationNote, {\n datum: datum,\n x: interpolated.x,\n y: interpolated.y,\n note: note\n });\n }));\n});\nAnnotation.displayName = 'Annotation';\nAnnotation.defaultProps = {\n noteWidth: defaultProps.noteWidth,\n noteTextOffset: defaultProps.noteTextOffset\n};\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar drawPoints = function drawPoints(ctx, points) {\n points.forEach(function (_ref, index) {\n var _ref2 = _slicedToArray(_ref, 2),\n x = _ref2[0],\n y = _ref2[1];\n\n if (index === 0) {\n ctx.moveTo(x, y);\n } else {\n ctx.lineTo(x, y);\n }\n });\n};\n\nvar renderAnnotationsToCanvas = function renderAnnotationsToCanvas(ctx, _ref3) {\n var annotations = _ref3.annotations,\n theme = _ref3.theme;\n if (annotations.length === 0) return;\n ctx.save();\n annotations.forEach(function (annotation) {\n if (theme.annotations.link.outlineWidth > 0) {\n ctx.lineCap = 'square';\n ctx.strokeStyle = theme.annotations.link.outlineColor;\n ctx.lineWidth = theme.annotations.link.strokeWidth + theme.annotations.link.outlineWidth * 2;\n ctx.beginPath();\n drawPoints(ctx, annotation.computed.points);\n ctx.stroke();\n ctx.lineCap = 'butt';\n }\n\n if (annotation.type === 'circle' && theme.annotations.outline.outlineWidth > 0) {\n ctx.strokeStyle = theme.annotations.outline.outlineColor;\n ctx.lineWidth = theme.annotations.outline.strokeWidth + theme.annotations.outline.outlineWidth * 2;\n ctx.beginPath();\n ctx.arc(annotation.x, annotation.y, annotation.size / 2, 0, 2 * Math.PI);\n ctx.stroke();\n }\n\n if (annotation.type === 'dot' && theme.annotations.symbol.outlineWidth > 0) {\n ctx.strokeStyle = theme.annotations.symbol.outlineColor;\n ctx.lineWidth = theme.annotations.symbol.outlineWidth * 2;\n ctx.beginPath();\n ctx.arc(annotation.x, annotation.y, annotation.size / 2, 0, 2 * Math.PI);\n ctx.stroke();\n }\n\n if (annotation.type === 'rect' && theme.annotations.outline.outlineWidth > 0) {\n ctx.strokeStyle = theme.annotations.outline.outlineColor;\n ctx.lineWidth = theme.annotations.outline.strokeWidth + theme.annotations.outline.outlineWidth * 2;\n ctx.beginPath();\n ctx.rect(annotation.x - annotation.width / 2, annotation.y - annotation.height / 2, annotation.width, annotation.height);\n ctx.stroke();\n }\n\n ctx.strokeStyle = theme.annotations.link.stroke;\n ctx.lineWidth = theme.annotations.link.strokeWidth;\n ctx.beginPath();\n drawPoints(ctx, annotation.computed.points);\n ctx.stroke();\n\n if (annotation.type === 'circle') {\n ctx.strokeStyle = theme.annotations.outline.stroke;\n ctx.lineWidth = theme.annotations.outline.strokeWidth;\n ctx.beginPath();\n ctx.arc(annotation.x, annotation.y, annotation.size / 2, 0, 2 * Math.PI);\n ctx.stroke();\n }\n\n if (annotation.type === 'dot') {\n ctx.fillStyle = theme.annotations.symbol.fill;\n ctx.beginPath();\n ctx.arc(annotation.x, annotation.y, annotation.size / 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n\n if (annotation.type === 'rect') {\n ctx.strokeStyle = theme.annotations.outline.stroke;\n ctx.lineWidth = theme.annotations.outline.strokeWidth;\n ctx.beginPath();\n ctx.rect(annotation.x - annotation.width / 2, annotation.y - annotation.height / 2, annotation.width, annotation.height);\n ctx.stroke();\n }\n\n if (typeof annotation.note === 'function') {\n annotation.note(ctx, {\n datum: annotation.datum,\n x: annotation.computed.text[0],\n y: annotation.computed.text[1],\n theme: theme\n });\n } else {\n ctx.font = \"\".concat(theme.annotations.text.fontSize, \"px \").concat(theme.annotations.text.fontFamily);\n ctx.fillStyle = theme.annotations.text.fill;\n ctx.strokeStyle = theme.annotations.text.outlineColor;\n ctx.lineWidth = theme.annotations.text.outlineWidth * 2;\n\n if (theme.annotations.text.outlineWidth > 0) {\n ctx.lineJoin = 'round';\n ctx.strokeText(annotation.note, annotation.computed.text[0], annotation.computed.text[1]);\n ctx.lineJoin = 'miter';\n }\n\n ctx.fillText(annotation.note, annotation.computed.text[0], annotation.computed.text[1]);\n }\n });\n ctx.restore();\n};\n\nexport { Annotation, annotationSpecPropType, bindAnnotations, computeAnnotation, defaultProps, getLinkAngle, renderAnnotationsToCanvas, useAnnotations, useComputedAnnotation, useComputedAnnotations };","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { ResponsiveBar } from '@nivo/bar'\nimport { useBreakpoint } from 'gatsby-plugin-breakpoints'\n\nexport default function VerticalBarChart(props) {\n const breakpoints = useBreakpoint();\n const chartData = []\n\n function trunctateString(string) {\n const length = breakpoints.sm ? 13 : breakpoints.md ? 25 : 20\n return (string.length > length) ? string.substr(0, length-1) + '...' : string\n }\n\n props.xmlChildren.map(child => chartData.push({id: trunctateString(child.content), value: Number(child.attributes.total)}))\n\n // Add up all values to get total\n const total = chartData.map(datum => datum.value).reduce((total, current) => total + current, 0)\n\n const legendSettings = [{\n dataFrom: 'indexes',\n anchor: 'bottom-right',\n direction: 'column',\n justify: false,\n translateX: 120,\n translateY: 0,\n itemsSpacing: 2,\n itemWidth: 100,\n itemHeight: 20,\n itemDirection: 'left-to-right',\n itemOpacity: 0.85,\n symbolSize: 20,\n effects: [\n {\n on: 'hover',\n style: {\n itemOpacity: 1\n }\n }\n ]\n }]\n\n const fillSettings = [];\n\n for(let i = 0; i < chartData.length; i++ ){\n if(i % 4 === 0){\n fillSettings.push({\n match: {\n id: chartData[i].id\n },\n id: 'dots'\n })\n }\n else if ((i + 2) % 2 === 0 ){\n fillSettings.push({\n match: {\n id: chartData[i].id\n },\n id: 'lines'\n })\n }\n }\n\n let marginLeft = 40\n let marginRight = 60\n let marginBottom = 80\n let tickRotation = 0\n\n if (props.uses_legend){\n marginRight = 130\n }\n\n if (breakpoints.md) {\n marginRight = 10\n marginBottom = 130\n tickRotation = 45\n }\n\n if(breakpoints.sm) {\n tickRotation = 90\n marginBottom = 100\n }\n\n\n\n\n return (\n (d.id, d.value, `Responses: ${d.value}`)}\n label={d => `${Math.round((d.value / total) * 100)}%`}\n labelSkipWidth={12}\n labelSkipHeight={12}\n labelTextColor='#ffffff'\n legends={props.uses_legend ? legendSettings : []}\n animate={false}\n motionStiffness={90}\n motionDamping={15}\n\n />\n )\n}\n\nVerticalBarChart.propTypes = {\n xmlChildren: PropTypes.array.isRequired,\n question: PropTypes.string.isRequired,\n uses_legend: PropTypes.bool.isRequired,\n custom_scheme: PropTypes.array.isRequired,\n}\n\nVerticalBarChart.defaultProps = {\n xmlChildren: [],\n question: null,\n uses_legend: false\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { ResponsiveBar } from '@nivo/bar'\nimport { useBreakpoint } from 'gatsby-plugin-breakpoints';\n\n// make sure parent container have a defined height when using\n// responsive component, otherwise height will be 0 and\n// no chart will be rendered.\n// website examples showcase many properties,\n// you'll often use just a few of them.\n\nexport default function HorizontalBarChart(props) {\n const chartData = []\n const breakpoints = useBreakpoint();\n const fillSettings = [];\n let marginRight = 60\n let marginLeft = 200\n\n if (props.uses_legend){\n marginRight = 130\n }\n\n if (breakpoints.sm){\n marginRight = 10\n marginLeft = 90\n }\n\n props.xmlChildren.map(child => chartData.push({id: child.content, value: Number(child.attributes.total)}))\n // Add up all values to get total\n const total = chartData.map(datum => datum.value).reduce((total, current) => total + current, 0)\n\n const legendSettings = [{\n dataFrom: 'indexes',\n anchor: 'bottom-right',\n direction: 'column',\n justify: false,\n translateX: 120,\n translateY: 0,\n itemsSpacing: 2,\n itemWidth: 100,\n itemHeight: 20,\n itemDirection: 'left-to-right',\n itemOpacity: 0.85,\n symbolSize: 20,\n effects: [\n {\n on: 'hover',\n style: {\n itemOpacity: 1\n }\n }\n ]\n }]\n\n\n for(let i = 0; i < chartData.length; i++ ){\n if(i % 4 === 0){\n fillSettings.push({\n match: {\n id: chartData[i].id\n },\n id: 'dots'\n })\n }\n else if ((i + 2) % 2 === 0 ){\n fillSettings.push({\n match: {\n id: chartData[i].id\n },\n id: 'lines'\n })\n }\n }\n\n function trunctateString(string) {\n const length = breakpoints.sm ? 13 : 100\n return (string.length > length) ? string.substr(0, length-1) + '...' : string\n }\n\n\n const customAxisLeft = tick => {\n const splitTickValue = tick.value.split(\"\\\\n\");\n\n return (\n \n \n \n 1 ? -24 : -16}) rotate(0)`}\n style={{\n fill: 'rgb(51, 51, 51)',\n fontFamily: 'sans-serif',\n fontSize: 14\n }}\n >\n { splitTickValue.map(value => {\n return (\n <>\n {value}\n {trunctateString(value)}\n \n )\n } ) }\n \n \n )\n\n }\n\n return (\n (d.id, d.value, `Responses: ${d.value}`)}\n label={d => `${Math.round((d.value / total) * 100)}%`}\n labelSkipWidth={12}\n labelSkipHeight={12}\n labelTextColor='#ffffff'\n legends={props.uses_legend ? legendSettings : []}\n animate={false}\n motionStiffness={90}\n motionDamping={15}\n />\n )\n}\n\nHorizontalBarChart.propTypes = {\n xmlChildren: PropTypes.array.isRequired,\n question: PropTypes.string.isRequired,\n uses_legend: PropTypes.bool.isRequired,\n custom_scheme: PropTypes.array.isRequired,\n}\n\nHorizontalBarChart.defaultProps = {\n xmlChildren: [],\n question: null,\n uses_legend: false\n}\n","var t0 = new Date(),\n t1 = new Date();\nexport default function newInterval(floori, offseti, count, field) {\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date() : new Date(+date)), date;\n }\n\n interval.floor = function (date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function (date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function (date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function (date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function (start, stop, step) {\n var range = [],\n previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n\n do {\n range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n } while (previous < start && start < stop);\n\n return range;\n };\n\n interval.filter = function (test) {\n return newInterval(function (date) {\n if (date >= date) while (floori(date), !test(date)) {\n date.setTime(date - 1);\n }\n }, function (date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n\n }\n }\n });\n };\n\n if (count) {\n interval.count = function (start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function (step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? function (d) {\n return field(d) % step === 0;\n } : function (d) {\n return interval.count(0, d) % step === 0;\n });\n };\n }\n\n return interval;\n}","import interval from \"./interval.js\";\nvar millisecond = interval(function () {// noop\n}, function (date, step) {\n date.setTime(+date + step);\n}, function (start, end) {\n return end - start;\n}); // An optimized implementation for this simple case.\n\nmillisecond.every = function (k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function (date) {\n date.setTime(Math.floor(date / k) * k);\n }, function (date, step) {\n date.setTime(+date + step * k);\n }, function (start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;","import interval from \"./interval.js\";\nimport { durationSecond } from \"./duration.js\";\nvar second = interval(function (date) {\n date.setTime(date - date.getMilliseconds());\n}, function (date, step) {\n date.setTime(+date + step * durationSecond);\n}, function (start, end) {\n return (end - start) / durationSecond;\n}, function (date) {\n return date.getUTCSeconds();\n});\nexport default second;\nexport var seconds = second.range;","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;","import interval from \"./interval.js\";\nimport { durationMinute, durationSecond } from \"./duration.js\";\nvar minute = interval(function (date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getMinutes();\n});\nexport default minute;\nexport var minutes = minute.range;","import interval from \"./interval.js\";\nimport { durationMinute } from \"./duration.js\";\nvar utcMinute = interval(function (date) {\n date.setUTCSeconds(0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getUTCMinutes();\n});\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;","import interval from \"./interval.js\";\nimport { durationHour, durationMinute, durationSecond } from \"./duration.js\";\nvar hour = interval(function (date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function (date, step) {\n date.setTime(+date + step * durationHour);\n}, function (start, end) {\n return (end - start) / durationHour;\n}, function (date) {\n return date.getHours();\n});\nexport default hour;\nexport var hours = hour.range;","import interval from \"./interval.js\";\nimport { durationHour } from \"./duration.js\";\nvar utcHour = interval(function (date) {\n date.setUTCMinutes(0, 0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationHour);\n}, function (start, end) {\n return (end - start) / durationHour;\n}, function (date) {\n return date.getUTCHours();\n});\nexport default utcHour;\nexport var utcHours = utcHour.range;","import interval from \"./interval.js\";\nimport { durationDay, durationMinute } from \"./duration.js\";\nvar day = interval(function (date) {\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setDate(date.getDate() + step);\n}, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function (date) {\n return date.getDate() - 1;\n});\nexport default day;\nexport var days = day.range;","import interval from \"./interval.js\";\nimport { durationDay } from \"./duration.js\";\nvar utcDay = interval(function (date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function (start, end) {\n return (end - start) / durationDay;\n}, function (date) {\n return date.getUTCDate() - 1;\n});\nexport default utcDay;\nexport var utcDays = utcDay.range;","import interval from \"./interval.js\";\nimport { durationMinute, durationWeek } from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function (date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;","import interval from \"./interval.js\";\nimport { durationWeek } from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function (date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function (start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;","import interval from \"./interval.js\";\nvar month = interval(function (date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setMonth(date.getMonth() + step);\n}, function (start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function (date) {\n return date.getMonth();\n});\nexport default month;\nexport var months = month.range;","import interval from \"./interval.js\";\nvar utcMonth = interval(function (date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function (start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function (date) {\n return date.getUTCMonth();\n});\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;","import interval from \"./interval.js\";\nvar year = interval(function (date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function (start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function (date) {\n return date.getFullYear();\n}); // An optimized implementation for this simple case.\n\nyear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;","import interval from \"./interval.js\";\nvar utcYear = interval(function (date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function (start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function (date) {\n return date.getUTCFullYear();\n}); // An optimized implementation for this simple case.\n\nutcYear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;","import { timeDay, timeSunday, timeMonday, timeThursday, timeYear, utcDay, utcSunday, utcMonday, utcThursday, utcYear } from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {\n y: y,\n m: m,\n d: d,\n H: 0,\n M: 0,\n S: 0,\n L: 0\n };\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n }; // These recursive directive definitions must be deferred.\n\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function (date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function (string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week,\n day;\n if (i != string.length) return null; // If a UNIX timestamp is specified, return it.\n\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0)); // If this is utcParse, never use the local timezone.\n\n if (Z && !(\"Z\" in d)) d.Z = 0; // The am-pm flag is 0 for AM, and 1 for PM.\n\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12; // If the month was not specified, inherit from the quarter.\n\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0; // Convert day-of-week and week-of-year to day-of-year.\n\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n } // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n\n\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n } // Otherwise, all fields are in local time.\n\n\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || (j = parse(d, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function format(specifier) {\n var f = newFormat(specifier += \"\", formats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n parse: function parse(specifier) {\n var p = newParse(specifier += \"\", false);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n },\n utcFormat: function utcFormat(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n utcParse: function utcParse(specifier) {\n var p = newParse(specifier += \"\", true);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n }\n };\n}\nvar pads = {\n \"-\": \"\",\n \"_\": \" \",\n \"0\": \"0\"\n},\n numberRe = /^\\s*\\d+/,\n // note: ignores next directive\npercentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {},\n i = -1,\n n = names.length;\n\n while (++i < n) {\n map[names[i].toLowerCase()] = i;\n }\n\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction 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, \"+\")) + pad(z / 60 | 0, \"0\", 2) + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction 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}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}","export default function (x) {\n return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString(\"en\").replace(/,/g, \"\") : x.toString(10);\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].\n\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n\n var i,\n coefficient = x.slice(0, i); // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n\n return [coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, +x.slice(i + 1)];\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport default function (x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function () {\n return this.fill + this.align + this.sign + this.symbol + (this.zero ? \"0\" : \"\") + (this.width === undefined ? \"\" : Math.max(1, this.width | 0)) + (this.comma ? \",\" : \"\") + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0)) + (this.trim ? \"~\" : \"\") + this.type;\n};","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function (s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\":\n i0 = i1 = i;\n break;\n\n case \"0\":\n if (i0 === 0) i0 = i;\n i1 = i;\n break;\n\n default:\n if (!+s[i]) break out;\n if (i0 > 0) i0 = 0;\n break;\n }\n }\n\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport var prefixExponent;\nexport default function (x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join(\"0\") : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i) : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var format;\nexport var formatPrefix;\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport default function (x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\nexport default {\n \"%\": function _(x, p) {\n return (x * 100).toFixed(p);\n },\n \"b\": function b(x) {\n return Math.round(x).toString(2);\n },\n \"c\": function c(x) {\n return x + \"\";\n },\n \"d\": formatDecimal,\n \"e\": function e(x, p) {\n return x.toExponential(p);\n },\n \"f\": function f(x, p) {\n return x.toFixed(p);\n },\n \"g\": function g(x, p) {\n return x.toPrecision(p);\n },\n \"o\": function o(x) {\n return Math.round(x).toString(8);\n },\n \"p\": function p(x, _p) {\n return formatRounded(x * 100, _p);\n },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function X(x) {\n return Math.round(x).toString(16).toUpperCase();\n },\n \"x\": function x(_x) {\n return Math.round(_x).toString(16);\n }\n};","export default function (x) {\n return x;\n}","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport { prefixExponent } from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\nvar map = Array.prototype.map,\n prefixes = [\"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"µ\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\nexport default function (locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type; // The \"n\" type is an alias for \",g\".\n\n if (type === \"n\") comma = true, type = \"g\"; // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\"; // If zero fill is specified, padding goes after sign and before digits.\n\n if (zero || fill === \"0\" && align === \"=\") zero = true, fill = \"0\", align = \"=\"; // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\"; // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type); // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n\n precision = precision === undefined ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i,\n n,\n c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value; // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n\n var valueNegative = value < 0 || 1 / value < 0; // Perform the initial formatting.\n\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision); // Trim insignificant zeros.\n\n if (trim) value = formatTrim(value); // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false; // Compute the prefix and suffix.\n\n valuePrefix = (valueNegative ? sign === \"(\" ? sign : minus : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\"); // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n\n if (maybeSuffix) {\n i = -1, n = value.length;\n\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n } // If the fill character is not \"0\", grouping is applied before padding.\n\n\n if (comma && !zero) value = group(value, Infinity); // Compute the padding.\n\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\"; // If the fill character is \"0\", grouping is applied after padding.\n\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\"; // Reconstruct the final output based on the desired alignment.\n\n switch (align) {\n case \"<\":\n value = valuePrefix + value + valueSuffix + padding;\n break;\n\n case \"=\":\n value = valuePrefix + padding + value + valueSuffix;\n break;\n\n case \"^\":\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n\n default:\n value = padding + valuePrefix + value + valueSuffix;\n break;\n }\n\n return numerals(value);\n }\n\n format.toString = function () {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function (value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}","export default function (grouping, thousands) {\n return function (value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}","export default function (numerals) {\n return function (value) {\n return value.replace(/[0-9]/g, function (i) {\n return numerals[+i];\n });\n };\n}","import React, { memo, useMemo, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { Motion, spring, TransitionMotion } from 'react-motion';\nimport { textPropsByEngine, useTheme, useMotionConfig } from '@nivo/core';\nimport isNumber from 'lodash/isNumber';\nimport { timeMillisecond, utcMillisecond, timeSecond, utcSecond, timeMinute, utcMinute, timeHour, utcHour, timeDay, utcDay, timeWeek, utcWeek, timeSunday, utcSunday, timeMonday, utcMonday, timeTuesday, utcTuesday, timeWednesday, utcWednesday, timeThursday, utcThursday, timeFriday, utcFriday, timeSaturday, utcSaturday, timeMonth, utcMonth, timeYear, utcYear } from 'd3-time';\nimport { timeFormat } from 'd3-time-format';\nimport { format } from 'd3-format';\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar centerScale = function centerScale(scale) {\n var bandwidth = scale.bandwidth();\n if (bandwidth === 0) return scale;\n var offset = bandwidth / 2;\n\n if (scale.round()) {\n offset = Math.round(offset);\n }\n\n return function (d) {\n return scale(d) + offset;\n };\n};\n\nvar timeByType = {\n millisecond: [timeMillisecond, utcMillisecond],\n second: [timeSecond, utcSecond],\n minute: [timeMinute, utcMinute],\n hour: [timeHour, utcHour],\n day: [timeDay, utcDay],\n week: [timeWeek, utcWeek],\n sunday: [timeSunday, utcSunday],\n monday: [timeMonday, utcMonday],\n tuesday: [timeTuesday, utcTuesday],\n wednesday: [timeWednesday, utcWednesday],\n thursday: [timeThursday, utcThursday],\n friday: [timeFriday, utcFriday],\n saturday: [timeSaturday, utcSaturday],\n month: [timeMonth, utcMonth],\n year: [timeYear, utcYear]\n};\nvar timeTypes = Object.keys(timeByType);\nvar timeIntervalRegexp = new RegExp(\"^every\\\\s*(\\\\d+)?\\\\s*(\".concat(timeTypes.join('|'), \")s?$\"), 'i');\n\nvar getScaleTicks = function getScaleTicks(scale, spec) {\n if (Array.isArray(spec)) {\n return spec;\n }\n\n if (scale.ticks) {\n if (spec === undefined) {\n return scale.ticks();\n }\n\n if (isNumber(spec)) {\n return scale.ticks(spec);\n }\n\n if (typeof spec === 'string') {\n var matches = spec.match(timeIntervalRegexp);\n\n if (matches) {\n var timeType = timeByType[matches[2]][scale.useUTC ? 1 : 0];\n\n if (matches[1] === undefined) {\n return scale.ticks(timeType);\n }\n\n return scale.ticks(timeType.every(Number(matches[1])));\n }\n\n throw new Error(\"Invalid tickValues: \".concat(spec));\n }\n }\n\n return scale.domain();\n};\n\nvar computeCartesianTicks = function computeCartesianTicks(_ref) {\n var axis = _ref.axis,\n scale = _ref.scale,\n ticksPosition = _ref.ticksPosition,\n tickValues = _ref.tickValues,\n tickSize = _ref.tickSize,\n tickPadding = _ref.tickPadding,\n tickRotation = _ref.tickRotation,\n _ref$engine = _ref.engine,\n engine = _ref$engine === void 0 ? 'svg' : _ref$engine;\n var values = getScaleTicks(scale, tickValues);\n var textProps = textPropsByEngine[engine];\n var position = scale.bandwidth ? centerScale(scale) : scale;\n var line = {\n lineX: 0,\n lineY: 0\n };\n var text = {\n textX: 0,\n textY: 0\n };\n var translate;\n var textAlign = textProps.align.center;\n var textBaseline = textProps.baseline.center;\n\n if (axis === 'x') {\n translate = function translate(d) {\n return {\n x: position(d),\n y: 0\n };\n };\n\n line.lineY = tickSize * (ticksPosition === 'after' ? 1 : -1);\n text.textY = (tickSize + tickPadding) * (ticksPosition === 'after' ? 1 : -1);\n\n if (ticksPosition === 'after') {\n textBaseline = textProps.baseline.top;\n } else {\n textBaseline = textProps.baseline.bottom;\n }\n\n if (tickRotation === 0) {\n textAlign = textProps.align.center;\n } else if (ticksPosition === 'after' && tickRotation < 0 || ticksPosition === 'before' && tickRotation > 0) {\n textAlign = textProps.align.right;\n textBaseline = textProps.baseline.center;\n } else if (ticksPosition === 'after' && tickRotation > 0 || ticksPosition === 'before' && tickRotation < 0) {\n textAlign = textProps.align.left;\n textBaseline = textProps.baseline.center;\n }\n } else {\n translate = function translate(d) {\n return {\n x: 0,\n y: position(d)\n };\n };\n\n line.lineX = tickSize * (ticksPosition === 'after' ? 1 : -1);\n text.textX = (tickSize + tickPadding) * (ticksPosition === 'after' ? 1 : -1);\n\n if (ticksPosition === 'after') {\n textAlign = textProps.align.left;\n } else {\n textAlign = textProps.align.right;\n }\n }\n\n var ticks = values.map(function (value) {\n return _objectSpread({\n key: value,\n value: value\n }, translate(value), line, text);\n });\n return {\n ticks: ticks,\n textAlign: textAlign,\n textBaseline: textBaseline\n };\n};\n\nvar getFormatter = function getFormatter(format$1, scale) {\n if (!format$1 || typeof format$1 === 'function') return format$1;\n\n if (scale.type === 'time') {\n var f = timeFormat(format$1);\n return function (d) {\n return f(new Date(d));\n };\n }\n\n return format(format$1);\n};\n\nvar computeGridLines = function computeGridLines(_ref2) {\n var width = _ref2.width,\n height = _ref2.height,\n scale = _ref2.scale,\n axis = _ref2.axis,\n _values = _ref2.values;\n var lineValues = Array.isArray(_values) ? _values : undefined;\n var lineCount = isNumber(_values) ? _values : undefined;\n var values = lineValues || getScaleTicks(scale, lineCount);\n var position = scale.bandwidth ? centerScale(scale) : scale;\n var lines;\n\n if (axis === 'x') {\n lines = values.map(function (v) {\n return {\n key: \"\".concat(v),\n x1: position(v),\n x2: position(v),\n y1: 0,\n y2: height\n };\n });\n } else if (axis === 'y') {\n lines = values.map(function (v) {\n return {\n key: \"\".concat(v),\n x1: 0,\n x2: width,\n y1: position(v),\n y2: position(v)\n };\n });\n }\n\n return lines;\n};\n\nvar axisPropTypes = {\n ticksPosition: PropTypes.oneOf(['before', 'after']),\n tickValues: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)])), PropTypes.string]),\n tickSize: PropTypes.number,\n tickPadding: PropTypes.number,\n tickRotation: PropTypes.number,\n format: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n renderTick: PropTypes.func,\n legend: PropTypes.node,\n legendPosition: PropTypes.oneOf(['start', 'middle', 'end']),\n legendOffset: PropTypes.number\n};\nvar axisPropType = PropTypes.shape(axisPropTypes);\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar AxisTick = function AxisTick(_ref) {\n var _value = _ref.value,\n x = _ref.x,\n y = _ref.y,\n opacity = _ref.opacity,\n rotate = _ref.rotate,\n format = _ref.format,\n lineX = _ref.lineX,\n lineY = _ref.lineY,\n _onClick = _ref.onClick,\n textX = _ref.textX,\n textY = _ref.textY,\n textBaseline = _ref.textBaseline,\n textAnchor = _ref.textAnchor;\n var theme = useTheme();\n var value = _value;\n\n if (format !== undefined) {\n value = format(value);\n }\n\n var gStyle = {\n opacity: opacity\n };\n\n if (_onClick) {\n gStyle['cursor'] = 'pointer';\n }\n\n return React.createElement(\"g\", _extends({\n transform: \"translate(\".concat(x, \",\").concat(y, \")\")\n }, _onClick ? {\n onClick: function onClick(e) {\n return _onClick(e, value);\n }\n } : {}, {\n style: gStyle\n }), React.createElement(\"line\", {\n x1: 0,\n x2: lineX,\n y1: 0,\n y2: lineY,\n style: theme.axis.ticks.line\n }), React.createElement(\"text\", {\n dominantBaseline: textBaseline,\n textAnchor: textAnchor,\n transform: \"translate(\".concat(textX, \",\").concat(textY, \") rotate(\").concat(rotate, \")\"),\n style: theme.axis.ticks.text\n }, value));\n};\n\nAxisTick.defaultProps = {\n opacity: 1,\n rotate: 0\n};\nvar AxisTick$1 = memo(AxisTick);\n\nfunction _extends$1() {\n _extends$1 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$1.apply(this, arguments);\n}\n\nfunction _objectSpread$1(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$1(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$1(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar willEnter = function willEnter() {\n return {\n rotate: 0,\n opacity: 0,\n x: 0,\n y: 0\n };\n};\n\nvar willLeave = function willLeave(springConfig) {\n return function (_ref) {\n var _ref$style = _ref.style,\n x = _ref$style.x,\n y = _ref$style.y,\n rotate = _ref$style.rotate;\n return {\n rotate: rotate,\n opacity: spring(0, springConfig),\n x: spring(x.val, springConfig),\n y: spring(y.val, springConfig)\n };\n };\n};\n\nvar defaultTickRenderer = function defaultTickRenderer(props) {\n return React.createElement(AxisTick$1, props);\n};\n\nvar Axis = function Axis(_ref2) {\n var axis = _ref2.axis,\n scale = _ref2.scale,\n x = _ref2.x,\n y = _ref2.y,\n length = _ref2.length,\n ticksPosition = _ref2.ticksPosition,\n tickValues = _ref2.tickValues,\n tickSize = _ref2.tickSize,\n tickPadding = _ref2.tickPadding,\n tickRotation = _ref2.tickRotation,\n format = _ref2.format,\n renderTick = _ref2.renderTick,\n legend = _ref2.legend,\n legendPosition = _ref2.legendPosition,\n legendOffset = _ref2.legendOffset,\n onClick = _ref2.onClick;\n var theme = useTheme();\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n\n var formatValue = useMemo(function () {\n return getFormatter(format, scale);\n }, [format, scale]);\n\n var _computeCartesianTick = computeCartesianTicks({\n axis: axis,\n scale: scale,\n ticksPosition: ticksPosition,\n tickValues: tickValues,\n tickSize: tickSize,\n tickPadding: tickPadding,\n tickRotation: tickRotation\n }),\n ticks = _computeCartesianTick.ticks,\n textAlign = _computeCartesianTick.textAlign,\n textBaseline = _computeCartesianTick.textBaseline;\n\n var legendNode = null;\n\n if (legend !== undefined) {\n var legendX = 0;\n var legendY = 0;\n var legendRotation = 0;\n var textAnchor;\n\n if (axis === 'y') {\n legendRotation = -90;\n legendX = legendOffset;\n\n if (legendPosition === 'start') {\n textAnchor = 'start';\n legendY = length;\n } else if (legendPosition === 'middle') {\n textAnchor = 'middle';\n legendY = length / 2;\n } else if (legendPosition === 'end') {\n textAnchor = 'end';\n }\n } else {\n legendY = legendOffset;\n\n if (legendPosition === 'start') {\n textAnchor = 'start';\n } else if (legendPosition === 'middle') {\n textAnchor = 'middle';\n legendX = length / 2;\n } else if (legendPosition === 'end') {\n textAnchor = 'end';\n legendX = length;\n }\n }\n\n legendNode = React.createElement(\"text\", {\n transform: \"translate(\".concat(legendX, \", \").concat(legendY, \") rotate(\").concat(legendRotation, \")\"),\n textAnchor: textAnchor,\n style: _objectSpread$1({\n dominantBaseline: 'central'\n }, theme.axis.legend.text)\n }, legend);\n }\n\n if (animate !== true) {\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(x, \",\").concat(y, \")\")\n }, ticks.map(function (tick, tickIndex) {\n return React.createElement(renderTick, _objectSpread$1({\n tickIndex: tickIndex,\n format: formatValue,\n rotate: tickRotation,\n textBaseline: textBaseline,\n textAnchor: textAlign\n }, tick, onClick ? {\n onClick: onClick\n } : {}));\n }), React.createElement(\"line\", {\n style: theme.axis.domain.line,\n x1: 0,\n x2: axis === 'x' ? length : 0,\n y1: 0,\n y2: axis === 'x' ? 0 : length\n }), legendNode);\n }\n\n return React.createElement(Motion, {\n style: {\n x: spring(x, springConfig),\n y: spring(y, springConfig)\n }\n }, function (xy) {\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(xy.x, \",\").concat(xy.y, \")\")\n }, React.createElement(TransitionMotion, {\n willEnter: willEnter,\n willLeave: willLeave(springConfig),\n styles: ticks.map(function (tick) {\n return {\n key: \"\".concat(tick.key),\n data: tick,\n style: {\n opacity: spring(1, springConfig),\n x: spring(tick.x, springConfig),\n y: spring(tick.y, springConfig),\n rotate: spring(tickRotation, springConfig)\n }\n };\n })\n }, function (interpolatedStyles) {\n return React.createElement(Fragment, null, interpolatedStyles.map(function (_ref3, tickIndex) {\n var style = _ref3.style,\n tick = _ref3.data;\n return React.createElement(renderTick, _objectSpread$1({\n tickIndex: tickIndex,\n format: formatValue,\n textBaseline: textBaseline,\n textAnchor: textAlign\n }, tick, style, onClick ? {\n onClick: onClick\n } : {}));\n }));\n }), React.createElement(Motion, {\n style: {\n x2: spring(axis === 'x' ? length : 0, springConfig),\n y2: spring(axis === 'x' ? 0 : length, springConfig)\n }\n }, function (values) {\n return React.createElement(\"line\", _extends$1({\n style: theme.axis.domain.line,\n x1: 0,\n y1: 0\n }, values));\n }), legendNode);\n });\n};\n\nAxis.defaultProps = {\n x: 0,\n y: 0,\n tickSize: 5,\n tickPadding: 5,\n tickRotation: 0,\n renderTick: defaultTickRenderer,\n legendPosition: 'end',\n legendOffset: 0\n};\nvar Axis$1 = memo(Axis);\n\nfunction _extends$2() {\n _extends$2 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$2.apply(this, arguments);\n}\n\nvar positions = ['top', 'right', 'bottom', 'left'];\n\nvar Axes = function Axes(_ref) {\n var xScale = _ref.xScale,\n yScale = _ref.yScale,\n width = _ref.width,\n height = _ref.height,\n top = _ref.top,\n right = _ref.right,\n bottom = _ref.bottom,\n left = _ref.left;\n var axes = {\n top: top,\n right: right,\n bottom: bottom,\n left: left\n };\n return positions.map(function (position) {\n var axis = axes[position];\n if (!axis) return null;\n var isXAxis = position === 'top' || position === 'bottom';\n var ticksPosition = position === 'top' || position === 'left' ? 'before' : 'after';\n return React.createElement(Axis$1, _extends$2({\n key: position\n }, axis, {\n axis: isXAxis ? 'x' : 'y',\n x: position === 'right' ? width : 0,\n y: position === 'bottom' ? height : 0,\n scale: isXAxis ? xScale : yScale,\n length: isXAxis ? width : height,\n ticksPosition: ticksPosition\n }));\n });\n};\n\nvar Axes$1 = memo(Axes);\n\nvar GridLine = function GridLine(props) {\n return React.createElement(\"line\", props);\n};\n\nGridLine.defaultProps = {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n};\nvar GridLine$1 = memo(GridLine);\n\nfunction _extends$3() {\n _extends$3 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$3.apply(this, arguments);\n}\n\nvar GridLines = function GridLines(_ref) {\n var type = _ref.type,\n lines = _ref.lines;\n var theme = useTheme();\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n\n var lineWillEnter = useMemo(function () {\n return function (_ref2) {\n var style = _ref2.style;\n return {\n opacity: 0,\n x1: type === 'x' ? 0 : style.x1.val,\n x2: type === 'x' ? 0 : style.x2.val,\n y1: type === 'y' ? 0 : style.y1.val,\n y2: type === 'y' ? 0 : style.y2.val\n };\n };\n }, [type]);\n var lineWillLeave = useMemo(function () {\n return function (_ref3) {\n var style = _ref3.style;\n return {\n opacity: spring(0, springConfig),\n x1: spring(style.x1.val, springConfig),\n x2: spring(style.x2.val, springConfig),\n y1: spring(style.y1.val, springConfig),\n y2: spring(style.y2.val, springConfig)\n };\n };\n }, [springConfig]);\n\n if (!animate) {\n return React.createElement(\"g\", null, lines.map(function (line) {\n return React.createElement(GridLine$1, _extends$3({\n key: line.key\n }, line, theme.grid.line));\n }));\n }\n\n return React.createElement(TransitionMotion, {\n willEnter: lineWillEnter,\n willLeave: lineWillLeave,\n styles: lines.map(function (line) {\n return {\n key: line.key,\n style: {\n opacity: spring(1, springConfig),\n x1: spring(line.x1 || 0, springConfig),\n x2: spring(line.x2 || 0, springConfig),\n y1: spring(line.y1 || 0, springConfig),\n y2: spring(line.y2 || 0, springConfig)\n }\n };\n })\n }, function (interpolatedStyles) {\n return React.createElement(\"g\", null, interpolatedStyles.map(function (interpolatedStyle) {\n var key = interpolatedStyle.key,\n style = interpolatedStyle.style;\n return React.createElement(GridLine$1, _extends$3({\n key: key\n }, theme.grid.line, style));\n }));\n });\n};\n\nvar GridLines$1 = memo(GridLines);\n\nvar Grid = function Grid(_ref) {\n var width = _ref.width,\n height = _ref.height,\n xScale = _ref.xScale,\n yScale = _ref.yScale,\n xValues = _ref.xValues,\n yValues = _ref.yValues;\n var xLines = useMemo(function () {\n if (!xScale) return false;\n return computeGridLines({\n width: width,\n height: height,\n scale: xScale,\n axis: 'x',\n values: xValues\n });\n }, [xScale, xValues]);\n var yLines = yScale ? computeGridLines({\n width: width,\n height: height,\n scale: yScale,\n axis: 'y',\n values: yValues\n }) : false;\n return React.createElement(React.Fragment, null, xLines && React.createElement(GridLines$1, {\n type: \"x\",\n lines: xLines\n }), yLines && React.createElement(GridLines$1, {\n type: \"y\",\n lines: yLines\n }));\n};\n\nvar Grid$1 = memo(Grid);\n\nvar degreesToRadians = function degreesToRadians(degrees) {\n return degrees * Math.PI / 180;\n};\n\nfunction _objectSpread$2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$2(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$2(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar renderAxisToCanvas = function renderAxisToCanvas(ctx, _ref) {\n var axis = _ref.axis,\n scale = _ref.scale,\n _ref$x = _ref.x,\n x = _ref$x === void 0 ? 0 : _ref$x,\n _ref$y = _ref.y,\n y = _ref$y === void 0 ? 0 : _ref$y,\n length = _ref.length,\n ticksPosition = _ref.ticksPosition,\n tickValues = _ref.tickValues,\n _ref$tickSize = _ref.tickSize,\n tickSize = _ref$tickSize === void 0 ? 5 : _ref$tickSize,\n _ref$tickPadding = _ref.tickPadding,\n tickPadding = _ref$tickPadding === void 0 ? 5 : _ref$tickPadding,\n _ref$tickRotation = _ref.tickRotation,\n tickRotation = _ref$tickRotation === void 0 ? 0 : _ref$tickRotation,\n format = _ref.format,\n legend = _ref.legend,\n _ref$legendPosition = _ref.legendPosition,\n legendPosition = _ref$legendPosition === void 0 ? 'end' : _ref$legendPosition,\n _ref$legendOffset = _ref.legendOffset,\n legendOffset = _ref$legendOffset === void 0 ? 0 : _ref$legendOffset,\n theme = _ref.theme;\n\n var _computeCartesianTick = computeCartesianTicks({\n axis: axis,\n scale: scale,\n ticksPosition: ticksPosition,\n tickValues: tickValues,\n tickSize: tickSize,\n tickPadding: tickPadding,\n tickRotation: tickRotation,\n engine: 'canvas'\n }),\n ticks = _computeCartesianTick.ticks,\n textAlign = _computeCartesianTick.textAlign,\n textBaseline = _computeCartesianTick.textBaseline;\n\n ctx.save();\n ctx.translate(x, y);\n ctx.textAlign = textAlign;\n ctx.textBaseline = textBaseline;\n ctx.font = \"\".concat(theme.axis.ticks.text.fontSize, \"px \").concat(theme.axis.ticks.text.fontFamily);\n\n if (theme.axis.domain.line.strokeWidth > 0) {\n ctx.lineWidth = theme.axis.domain.line.strokeWidth;\n ctx.lineCap = 'square';\n ctx.strokeStyle = theme.axis.domain.line.stroke;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(axis === 'x' ? length : 0, axis === 'x' ? 0 : length);\n ctx.stroke();\n }\n\n ticks.forEach(function (tick) {\n if (theme.axis.ticks.line.strokeWidth > 0) {\n ctx.lineWidth = theme.axis.ticks.line.strokeWidth;\n ctx.lineCap = 'square';\n ctx.strokeStyle = theme.axis.ticks.line.stroke;\n ctx.beginPath();\n ctx.moveTo(tick.x, tick.y);\n ctx.lineTo(tick.x + tick.lineX, tick.y + tick.lineY);\n ctx.stroke();\n }\n\n var value = format !== undefined ? format(tick.value) : tick.value;\n ctx.save();\n ctx.translate(tick.x + tick.textX, tick.y + tick.textY);\n ctx.rotate(degreesToRadians(tickRotation));\n ctx.fillStyle = theme.axis.ticks.text.fill;\n ctx.fillText(value, 0, 0);\n ctx.restore();\n });\n\n if (legend !== undefined) {\n var legendX = 0;\n var legendY = 0;\n var legendRotation = 0;\n\n var _textAlign;\n\n if (axis === 'y') {\n legendRotation = -90;\n legendX = legendOffset;\n\n if (legendPosition === 'start') {\n _textAlign = 'start';\n legendY = length;\n } else if (legendPosition === 'middle') {\n _textAlign = 'center';\n legendY = length / 2;\n } else if (legendPosition === 'end') {\n _textAlign = 'end';\n }\n } else {\n legendY = legendOffset;\n\n if (legendPosition === 'start') {\n _textAlign = 'start';\n } else if (legendPosition === 'middle') {\n _textAlign = 'center';\n legendX = length / 2;\n } else if (legendPosition === 'end') {\n _textAlign = 'end';\n legendX = length;\n }\n }\n\n ctx.translate(legendX, legendY);\n ctx.rotate(degreesToRadians(legendRotation));\n ctx.font = \"\".concat(theme.axis.legend.text.fontWeight ? \"\".concat(theme.axis.legend.text.fontWeight, \" \") : '').concat(theme.axis.legend.text.fontSize, \"px \").concat(theme.axis.legend.text.fontFamily);\n ctx.fillStyle = theme.axis.legend.text.fill;\n ctx.textAlign = _textAlign;\n ctx.textBaseline = 'middle';\n ctx.fillText(legend, 0, 0);\n }\n\n ctx.restore();\n};\n\nvar positions$1 = ['top', 'right', 'bottom', 'left'];\n\nvar renderAxesToCanvas = function renderAxesToCanvas(ctx, _ref2) {\n var xScale = _ref2.xScale,\n yScale = _ref2.yScale,\n width = _ref2.width,\n height = _ref2.height,\n top = _ref2.top,\n right = _ref2.right,\n bottom = _ref2.bottom,\n left = _ref2.left,\n theme = _ref2.theme;\n var axes = {\n top: top,\n right: right,\n bottom: bottom,\n left: left\n };\n positions$1.forEach(function (position) {\n var axis = axes[position];\n if (!axis) return null;\n var isXAxis = position === 'top' || position === 'bottom';\n var ticksPosition = position === 'top' || position === 'left' ? 'before' : 'after';\n var scale = isXAxis ? xScale : yScale;\n var format = getFormatter(axis.format, scale);\n renderAxisToCanvas(ctx, _objectSpread$2({}, axis, {\n axis: isXAxis ? 'x' : 'y',\n x: position === 'right' ? width : 0,\n y: position === 'bottom' ? height : 0,\n scale: scale,\n format: format,\n length: isXAxis ? width : height,\n ticksPosition: ticksPosition,\n theme: theme\n }));\n });\n};\n\nvar renderGridLinesToCanvas = function renderGridLinesToCanvas(ctx, _ref3) {\n var width = _ref3.width,\n height = _ref3.height,\n scale = _ref3.scale,\n axis = _ref3.axis,\n values = _ref3.values;\n var lines = computeGridLines({\n width: width,\n height: height,\n scale: scale,\n axis: axis,\n values: values\n });\n lines.forEach(function (line) {\n ctx.beginPath();\n ctx.moveTo(line.x1, line.y1);\n ctx.lineTo(line.x2, line.y2);\n ctx.stroke();\n });\n};\n\nexport { Axes$1 as Axes, Axis$1 as Axis, Grid$1 as Grid, axisPropType, axisPropTypes, renderAxesToCanvas, renderAxisToCanvas, renderGridLinesToCanvas };","import \"core-js/modules/es.array.reduce.js\";\nimport React, { useMemo, useCallback, memo, useState, Fragment } from 'react';\nimport { useTheme, motionPropTypes, useMotionConfig, SmartMotion, withContainer, useDimensions, SvgWrapper, ResponsiveWrapper, blendModePropType, bindDefs } from '@nivo/core';\nimport { axisPropType, Grid, Axes } from '@nivo/axes';\nimport { line, curveBasis, curveLinear, area } from 'd3-shape';\nimport { useOrdinalColorScale, useInheritedColor, ordinalColorsPropType, inheritedColorPropType } from '@nivo/colors';\nimport { useTooltip, BasicTooltip } from '@nivo/tooltip';\nimport { scalePoint, scaleLinear } from 'd3-scale';\nimport PropTypes from 'prop-types';\nimport { TransitionMotion, spring } from 'react-motion';\nimport sortBy from 'lodash/sortBy';\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar computeSeries = function computeSeries(_ref) {\n var width = _ref.width,\n height = _ref.height,\n data = _ref.data,\n xPadding = _ref.xPadding,\n xOuterPadding = _ref.xOuterPadding,\n yOuterPadding = _ref.yOuterPadding;\n var xValues = new Set();\n data.forEach(function (serie) {\n serie.data.forEach(function (datum) {\n if (!xValues.has(datum.x)) {\n xValues.add(datum.x);\n }\n });\n });\n xValues = Array.from(xValues);\n var xScale = scalePoint().domain(xValues).range([0, width]).padding(xOuterPadding);\n var yScale = scalePoint().domain(data.map(function (serie, i) {\n return i + 1;\n })).range([0, height]).padding(yOuterPadding);\n var linePointPadding = xScale.step() * Math.min(xPadding * 0.5, 0.5);\n var series = data.map(function (rawSerie) {\n var serie = _objectSpread({}, rawSerie, {\n points: [],\n linePoints: []\n });\n\n rawSerie.data.forEach(function (datum, i) {\n var x = null;\n var y = null;\n\n if (datum.y !== null && datum.y !== undefined) {\n x = xScale(datum.x);\n y = yScale(datum.y);\n }\n\n var point = {\n id: \"\".concat(rawSerie.id, \".\").concat(i),\n serie: rawSerie,\n data: datum,\n x: x,\n y: y\n };\n serie.points.push(point);\n\n if (x !== null) {\n if (i === 0) {\n serie.linePoints.push([0, point.y]);\n } else {\n serie.linePoints.push([point.x - linePointPadding, point.y]);\n }\n }\n\n serie.linePoints.push([point.x, point.y]);\n\n if (x !== null) {\n if (i === rawSerie.data.length - 1 && x) {\n serie.linePoints.push([width, point.y]);\n } else {\n serie.linePoints.push([point.x + linePointPadding, point.y]);\n }\n }\n\n serie.points = serie.points.filter(function (point) {\n return point.x !== null;\n });\n });\n return serie;\n });\n return {\n series: series,\n xScale: xScale,\n yScale: yScale\n };\n};\n\nfunction _objectSpread$1(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$1(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$1(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar useLineGenerator = function useLineGenerator(interpolation) {\n return useMemo(function () {\n return line().curve(interpolation === 'smooth' ? curveBasis : curveLinear).defined(function (d) {\n return d[0] !== null && d[1] !== null;\n });\n }, [interpolation]);\n};\n\nvar useSerieDerivedProp = function useSerieDerivedProp(instruction) {\n return useMemo(function () {\n if (typeof instruction === 'function') return instruction;\n return function () {\n return instruction;\n };\n }, [instruction]);\n};\n\nvar useSerieStyle = function useSerieStyle(_ref) {\n var lineWidth = _ref.lineWidth,\n activeLineWidth = _ref.activeLineWidth,\n inactiveLineWidth = _ref.inactiveLineWidth,\n opacity = _ref.opacity,\n activeOpacity = _ref.activeOpacity,\n inactiveOpacity = _ref.inactiveOpacity,\n isInteractive = _ref.isInteractive,\n currentSerie = _ref.currentSerie;\n var getLineWidth = useSerieDerivedProp(lineWidth);\n var getActiveLineWidth = useSerieDerivedProp(activeLineWidth);\n var getInactiveLineWidth = useSerieDerivedProp(inactiveLineWidth);\n var getOpacity = useSerieDerivedProp(opacity);\n var getActiveOpacity = useSerieDerivedProp(activeOpacity);\n var getInactiveOpacity = useSerieDerivedProp(inactiveOpacity);\n var getNormalStyle = useMemo(function () {\n return function (serie) {\n return {\n lineWidth: getLineWidth(serie),\n opacity: getOpacity(serie)\n };\n };\n }, [getLineWidth, getOpacity]);\n var getActiveStyle = useMemo(function () {\n return function (serie) {\n return {\n lineWidth: getActiveLineWidth(serie),\n opacity: getActiveOpacity(serie)\n };\n };\n }, [getActiveLineWidth, getActiveOpacity]);\n var getInactiveStyle = useMemo(function () {\n return function (serie) {\n return {\n lineWidth: getInactiveLineWidth(serie),\n opacity: getInactiveOpacity(serie)\n };\n };\n }, [getInactiveLineWidth, getInactiveOpacity]);\n return useMemo(function () {\n if (!isInteractive) return getNormalStyle;\n return function (serie) {\n if (currentSerie === null) return getNormalStyle(serie);\n if (serie.id === currentSerie) return getActiveStyle(serie);\n return getInactiveStyle(serie);\n };\n }, [getNormalStyle, getActiveStyle, getInactiveStyle, isInteractive, currentSerie]);\n};\n\nvar usePointStyle = function usePointStyle(_ref2) {\n var pointSize = _ref2.pointSize,\n activePointSize = _ref2.activePointSize,\n inactivePointSize = _ref2.inactivePointSize,\n pointBorderWidth = _ref2.pointBorderWidth,\n activePointBorderWidth = _ref2.activePointBorderWidth,\n inactivePointBorderWidth = _ref2.inactivePointBorderWidth,\n isInteractive = _ref2.isInteractive,\n currentSerie = _ref2.currentSerie;\n var getSize = useSerieDerivedProp(pointSize);\n var getActiveSize = useSerieDerivedProp(activePointSize);\n var getInactiveSize = useSerieDerivedProp(inactivePointSize);\n var getBorderWidth = useSerieDerivedProp(pointBorderWidth);\n var getActiveBorderWidth = useSerieDerivedProp(activePointBorderWidth);\n var getInactiveBorderWidth = useSerieDerivedProp(inactivePointBorderWidth);\n var getNormalStyle = useMemo(function () {\n return function (point) {\n return {\n size: getSize(point),\n borderWidth: getBorderWidth(point)\n };\n };\n }, [getSize, getBorderWidth]);\n var getActiveStyle = useMemo(function () {\n return function (point) {\n return {\n size: getActiveSize(point),\n borderWidth: getActiveBorderWidth(point)\n };\n };\n }, [getActiveSize, getActiveBorderWidth]);\n var getInactiveStyle = useMemo(function () {\n return function (point) {\n return {\n size: getInactiveSize(point),\n borderWidth: getInactiveBorderWidth(point)\n };\n };\n }, [getInactiveSize, getInactiveBorderWidth]);\n return useMemo(function () {\n if (!isInteractive) return getNormalStyle;\n return function (point) {\n if (currentSerie === null) return getNormalStyle(point);\n if (point.serieId === currentSerie) return getActiveStyle(point);\n return getInactiveStyle(point);\n };\n }, [getNormalStyle, getActiveStyle, getInactiveStyle, isInteractive, currentSerie]);\n};\n\nvar useBump = function useBump(_ref3) {\n var width = _ref3.width,\n height = _ref3.height,\n data = _ref3.data,\n interpolation = _ref3.interpolation,\n xPadding = _ref3.xPadding,\n xOuterPadding = _ref3.xOuterPadding,\n yOuterPadding = _ref3.yOuterPadding,\n lineWidth = _ref3.lineWidth,\n activeLineWidth = _ref3.activeLineWidth,\n inactiveLineWidth = _ref3.inactiveLineWidth,\n colors = _ref3.colors,\n opacity = _ref3.opacity,\n activeOpacity = _ref3.activeOpacity,\n inactiveOpacity = _ref3.inactiveOpacity,\n pointSize = _ref3.pointSize,\n activePointSize = _ref3.activePointSize,\n inactivePointSize = _ref3.inactivePointSize,\n pointColor = _ref3.pointColor,\n pointBorderWidth = _ref3.pointBorderWidth,\n activePointBorderWidth = _ref3.activePointBorderWidth,\n inactivePointBorderWidth = _ref3.inactivePointBorderWidth,\n pointBorderColor = _ref3.pointBorderColor,\n isInteractive = _ref3.isInteractive,\n currentSerie = _ref3.currentSerie;\n\n var _useMemo = useMemo(function () {\n return computeSeries({\n width: width,\n height: height,\n data: data,\n xPadding: xPadding,\n xOuterPadding: xOuterPadding,\n yOuterPadding: yOuterPadding\n });\n }, [width, height, data, xPadding, xOuterPadding, yOuterPadding]),\n rawSeries = _useMemo.series,\n xScale = _useMemo.xScale,\n yScale = _useMemo.yScale;\n\n var lineGenerator = useLineGenerator(interpolation);\n var getColor = useOrdinalColorScale(colors, 'id');\n var getSerieStyle = useSerieStyle({\n lineWidth: lineWidth,\n activeLineWidth: activeLineWidth,\n inactiveLineWidth: inactiveLineWidth,\n opacity: opacity,\n activeOpacity: activeOpacity,\n inactiveOpacity: inactiveOpacity,\n isInteractive: isInteractive,\n currentSerie: currentSerie\n });\n var series = useMemo(function () {\n return rawSeries.map(function (serie) {\n serie.color = getColor(serie);\n serie.style = getSerieStyle(serie);\n return serie;\n });\n }, [rawSeries, getColor, getSerieStyle]);\n var theme = useTheme();\n var getPointColor = useInheritedColor(pointColor, theme);\n var getPointBorderColor = useInheritedColor(pointBorderColor, theme);\n var getPointStyle = usePointStyle({\n pointSize: pointSize,\n activePointSize: activePointSize,\n inactivePointSize: inactivePointSize,\n pointBorderWidth: pointBorderWidth,\n activePointBorderWidth: activePointBorderWidth,\n inactivePointBorderWidth: inactivePointBorderWidth,\n isInteractive: isInteractive,\n currentSerie: currentSerie\n });\n var points = useMemo(function () {\n var pts = [];\n series.forEach(function (serie) {\n serie.points.forEach(function (rawPoint) {\n var point = _objectSpread$1({}, rawPoint, {\n serie: serie,\n serieId: serie.id,\n isActive: currentSerie === serie.id,\n isInactive: currentSerie !== null && currentSerie !== serie.id\n });\n\n point.color = getPointColor(point);\n point.borderColor = getPointBorderColor(point);\n point.style = getPointStyle(_objectSpread$1({}, point, {\n serie: serie\n }));\n pts.push(point);\n });\n });\n return pts;\n }, [series, getPointColor, getPointBorderColor, getPointStyle, currentSerie]);\n return {\n xScale: xScale,\n yScale: yScale,\n series: series,\n points: points,\n lineGenerator: lineGenerator\n };\n};\n\nvar useSerieHandlers = function useSerieHandlers(_ref4) {\n var serie = _ref4.serie,\n isInteractive = _ref4.isInteractive,\n onMouseEnter = _ref4.onMouseEnter,\n onMouseMove = _ref4.onMouseMove,\n onMouseLeave = _ref4.onMouseLeave,\n onClick = _ref4.onClick,\n setCurrent = _ref4.setCurrent,\n tooltip = _ref4.tooltip;\n\n var _useTooltip = useTooltip(),\n showTooltipFromEvent = _useTooltip.showTooltipFromEvent,\n hideTooltip = _useTooltip.hideTooltip;\n\n var handleMouseEnter = useCallback(function (event) {\n showTooltipFromEvent(React.createElement(tooltip, {\n serie: serie\n }), event);\n setCurrent(serie.id);\n onMouseEnter && onMouseEnter(serie, event);\n }, [serie, onMouseEnter, showTooltipFromEvent, setCurrent]);\n var handleMouseMove = useCallback(function (event) {\n showTooltipFromEvent(React.createElement(tooltip, {\n serie: serie\n }), event);\n onMouseMove && onMouseMove(serie, event);\n }, [serie, onMouseMove, showTooltipFromEvent]);\n var handleMouseLeave = useCallback(function (event) {\n hideTooltip();\n setCurrent(null);\n onMouseLeave && onMouseLeave(serie, event);\n }, [serie, onMouseLeave, hideTooltip, setCurrent]);\n var handleClick = useCallback(function (event) {\n onClick && onClick(serie, event);\n }, [serie, onClick]);\n var handlers = useMemo(function () {\n return {\n onMouseEnter: isInteractive ? handleMouseEnter : undefined,\n onMouseMove: isInteractive ? handleMouseMove : undefined,\n onMouseLeave: isInteractive ? handleMouseLeave : undefined,\n onClick: isInteractive ? handleClick : undefined\n };\n }, [isInteractive, handleMouseEnter, handleMouseMove, handleMouseLeave, handleClick]);\n return handlers;\n};\n\nvar useSeriesLabels = function useSeriesLabels(_ref5) {\n var series = _ref5.series,\n position = _ref5.position,\n padding = _ref5.padding,\n color = _ref5.color,\n getLabel = _ref5.getLabel;\n var theme = useTheme();\n var getColor = useInheritedColor(color, theme);\n return useMemo(function () {\n var textAnchor;\n var signedPadding;\n\n if (position === 'start') {\n textAnchor = 'end';\n signedPadding = padding * -1;\n } else {\n textAnchor = 'start';\n signedPadding = padding;\n }\n\n var labels = [];\n series.forEach(function (serie) {\n var label = serie.id;\n\n if (typeof getLabel === 'function') {\n label = getLabel(serie);\n }\n\n var point = position === 'start' ? serie.linePoints[0] : serie.linePoints[serie.linePoints.length - 1];\n\n if (point[0] === null || point[1] === null) {\n return;\n }\n\n labels.push({\n id: serie.id,\n label: label,\n x: point[0] + signedPadding,\n y: point[1],\n color: getColor(serie),\n opacity: serie.style.opacity,\n serie: serie,\n textAnchor: textAnchor\n });\n });\n return labels;\n }, [series, position, padding, getColor]);\n};\n\nvar LineTooltip = function LineTooltip(_ref) {\n var serie = _ref.serie;\n return React.createElement(BasicTooltip, {\n id: serie.id,\n enableChip: true,\n color: serie.color\n });\n};\n\nvar LineTooltip$1 = memo(LineTooltip);\nvar pointStyle = {\n pointerEvents: 'none'\n};\n\nvar Point = function Point(_ref) {\n var x = _ref.x,\n y = _ref.y,\n size = _ref.size,\n color = _ref.color,\n borderColor = _ref.borderColor,\n borderWidth = _ref.borderWidth;\n return React.createElement(\"circle\", {\n cx: x,\n cy: y,\n r: size / 2,\n fill: color,\n strokeWidth: borderWidth,\n stroke: borderColor,\n style: pointStyle\n });\n};\n\nvar Point$1 = memo(Point);\n\nfunction _objectSpread$2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$2(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$2(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar commonPropTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n })).isRequired\n })).isRequired,\n layers: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['grid', 'axes', 'labels', 'lines', 'points']), PropTypes.func])).isRequired,\n interpolation: PropTypes.oneOf(['linear', 'smooth']).isRequired,\n xPadding: PropTypes.number.isRequired,\n xOuterPadding: PropTypes.number.isRequired,\n yOuterPadding: PropTypes.number.isRequired,\n colors: ordinalColorsPropType.isRequired,\n lineWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n activeLineWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n inactiveLineWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n opacity: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n activeOpacity: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n inactiveOpacity: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n startLabel: PropTypes.oneOfType([PropTypes.oneOf([false]), PropTypes.string, PropTypes.func]).isRequired,\n startLabelPadding: PropTypes.number.isRequired,\n startLabelTextColor: inheritedColorPropType.isRequired,\n endLabel: PropTypes.oneOfType([PropTypes.oneOf([false]), PropTypes.string, PropTypes.func]).isRequired,\n endLabelPadding: PropTypes.number.isRequired,\n endLabelTextColor: inheritedColorPropType.isRequired,\n pointComponent: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired,\n pointSize: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n activePointSize: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n inactivePointSize: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n pointColor: inheritedColorPropType.isRequired,\n pointBorderWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n activePointBorderWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n inactivePointBorderWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n pointBorderColor: inheritedColorPropType.isRequired,\n enableGridX: PropTypes.bool.isRequired,\n enableGridY: PropTypes.bool.isRequired,\n axisTop: axisPropType,\n axisRight: axisPropType,\n axisBottom: axisPropType,\n axisLeft: axisPropType,\n isInteractive: PropTypes.bool.isRequired,\n onMouseEnter: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onClick: PropTypes.func,\n tooltip: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired\n};\n\nvar BumpPropTypes = _objectSpread$2({}, commonPropTypes, motionPropTypes);\n\nvar commonDefaultProps = {\n layers: ['grid', 'axes', 'labels', 'lines', 'points'],\n interpolation: 'smooth',\n xPadding: 0.6,\n xOuterPadding: 0.5,\n yOuterPadding: 0.5,\n colors: {\n scheme: 'nivo'\n },\n lineWidth: 2,\n activeLineWidth: 4,\n inactiveLineWidth: 1,\n opacity: 1,\n activeOpacity: 1,\n inactiveOpacity: 0.3,\n startLabel: false,\n startLabelPadding: 16,\n startLabelTextColor: {\n from: 'color'\n },\n endLabel: 'id',\n endLabelPadding: 16,\n endLabelTextColor: {\n from: 'color'\n },\n pointSize: 6,\n activePointSize: 8,\n inactivePointSize: 4,\n pointColor: {\n from: 'serie.color'\n },\n pointBorderWidth: 0,\n activePointBorderWidth: 0,\n inactivePointBorderWidth: 0,\n pointBorderColor: {\n from: 'serie.color',\n modifiers: [['darker', 1.4]]\n },\n enableGridX: true,\n enableGridY: true,\n axisTop: {},\n axisBottom: {},\n axisLeft: {},\n isInteractive: true,\n tooltip: LineTooltip$1\n};\n\nvar BumpDefaultProps = _objectSpread$2({}, commonDefaultProps, {\n pointComponent: Point$1,\n animate: true,\n motionStiffness: 90,\n motionDamping: 15\n});\n\nvar AnimatedLine = function AnimatedLine(_ref) {\n var serie = _ref.serie,\n lineGenerator = _ref.lineGenerator,\n yStep = _ref.yStep,\n isInteractive = _ref.isInteractive,\n onMouseEnter = _ref.onMouseEnter,\n onMouseMove = _ref.onMouseMove,\n onMouseLeave = _ref.onMouseLeave,\n onClick = _ref.onClick;\n\n var _useMotionConfig = useMotionConfig(),\n springConfig = _useMotionConfig.springConfig;\n\n var path = useMemo(function () {\n return lineGenerator(serie.linePoints);\n }, [lineGenerator, serie.linePoints]);\n return React.createElement(SmartMotion, {\n style: function style(spring) {\n return {\n d: spring(path, springConfig),\n stroke: spring(serie.color, springConfig),\n opacity: spring(serie.style.opacity, springConfig),\n strokeWidth: spring(serie.style.lineWidth, springConfig)\n };\n }\n }, function (interpolated) {\n return React.createElement(React.Fragment, null, React.createElement(\"path\", {\n fill: \"none\",\n d: interpolated.d,\n stroke: interpolated.stroke,\n strokeWidth: interpolated.strokeWidth,\n strokeLinecap: \"round\",\n strokeOpacity: interpolated.opacity,\n style: {\n pointerEvents: 'none'\n }\n }), isInteractive && React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"red\",\n strokeOpacity: 0,\n strokeWidth: yStep,\n d: path,\n strokeLinecap: \"butt\",\n onMouseEnter: onMouseEnter,\n onMouseMove: onMouseMove,\n onMouseLeave: onMouseLeave,\n onClick: onClick\n }));\n });\n};\n\nvar AnimatedLine$1 = memo(AnimatedLine);\n\nvar StaticLine = function StaticLine(_ref) {\n var serie = _ref.serie,\n lineGenerator = _ref.lineGenerator,\n yStep = _ref.yStep,\n isInteractive = _ref.isInteractive,\n onMouseEnter = _ref.onMouseEnter,\n onMouseMove = _ref.onMouseMove,\n onMouseLeave = _ref.onMouseLeave,\n onClick = _ref.onClick;\n var path = useMemo(function () {\n return lineGenerator(serie.linePoints);\n }, [lineGenerator, serie.linePoints]);\n return React.createElement(React.Fragment, null, React.createElement(\"path\", {\n fill: \"none\",\n d: path,\n stroke: serie.color,\n strokeWidth: serie.style.lineWidth,\n strokeLinecap: \"round\",\n strokeOpacity: serie.style.opacity,\n style: {\n pointerEvents: 'none'\n }\n }), isInteractive && React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"red\",\n strokeOpacity: 0,\n strokeWidth: yStep,\n d: path,\n strokeLinecap: \"butt\",\n onMouseEnter: onMouseEnter,\n onMouseMove: onMouseMove,\n onMouseLeave: onMouseLeave,\n onClick: onClick\n }));\n};\n\nvar StaticLine$1 = memo(StaticLine);\n\nvar Line = function Line(_ref) {\n var serie = _ref.serie,\n lineGenerator = _ref.lineGenerator,\n yStep = _ref.yStep,\n isInteractive = _ref.isInteractive,\n onMouseEnter = _ref.onMouseEnter,\n onMouseMove = _ref.onMouseMove,\n onMouseLeave = _ref.onMouseLeave,\n onClick = _ref.onClick,\n setCurrentSerie = _ref.setCurrentSerie,\n tooltip = _ref.tooltip;\n var handlers = useSerieHandlers({\n serie: serie,\n isInteractive: isInteractive,\n onMouseEnter: onMouseEnter,\n onMouseMove: onMouseMove,\n onMouseLeave: onMouseLeave,\n onClick: onClick,\n setCurrent: setCurrentSerie,\n tooltip: tooltip\n });\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate;\n\n var LineComponent = animate ? AnimatedLine$1 : StaticLine$1;\n return React.createElement(LineComponent, {\n serie: serie,\n lineGenerator: lineGenerator,\n yStep: yStep,\n isInteractive: isInteractive,\n onMouseEnter: handlers.onMouseEnter,\n onMouseMove: handlers.onMouseMove,\n onMouseLeave: handlers.onMouseLeave,\n onClick: handlers.onClick\n });\n};\n\nvar Line$1 = memo(Line);\n\nfunction _objectSpread$3(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$3(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$3(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar LinesLabels = function LinesLabels(_ref) {\n var series = _ref.series,\n getLabel = _ref.getLabel,\n position = _ref.position,\n padding = _ref.padding,\n color = _ref.color;\n var theme = useTheme();\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n\n var labels = useSeriesLabels({\n series: series,\n getLabel: getLabel,\n position: position,\n padding: padding,\n color: color\n });\n\n if (!animate) {\n return labels.map(function (label) {\n return React.createElement(\"text\", {\n key: label.id,\n x: label.x,\n y: label.y,\n textAnchor: label.textAnchor,\n dominantBaseline: \"central\",\n opacity: label.opacity,\n style: _objectSpread$3({}, theme.labels.text, {\n fill: label.color\n })\n }, label.label);\n });\n }\n\n return React.createElement(TransitionMotion, {\n styles: labels.map(function (label) {\n return {\n key: label.id,\n data: label,\n style: {\n x: spring(label.x, springConfig),\n y: spring(label.y, springConfig),\n opacity: spring(label.opacity, springConfig)\n }\n };\n })\n }, function (interpolatedStyles) {\n return React.createElement(React.Fragment, null, interpolatedStyles.map(function (_ref2) {\n var key = _ref2.key,\n style = _ref2.style,\n label = _ref2.data;\n return React.createElement(\"text\", {\n key: key,\n x: style.x,\n y: style.y,\n textAnchor: label.textAnchor,\n dominantBaseline: \"central\",\n opacity: style.opacity,\n style: _objectSpread$3({}, theme.labels.text, {\n fill: label.color\n })\n }, label.label);\n }));\n });\n};\n\nvar LinesLabels$1 = memo(LinesLabels);\n\nvar Points = function Points(_ref) {\n var pointComponent = _ref.pointComponent,\n points = _ref.points;\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n\n if (!animate) {\n return points.map(function (point) {\n return React.createElement(pointComponent, {\n key: point.id,\n data: point.data,\n x: point.x,\n y: point.y,\n isActive: point.isActive,\n isInactive: point.isInactive,\n size: point.style.size,\n color: point.color,\n borderColor: point.borderColor,\n borderWidth: point.style.borderWidth\n });\n });\n }\n\n return React.createElement(TransitionMotion, {\n styles: points.map(function (point) {\n return {\n key: point.id,\n data: point,\n style: {\n x: spring(point.x, springConfig),\n y: spring(point.y, springConfig),\n size: spring(point.style.size, springConfig),\n borderWidth: spring(point.style.borderWidth, springConfig)\n }\n };\n })\n }, function (interpolated) {\n return React.createElement(React.Fragment, null, interpolated.map(function (_ref2) {\n var key = _ref2.key,\n style = _ref2.style,\n point = _ref2.data;\n return React.createElement(pointComponent, {\n key: key,\n data: point.data,\n x: style.x,\n y: style.y,\n isActive: point.isActive,\n isInactive: point.isInactive,\n size: Math.max(style.size, 0),\n color: point.color,\n borderColor: point.borderColor,\n borderWidth: Math.max(style.borderWidth, 0)\n });\n }));\n });\n};\n\nvar Points$1 = memo(Points);\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar Bump = function Bump(props) {\n var data = props.data,\n width = props.width,\n height = props.height,\n partialMargin = props.margin,\n layers = props.layers,\n interpolation = props.interpolation,\n xPadding = props.xPadding,\n xOuterPadding = props.xOuterPadding,\n yOuterPadding = props.yOuterPadding,\n colors = props.colors,\n lineWidth = props.lineWidth,\n activeLineWidth = props.activeLineWidth,\n inactiveLineWidth = props.inactiveLineWidth,\n opacity = props.opacity,\n activeOpacity = props.activeOpacity,\n inactiveOpacity = props.inactiveOpacity,\n startLabel = props.startLabel,\n startLabelPadding = props.startLabelPadding,\n startLabelTextColor = props.startLabelTextColor,\n endLabel = props.endLabel,\n endLabelPadding = props.endLabelPadding,\n endLabelTextColor = props.endLabelTextColor,\n pointComponent = props.pointComponent,\n pointSize = props.pointSize,\n activePointSize = props.activePointSize,\n inactivePointSize = props.inactivePointSize,\n pointColor = props.pointColor,\n pointBorderWidth = props.pointBorderWidth,\n activePointBorderWidth = props.activePointBorderWidth,\n inactivePointBorderWidth = props.inactivePointBorderWidth,\n pointBorderColor = props.pointBorderColor,\n axisTop = props.axisTop,\n axisRight = props.axisRight,\n axisBottom = props.axisBottom,\n axisLeft = props.axisLeft,\n enableGridX = props.enableGridX,\n enableGridY = props.enableGridY,\n isInteractive = props.isInteractive,\n onMouseEnter = props.onMouseEnter,\n onMouseMove = props.onMouseMove,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n tooltip = props.tooltip;\n\n var _useDimensions = useDimensions(width, height, partialMargin),\n margin = _useDimensions.margin,\n innerWidth = _useDimensions.innerWidth,\n innerHeight = _useDimensions.innerHeight,\n outerWidth = _useDimensions.outerWidth,\n outerHeight = _useDimensions.outerHeight;\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n currentSerie = _useState2[0],\n setCurrentSerie = _useState2[1];\n\n var _useBump = useBump({\n width: innerWidth,\n height: innerHeight,\n data: data,\n interpolation: interpolation,\n xPadding: xPadding,\n xOuterPadding: xOuterPadding,\n yOuterPadding: yOuterPadding,\n lineWidth: lineWidth,\n activeLineWidth: activeLineWidth,\n inactiveLineWidth: inactiveLineWidth,\n colors: colors,\n opacity: opacity,\n activeOpacity: activeOpacity,\n inactiveOpacity: inactiveOpacity,\n pointSize: pointSize,\n activePointSize: activePointSize,\n inactivePointSize: inactivePointSize,\n pointColor: pointColor,\n pointBorderWidth: pointBorderWidth,\n activePointBorderWidth: activePointBorderWidth,\n inactivePointBorderWidth: inactivePointBorderWidth,\n pointBorderColor: pointBorderColor,\n startLabel: startLabel,\n endLabel: endLabel,\n isInteractive: isInteractive,\n currentSerie: currentSerie\n }),\n series = _useBump.series,\n points = _useBump.points,\n xScale = _useBump.xScale,\n yScale = _useBump.yScale,\n lineGenerator = _useBump.lineGenerator;\n\n var layerById = {\n grid: React.createElement(Grid, {\n key: \"grid\",\n width: innerWidth,\n height: innerHeight,\n xScale: enableGridX ? xScale : null,\n yScale: enableGridY ? yScale : null\n }),\n axes: React.createElement(Axes, {\n key: \"axes\",\n xScale: xScale,\n yScale: yScale,\n width: innerWidth,\n height: innerHeight,\n top: axisTop,\n right: axisRight,\n bottom: axisBottom,\n left: axisLeft\n }),\n labels: [],\n lines: React.createElement(Fragment, {\n key: \"lines\"\n }, series.map(function (serie) {\n return React.createElement(Line$1, {\n key: serie.id,\n serie: serie,\n currentSerie: currentSerie,\n setCurrentSerie: setCurrentSerie,\n lineGenerator: lineGenerator,\n yStep: yScale.step(),\n margin: margin,\n isInteractive: isInteractive,\n onMouseEnter: onMouseEnter,\n onMouseMove: onMouseMove,\n onMouseLeave: onMouseLeave,\n onClick: onClick,\n tooltip: tooltip\n });\n })),\n points: React.createElement(Points$1, {\n key: \"points\",\n pointComponent: pointComponent,\n points: points\n })\n };\n\n if (startLabel !== false) {\n layerById.labels.push(React.createElement(LinesLabels$1, {\n key: \"start\",\n series: series,\n getLabel: startLabel,\n position: \"start\",\n padding: startLabelPadding,\n color: startLabelTextColor\n }));\n }\n\n if (endLabel !== false) {\n layerById.labels.push(React.createElement(LinesLabels$1, {\n key: \"end\",\n series: series,\n getLabel: endLabel,\n position: \"end\",\n padding: endLabelPadding,\n color: endLabelTextColor\n }));\n }\n\n return React.createElement(SvgWrapper, {\n width: outerWidth,\n height: outerHeight,\n margin: margin\n }, layers.map(function (layer, i) {\n if (typeof layer === 'function') {\n return React.createElement(Fragment, {\n key: i\n }, layer({\n innerWidth: innerWidth,\n innerHeight: innerHeight,\n xScale: xScale,\n yScale: yScale\n }));\n }\n\n return layerById[layer];\n }));\n};\n\nBump.defaultProps = BumpDefaultProps;\nvar Bump$1 = memo(withContainer(Bump));\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar ResponsiveBump = function ResponsiveBump(props) {\n return React.createElement(ResponsiveWrapper, null, function (_ref) {\n var width = _ref.width,\n height = _ref.height;\n return React.createElement(Bump$1, _extends({\n width: width,\n height: height\n }, props));\n });\n};\n\nvar AreaTooltip = function AreaTooltip(_ref) {\n var serie = _ref.serie;\n return React.createElement(BasicTooltip, {\n id: serie.id,\n enableChip: true,\n color: serie.color\n });\n};\n\nvar AreaTooltip$1 = memo(AreaTooltip);\n\nfunction _objectSpread$4(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$4(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$4(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar commonPropTypes$1 = {\n data: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n y: PropTypes.number.isRequired\n })).isRequired\n })).isRequired,\n align: PropTypes.oneOf(['start', 'middle', 'end']).isRequired,\n layers: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['grid', 'axes', 'labels', 'areas']), PropTypes.func])).isRequired,\n interpolation: PropTypes.oneOf(['linear', 'smooth']).isRequired,\n spacing: PropTypes.number.isRequired,\n xPadding: PropTypes.number.isRequired,\n colors: ordinalColorsPropType.isRequired,\n blendMode: blendModePropType.isRequired,\n fillOpacity: PropTypes.number.isRequired,\n activeFillOpacity: PropTypes.number.isRequired,\n inactiveFillOpacity: PropTypes.number.isRequired,\n defs: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string.isRequired\n })).isRequired,\n fill: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string,\n match: PropTypes.oneOfType([PropTypes.oneOf(['*']), PropTypes.object, PropTypes.func]).isRequired\n })).isRequired,\n borderWidth: PropTypes.number.isRequired,\n activeBorderWidth: PropTypes.number.isRequired,\n inactiveBorderWidth: PropTypes.number.isRequired,\n borderColor: inheritedColorPropType.isRequired,\n borderOpacity: PropTypes.number.isRequired,\n activeBorderOpacity: PropTypes.number.isRequired,\n inactiveBorderOpacity: PropTypes.number.isRequired,\n startLabel: PropTypes.oneOfType([PropTypes.oneOf([false]), PropTypes.string, PropTypes.func]).isRequired,\n startLabelPadding: PropTypes.number.isRequired,\n startLabelTextColor: inheritedColorPropType.isRequired,\n endLabel: PropTypes.oneOfType([PropTypes.oneOf([false]), PropTypes.string, PropTypes.func]).isRequired,\n endLabelPadding: PropTypes.number.isRequired,\n endLabelTextColor: inheritedColorPropType.isRequired,\n enableGridX: PropTypes.bool.isRequired,\n axisTop: axisPropType,\n axisBottom: axisPropType,\n isInteractive: PropTypes.bool.isRequired,\n onMouseEnter: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onClick: PropTypes.func,\n tooltip: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired\n};\n\nvar AreaBumpPropTypes = _objectSpread$4({}, commonPropTypes$1, motionPropTypes);\n\nvar commonDefaultProps$1 = {\n align: 'middle',\n layers: ['grid', 'axes', 'labels', 'areas'],\n interpolation: 'smooth',\n spacing: 0,\n xPadding: 0.6,\n colors: {\n scheme: 'nivo'\n },\n blendMode: 'normal',\n fillOpacity: 0.8,\n activeFillOpacity: 1,\n inactiveFillOpacity: 0.15,\n defs: [],\n fill: [],\n borderWidth: 1,\n activeBorderWidth: 1,\n inactiveBorderWidth: 0,\n borderColor: {\n from: 'color',\n modifiers: [['darker', 0.4]]\n },\n borderOpacity: 1,\n activeBorderOpacity: 1,\n inactiveBorderOpacity: 0,\n startLabel: false,\n startLabelPadding: 12,\n startLabelTextColor: {\n from: 'color',\n modifiers: [['darker', 1]]\n },\n endLabel: 'id',\n endLabelPadding: 12,\n endLabelTextColor: {\n from: 'color',\n modifiers: [['darker', 1]]\n },\n enableGridX: true,\n axisTop: {},\n axisBottom: {},\n isInteractive: true,\n tooltip: AreaTooltip$1\n};\n\nvar AreaBumpDefaultProps = _objectSpread$4({}, commonDefaultProps$1, {\n animate: true,\n motionStiffness: 90,\n motionDamping: 15\n});\n\nfunction _objectSpread$5(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$5(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$5(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar computeSeries$1 = function computeSeries(_ref) {\n var data = _ref.data,\n width = _ref.width,\n height = _ref.height,\n align = _ref.align,\n spacing = _ref.spacing,\n xPadding = _ref.xPadding;\n var slices = new Map();\n var maxSum = null;\n var maxValues = null;\n data.forEach(function (serie) {\n serie.data.forEach(function (datum) {\n if (!slices.has(datum.x)) {\n slices.set(datum.x, {\n id: datum.x,\n total: 0,\n values: new Map()\n });\n }\n\n var slice = slices.get(datum.x);\n var total = slice.total + datum.y;\n slice.total = total;\n slice.values.set(serie.id, {\n serieId: serie.id,\n value: datum.y\n });\n\n if (total === null || total > maxSum) {\n maxSum = total;\n maxValues = slice.values.size;\n }\n });\n });\n var xScale = scalePoint().domain(Array.from(slices.keys())).range([0, width]);\n var heightScale = scaleLinear().domain([0, maxSum]).range([0, height - maxValues * spacing]);\n slices.forEach(function (slice, x) {\n slice.x = xScale(x);\n var sliceHeight = heightScale(slice.total) + slice.values.size * spacing;\n var offset = 0;\n\n if (align === 'middle') {\n offset = (height - sliceHeight) / 2;\n } else if (align === 'end') {\n offset = height - sliceHeight;\n }\n\n sortBy(Array.from(slice.values.values()), 'value').reverse().forEach(function (value, position, all) {\n var previousValues = all.filter(function (i, pos) {\n return pos < position;\n });\n var beforeValue = previousValues.reduce(function (t, v) {\n return t + v.value;\n }, 0);\n var sliceValue = slice.values.get(value.serieId);\n sliceValue.position = position;\n sliceValue.height = heightScale(value.value);\n sliceValue.beforeHeight = heightScale(beforeValue) + offset + spacing * (previousValues.length + 0.5);\n });\n });\n var areaPointPadding = xScale.step() * Math.min(xPadding * 0.5, 0.5);\n var series = data.map(function (serie) {\n var serieCopy = _objectSpread$5({}, serie);\n\n serieCopy.points = [];\n serieCopy.areaPoints = [];\n serie.data.forEach(function (datum, i) {\n var slice = slices.get(datum.x);\n var position = slice.values.get(serie.id);\n var x = slice.x;\n var beforeHeight = position.beforeHeight,\n height = position.height;\n var y = beforeHeight + height / 2;\n var y0 = beforeHeight;\n var y1 = beforeHeight + height;\n serieCopy.points.push({\n x: x,\n y: y,\n height: height,\n data: _objectSpread$5({}, datum)\n });\n\n if (i > 0) {\n serieCopy.areaPoints.push({\n x: x - areaPointPadding,\n y0: y0,\n y1: y1\n });\n }\n\n serieCopy.areaPoints.push({\n x: x,\n y0: y0,\n y1: y1\n });\n\n if (i < serie.data.length - 1) {\n serieCopy.areaPoints.push({\n x: x + areaPointPadding,\n y0: y0,\n y1: y1\n });\n }\n });\n return serieCopy;\n });\n return {\n xScale: xScale,\n heightScale: heightScale,\n series: series\n };\n};\n\nvar useAreaBumpSeries = function useAreaBumpSeries(_ref) {\n var data = _ref.data,\n width = _ref.width,\n height = _ref.height,\n align = _ref.align,\n spacing = _ref.spacing,\n xPadding = _ref.xPadding;\n return useMemo(function () {\n return computeSeries$1({\n data: data,\n width: width,\n height: height,\n align: align,\n spacing: spacing,\n xPadding: xPadding\n });\n }, [data, width, height, align, spacing, xPadding]);\n};\n\nvar useAreaGenerator = function useAreaGenerator(interpolation) {\n return useMemo(function () {\n return area().x(function (d) {\n return d.x;\n }).y0(function (d) {\n return d.y0;\n }).y1(function (d) {\n return d.y1;\n }).curve(interpolation === 'smooth' ? curveBasis : curveLinear);\n }, [interpolation]);\n};\n\nvar useSerieDerivedProp$1 = function useSerieDerivedProp(instruction) {\n return useMemo(function () {\n if (typeof instruction === 'function') return instruction;\n return function () {\n return instruction;\n };\n }, [instruction]);\n};\n\nvar useSerieStyle$1 = function useSerieStyle(_ref2) {\n var fillOpacity = _ref2.fillOpacity,\n activeFillOpacity = _ref2.activeFillOpacity,\n inactiveFillOpacity = _ref2.inactiveFillOpacity,\n borderWidth = _ref2.borderWidth,\n activeBorderWidth = _ref2.activeBorderWidth,\n inactiveBorderWidth = _ref2.inactiveBorderWidth,\n borderColor = _ref2.borderColor,\n borderOpacity = _ref2.borderOpacity,\n activeBorderOpacity = _ref2.activeBorderOpacity,\n inactiveBorderOpacity = _ref2.inactiveBorderOpacity,\n isInteractive = _ref2.isInteractive,\n current = _ref2.current;\n var getFillOpacity = useSerieDerivedProp$1(fillOpacity);\n var getActiveFillOpacity = useSerieDerivedProp$1(activeFillOpacity);\n var getInactiveFillOpacity = useSerieDerivedProp$1(inactiveFillOpacity);\n var getBorderWidth = useSerieDerivedProp$1(borderWidth);\n var getActiveBorderWidth = useSerieDerivedProp$1(activeBorderWidth);\n var getInactiveBorderWidth = useSerieDerivedProp$1(inactiveBorderWidth);\n var theme = useTheme();\n var getBorderColor = useInheritedColor(borderColor, theme);\n var getBorderOpacity = useSerieDerivedProp$1(borderOpacity);\n var getActiveBorderOpacity = useSerieDerivedProp$1(activeBorderOpacity);\n var getInactiveBorderOpacity = useSerieDerivedProp$1(inactiveBorderOpacity);\n var getNormalStyle = useMemo(function () {\n return function (serie) {\n return {\n fillOpacity: getFillOpacity(serie),\n borderWidth: getBorderWidth(serie),\n borderColor: getBorderColor(serie),\n borderOpacity: getBorderOpacity(serie)\n };\n };\n }, [getFillOpacity, getBorderWidth, getBorderColor, getBorderOpacity]);\n var getActiveStyle = useMemo(function () {\n return function (serie) {\n return {\n fillOpacity: getActiveFillOpacity(serie),\n borderWidth: getActiveBorderWidth(serie),\n borderColor: getBorderColor(serie),\n borderOpacity: getActiveBorderOpacity(serie)\n };\n };\n }, [getActiveFillOpacity, getActiveBorderWidth, getBorderColor, getActiveBorderOpacity]);\n var getInactiveStyle = useMemo(function () {\n return function (serie) {\n return {\n fillOpacity: getInactiveFillOpacity(serie),\n borderWidth: getInactiveBorderWidth(serie),\n borderColor: getBorderColor(serie),\n borderOpacity: getInactiveBorderOpacity(serie)\n };\n };\n }, [getInactiveFillOpacity, getInactiveBorderWidth, getBorderColor, getInactiveBorderOpacity]);\n return useMemo(function () {\n if (!isInteractive) return getNormalStyle;\n return function (serie) {\n if (current === null) return getNormalStyle(serie);\n if (serie.id === current) return getActiveStyle(serie);\n return getInactiveStyle(serie);\n };\n }, [getNormalStyle, getActiveStyle, getInactiveStyle, isInteractive, current]);\n};\n\nvar useAreaBump = function useAreaBump(_ref3) {\n var data = _ref3.data,\n width = _ref3.width,\n height = _ref3.height,\n align = _ref3.align,\n spacing = _ref3.spacing,\n xPadding = _ref3.xPadding,\n interpolation = _ref3.interpolation,\n colors = _ref3.colors,\n fillOpacity = _ref3.fillOpacity,\n activeFillOpacity = _ref3.activeFillOpacity,\n inactiveFillOpacity = _ref3.inactiveFillOpacity,\n borderWidth = _ref3.borderWidth,\n activeBorderWidth = _ref3.activeBorderWidth,\n inactiveBorderWidth = _ref3.inactiveBorderWidth,\n borderColor = _ref3.borderColor,\n borderOpacity = _ref3.borderOpacity,\n activeBorderOpacity = _ref3.activeBorderOpacity,\n inactiveBorderOpacity = _ref3.inactiveBorderOpacity,\n isInteractive = _ref3.isInteractive,\n current = _ref3.current;\n\n var _useAreaBumpSeries = useAreaBumpSeries({\n data: data,\n width: width,\n height: height,\n align: align,\n spacing: spacing,\n xPadding: xPadding\n }),\n rawSeries = _useAreaBumpSeries.series,\n xScale = _useAreaBumpSeries.xScale,\n heightScale = _useAreaBumpSeries.heightScale;\n\n var areaGenerator = useAreaGenerator(interpolation);\n var getColor = useOrdinalColorScale(colors, 'id');\n var getSerieStyle = useSerieStyle$1({\n fillOpacity: fillOpacity,\n activeFillOpacity: activeFillOpacity,\n inactiveFillOpacity: inactiveFillOpacity,\n borderWidth: borderWidth,\n activeBorderWidth: activeBorderWidth,\n inactiveBorderWidth: inactiveBorderWidth,\n borderColor: borderColor,\n borderOpacity: borderOpacity,\n activeBorderOpacity: activeBorderOpacity,\n inactiveBorderOpacity: inactiveBorderOpacity,\n isInteractive: isInteractive,\n current: current\n });\n var series = useMemo(function () {\n return rawSeries.map(function (serie) {\n serie.color = getColor(serie);\n serie.style = getSerieStyle(serie);\n return serie;\n });\n }, [rawSeries, getColor, getSerieStyle]);\n return {\n series: series,\n xScale: xScale,\n heightScale: heightScale,\n areaGenerator: areaGenerator\n };\n};\n\nvar useSerieHandlers$1 = function useSerieHandlers(_ref4) {\n var serie = _ref4.serie,\n isInteractive = _ref4.isInteractive,\n onMouseEnter = _ref4.onMouseEnter,\n onMouseMove = _ref4.onMouseMove,\n onMouseLeave = _ref4.onMouseLeave,\n onClick = _ref4.onClick,\n setCurrent = _ref4.setCurrent,\n tooltip = _ref4.tooltip;\n\n var _useTooltip = useTooltip(),\n showTooltipFromEvent = _useTooltip.showTooltipFromEvent,\n hideTooltip = _useTooltip.hideTooltip;\n\n var handleMouseEnter = useCallback(function (event) {\n showTooltipFromEvent(React.createElement(tooltip, {\n serie: serie\n }), event);\n setCurrent(serie.id);\n onMouseEnter && onMouseEnter(serie, event);\n }, [serie, onMouseEnter, showTooltipFromEvent, setCurrent]);\n var handleMouseMove = useCallback(function (event) {\n showTooltipFromEvent(React.createElement(tooltip, {\n serie: serie\n }), event);\n onMouseMove && onMouseMove(serie, event);\n }, [serie, onMouseMove, showTooltipFromEvent]);\n var handleMouseLeave = useCallback(function (event) {\n hideTooltip();\n setCurrent(null);\n onMouseLeave && onMouseLeave(serie, event);\n }, [serie, onMouseLeave, hideTooltip, setCurrent]);\n var handleClick = useCallback(function (event) {\n onClick && onClick(serie, event);\n }, [serie, onClick]);\n var handlers = useMemo(function () {\n return {\n onMouseEnter: isInteractive ? handleMouseEnter : undefined,\n onMouseMove: isInteractive ? handleMouseMove : undefined,\n onMouseLeave: isInteractive ? handleMouseLeave : undefined,\n onClick: isInteractive ? handleClick : undefined\n };\n }, [isInteractive, handleMouseEnter, handleMouseMove, handleMouseLeave, handleClick]);\n return handlers;\n};\n\nvar useSeriesLabels$1 = function useSeriesLabels(_ref5) {\n var series = _ref5.series,\n position = _ref5.position,\n padding = _ref5.padding,\n color = _ref5.color;\n var theme = useTheme();\n var getColor = useInheritedColor(color, theme);\n return useMemo(function () {\n var textAnchor;\n var signedPadding;\n\n if (position === 'start') {\n textAnchor = 'end';\n signedPadding = padding * -1;\n } else {\n textAnchor = 'start';\n signedPadding = padding;\n }\n\n return series.map(function (serie) {\n var point = position === 'start' ? serie.points[0] : serie.points[serie.points.length - 1];\n return {\n id: serie.id,\n x: point.x + signedPadding,\n y: point.y,\n color: getColor(serie),\n opacity: serie.style.fillOpacity,\n serie: serie,\n textAnchor: textAnchor\n };\n });\n }, [series, position, padding, getColor]);\n};\n\nvar AnimatedArea = function AnimatedArea(_ref) {\n var serie = _ref.serie,\n areaGenerator = _ref.areaGenerator,\n blendMode = _ref.blendMode,\n onMouseEnter = _ref.onMouseEnter,\n onMouseMove = _ref.onMouseMove,\n onMouseLeave = _ref.onMouseLeave,\n onClick = _ref.onClick;\n\n var _useMotionConfig = useMotionConfig(),\n springConfig = _useMotionConfig.springConfig;\n\n return React.createElement(SmartMotion, {\n style: function style(spring) {\n return {\n d: spring(areaGenerator(serie.areaPoints), springConfig),\n fill: spring(serie.color, springConfig),\n fillOpacity: spring(serie.style.fillOpacity, springConfig),\n stroke: spring(serie.style.borderColor, springConfig),\n strokeOpacity: spring(serie.style.borderOpacity, springConfig)\n };\n }\n }, function (interpolated) {\n return React.createElement(\"path\", {\n d: interpolated.d,\n fill: interpolated.fill,\n fillOpacity: interpolated.fillOpacity,\n stroke: interpolated.stroke,\n strokeWidth: serie.style.borderWidth,\n strokeOpacity: interpolated.strokeOpacity,\n style: {\n mixBlendMode: blendMode\n },\n onMouseEnter: onMouseEnter,\n onMouseMove: onMouseMove,\n onMouseLeave: onMouseLeave,\n onClick: onClick\n });\n });\n};\n\nvar AnimatedArea$1 = memo(AnimatedArea);\n\nvar StaticArea = function StaticArea(_ref) {\n var serie = _ref.serie,\n areaGenerator = _ref.areaGenerator,\n blendMode = _ref.blendMode,\n onMouseEnter = _ref.onMouseEnter,\n onMouseMove = _ref.onMouseMove,\n onMouseLeave = _ref.onMouseLeave,\n onClick = _ref.onClick;\n return React.createElement(\"path\", {\n d: areaGenerator(serie.areaPoints),\n fill: serie.color,\n fillOpacity: serie.style.fillOpacity,\n stroke: serie.style.borderColor,\n strokeWidth: serie.style.borderWidth,\n strokeOpacity: serie.style.borderOpacity,\n style: {\n mixBlendMode: blendMode\n },\n onMouseEnter: onMouseEnter,\n onMouseMove: onMouseMove,\n onMouseLeave: onMouseLeave,\n onClick: onClick\n });\n};\n\nvar StaticArea$1 = memo(StaticArea);\n\nvar Area = function Area(_ref) {\n var serie = _ref.serie,\n areaGenerator = _ref.areaGenerator,\n blendMode = _ref.blendMode,\n isInteractive = _ref.isInteractive,\n onMouseEnter = _ref.onMouseEnter,\n onMouseMove = _ref.onMouseMove,\n onMouseLeave = _ref.onMouseLeave,\n onClick = _ref.onClick,\n setCurrentSerie = _ref.setCurrentSerie,\n tooltip = _ref.tooltip;\n var handlers = useSerieHandlers$1({\n serie: serie,\n isInteractive: isInteractive,\n onMouseEnter: onMouseEnter,\n onMouseMove: onMouseMove,\n onMouseLeave: onMouseLeave,\n onClick: onClick,\n setCurrent: setCurrentSerie,\n tooltip: tooltip\n });\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate;\n\n var AreaComponent = animate ? AnimatedArea$1 : StaticArea$1;\n return React.createElement(AreaComponent, {\n serie: serie,\n areaGenerator: areaGenerator,\n blendMode: blendMode,\n onMouseEnter: handlers.onMouseEnter,\n onMouseMove: handlers.onMouseMove,\n onMouseLeave: handlers.onMouseLeave,\n onClick: handlers.onClick\n });\n};\n\nvar Area$1 = memo(Area);\n\nfunction _objectSpread$6(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$6(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$6(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar AreasLabels = function AreasLabels(_ref) {\n var series = _ref.series,\n position = _ref.position,\n padding = _ref.padding,\n color = _ref.color;\n var theme = useTheme();\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n\n var labels = useSeriesLabels$1({\n series: series,\n position: position,\n padding: padding,\n color: color\n });\n\n if (!animate) {\n return labels.map(function (label) {\n return React.createElement(\"text\", {\n key: label.id,\n x: label.x,\n y: label.y,\n textAnchor: label.textAnchor,\n dominantBaseline: \"central\",\n opacity: label.opacity,\n style: _objectSpread$6({}, theme.labels.text, {\n fill: label.color\n })\n }, label.id);\n });\n }\n\n return React.createElement(TransitionMotion, {\n styles: labels.map(function (label) {\n return {\n key: label.id,\n data: label,\n style: {\n x: spring(label.x, springConfig),\n y: spring(label.y, springConfig),\n opacity: spring(label.opacity, springConfig)\n }\n };\n })\n }, function (interpolatedStyles) {\n return React.createElement(React.Fragment, null, interpolatedStyles.map(function (_ref2) {\n var key = _ref2.key,\n style = _ref2.style,\n label = _ref2.data;\n return React.createElement(\"text\", {\n key: key,\n x: style.x,\n y: style.y,\n textAnchor: label.textAnchor,\n dominantBaseline: \"central\",\n opacity: style.opacity,\n style: _objectSpread$6({}, theme.labels.text, {\n fill: label.color\n })\n }, label.id);\n }));\n });\n};\n\nvar AreasLabels$1 = memo(AreasLabels);\n\nfunction _objectSpread$7(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$7(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$7(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray$1(arr, i) {\n return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _nonIterableRest$1();\n}\n\nfunction _nonIterableRest$1() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit$1(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles$1(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar AreaBump = function AreaBump(props) {\n var data = props.data,\n align = props.align,\n width = props.width,\n height = props.height,\n partialMargin = props.margin,\n layers = props.layers,\n interpolation = props.interpolation,\n spacing = props.spacing,\n xPadding = props.xPadding,\n colors = props.colors,\n blendMode = props.blendMode,\n fillOpacity = props.fillOpacity,\n activeFillOpacity = props.activeFillOpacity,\n inactiveFillOpacity = props.inactiveFillOpacity,\n defs = props.defs,\n fill = props.fill,\n borderWidth = props.borderWidth,\n activeBorderWidth = props.activeBorderWidth,\n inactiveBorderWidth = props.inactiveBorderWidth,\n borderColor = props.borderColor,\n borderOpacity = props.borderOpacity,\n activeBorderOpacity = props.activeBorderOpacity,\n inactiveBorderOpacity = props.inactiveBorderOpacity,\n startLabel = props.startLabel,\n startLabelPadding = props.startLabelPadding,\n startLabelTextColor = props.startLabelTextColor,\n endLabel = props.endLabel,\n endLabelPadding = props.endLabelPadding,\n endLabelTextColor = props.endLabelTextColor,\n enableGridX = props.enableGridX,\n axisTop = props.axisTop,\n axisBottom = props.axisBottom,\n isInteractive = props.isInteractive,\n onMouseEnter = props.onMouseEnter,\n onMouseMove = props.onMouseMove,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n tooltip = props.tooltip;\n\n var _useState = useState(null),\n _useState2 = _slicedToArray$1(_useState, 2),\n currentSerie = _useState2[0],\n setCurrentSerie = _useState2[1];\n\n var _useDimensions = useDimensions(width, height, partialMargin),\n margin = _useDimensions.margin,\n innerWidth = _useDimensions.innerWidth,\n innerHeight = _useDimensions.innerHeight,\n outerWidth = _useDimensions.outerWidth,\n outerHeight = _useDimensions.outerHeight;\n\n var _useAreaBump = useAreaBump({\n data: data,\n width: innerWidth,\n height: innerHeight,\n align: align,\n spacing: spacing,\n xPadding: xPadding,\n interpolation: interpolation,\n colors: colors,\n fillOpacity: fillOpacity,\n activeFillOpacity: activeFillOpacity,\n inactiveFillOpacity: inactiveFillOpacity,\n borderWidth: borderWidth,\n activeBorderWidth: activeBorderWidth,\n inactiveBorderWidth: inactiveBorderWidth,\n borderColor: borderColor,\n borderOpacity: borderOpacity,\n activeBorderOpacity: activeBorderOpacity,\n inactiveBorderOpacity: inactiveBorderOpacity,\n isInteractive: isInteractive,\n current: currentSerie\n }),\n series = _useAreaBump.series,\n xScale = _useAreaBump.xScale,\n areaGenerator = _useAreaBump.areaGenerator;\n\n var boundDefs = bindDefs(defs, series, fill, {\n targetKey: 'color'\n });\n var layerById = {\n grid: enableGridX && React.createElement(Grid, {\n key: \"grid\",\n width: innerWidth,\n height: innerHeight,\n xScale: xScale\n }),\n axes: React.createElement(Axes, {\n key: \"axes\",\n xScale: xScale,\n width: innerWidth,\n height: innerHeight,\n top: axisTop,\n bottom: axisBottom\n }),\n labels: [],\n areas: React.createElement(Fragment, {\n key: \"areas\"\n }, series.map(function (serie) {\n return React.createElement(Area$1, {\n key: serie.id,\n areaGenerator: areaGenerator,\n serie: serie,\n blendMode: blendMode,\n isInteractive: isInteractive,\n setCurrentSerie: setCurrentSerie,\n onMouseEnter: onMouseEnter,\n onMouseMove: onMouseMove,\n onMouseLeave: onMouseLeave,\n onClick: onClick,\n tooltip: tooltip\n });\n }))\n };\n\n if (startLabel !== false) {\n layerById.labels.push(React.createElement(AreasLabels$1, {\n key: \"start\",\n series: series,\n position: \"start\",\n padding: startLabelPadding,\n color: startLabelTextColor\n }));\n }\n\n if (endLabel !== false) {\n layerById.labels.push(React.createElement(AreasLabels$1, {\n key: \"end\",\n series: series,\n position: \"end\",\n padding: endLabelPadding,\n color: endLabelTextColor\n }));\n }\n\n return React.createElement(SvgWrapper, {\n defs: boundDefs,\n width: outerWidth,\n height: outerHeight,\n margin: margin\n }, layers.map(function (layer, i) {\n if (typeof layer === 'function') {\n return React.createElement(Fragment, {\n key: i\n }, layer(_objectSpread$7({}, props, {\n innerWidth: innerWidth,\n innerHeight: innerHeight,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n series: series,\n xScale: xScale,\n areaGenerator: areaGenerator\n })));\n }\n\n return layerById[layer];\n }));\n};\n\nAreaBump.defaultProps = AreaBumpDefaultProps;\nvar AreaBump$1 = memo(withContainer(AreaBump));\n\nfunction _extends$1() {\n _extends$1 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$1.apply(this, arguments);\n}\n\nvar ResponsiveAreaBump = function ResponsiveAreaBump(props) {\n return React.createElement(ResponsiveWrapper, null, function (_ref) {\n var width = _ref.width,\n height = _ref.height;\n return React.createElement(AreaBump$1, _extends$1({\n width: width,\n height: height\n }, props));\n });\n};\n\nexport { AreaBump$1 as AreaBump, AreaBumpDefaultProps, AreaBumpPropTypes, Bump$1 as Bump, BumpDefaultProps, BumpPropTypes, ResponsiveAreaBump, ResponsiveBump };","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { ResponsiveBump } from '@nivo/bump'\nimport { useBreakpoint } from 'gatsby-plugin-breakpoints'\n\nexport default function BumpChart(props) {\n const breakpoints = useBreakpoint();\n const chartData = []\n\n function trunctateString(string) {\n const length = breakpoints.sm ? 11 : 100\n return (string.length > length) ? string.substr(0, length-1) + '...' : string\n }\n\n let marginRight = 140\n let marginLeft = 140\n\n if (breakpoints.sm) {\n marginLeft = 10\n marginRight = 100\n }\n\n props.xmlChildren.map(child => {\n // eslint-disable-next-line no-prototype-builtins\n if(child.hasOwnProperty(\"children\")){\n return (\n chartData.push({\n \"id\": trunctateString(child.attributes.response),\n\n \"data\": child.children.map(yearData => {\n const ranking = Number(yearData.attributes.ranking) > 0 ? Number(yearData.attributes.ranking) : null\n return (\n {\n \"x\": Number(yearData.content),\n \"y\": ranking\n }\n )\n })\n })\n )\n } else {\n return (\n console.log(\"There was an error with this bump chart. Probably missing multiyear data.\", props.xmlChildren)\n )\n }\n })\n\n return (\n \n )\n}\n\nBumpChart.propTypes = {\n xmlChildren: PropTypes.array.isRequired,\n question: PropTypes.string.isRequired,\n custom_scheme: PropTypes.array.isRequired,\n}\n\nBumpChart.defaultProps = {\n xmlChildren: [],\n question: null,\n custom_scheme: { scheme: 'nivo' },\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,\n y10 = y1 - y0,\n x32 = x3 - x2,\n y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n} // Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\n\n\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00; // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function () {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n if (!context) context = buffer = path(); // Ensure that the outer radius is always larger than the inner radius.\n\n if (r1 < r0) r = r1, r1 = r0, r0 = r; // Is it a point?\n\n if (!(r1 > epsilon)) context.moveTo(0, 0); // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n } // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = ap > epsilon && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1; // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= cw ? 1 : -1, a00 += p0, a10 -= p0;else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= cw ? 1 : -1, a01 += p1, a11 -= p1;else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10); // Apply rounded corners?\n\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc; // Restrict the corner radius according to the sector angle.\n\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n } // Is the sector collapsed to a line?\n\n\n if (!(da1 > epsilon)) context.moveTo(x01, y01); // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01); // Have the corners merged?\n\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n } // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw); // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10); // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01); // Have the corners merged?\n\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n } // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n context.closePath();\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function () {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function (_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function (_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function (_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function (_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function (_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function (_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function (_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function (_) {\n return arguments.length ? (context = _ == null ? null : _, arc) : context;\n };\n\n return arc;\n}","export default function (a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}","export default function (d) {\n return d;\n}","import \"core-js/modules/es.array.sort.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport { tau } from \"./math.js\";\nexport default function () {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = data.length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n } // Optionally sort the arcs by previously-computed values or by data.\n\n\n if (sortValues != null) index.sort(function (i, j) {\n return sortValues(arcs[i], arcs[j]);\n });else if (sort != null) index.sort(function (i, j) {\n return sort(data[i], data[j]);\n }); // Compute the arcs! They are stored in the original data's order.\n\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function (_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function (_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function (_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function (_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function (_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function (_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}","import React, { Component, Fragment, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { arc, pie, line } from 'd3-shape';\nimport setDisplayName from 'recompose/setDisplayName';\nimport compose from 'recompose/compose';\nimport pure from 'recompose/pure';\nimport defaultProps from 'recompose/defaultProps';\nimport withPropsOnChange from 'recompose/withPropsOnChange';\nimport { computeArcBoundingBox, degreesToRadians, radiansToDegrees, noop, absoluteAngleRadians, midAngle, positionFromAngle, absoluteAngleDegrees, axisThemePropType, labelsThemePropType, textPropsByEngine, themePropType, withTheme, withDimensions, getLabelGenerator, bindDefs, Container, SvgWrapper, ResponsiveWrapper, getRelativeCursor, getHoveredArc } from '@nivo/core';\nimport { getOrdinalColorScale, inheritedColorPropType, ordinalColorsPropType, getInheritedColorGenerator } from '@nivo/colors';\nimport { LegendPropShape, BoxLegendSvg, renderLegendToCanvas } from '@nivo/legends';\nimport { BasicTooltip } from '@nivo/tooltip';\nimport get from 'lodash/get';\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\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}\n\nfunction _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}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _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}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar PieLayout = function (_Component) {\n _inherits(PieLayout, _Component);\n\n function PieLayout() {\n _classCallCheck(this, PieLayout);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(PieLayout).apply(this, arguments));\n }\n\n _createClass(PieLayout, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n arcs = _this$props.arcs,\n arcGenerator = _this$props.arcGenerator,\n startAngle = _this$props.startAngle,\n endAngle = _this$props.endAngle,\n width = _this$props.width,\n height = _this$props.height,\n centerX = _this$props.centerX,\n centerY = _this$props.centerY,\n radius = _this$props.radius,\n innerRadius = _this$props.innerRadius,\n debug = _this$props.debug,\n render = _this$props.children;\n return render({\n arcs: arcs,\n arcGenerator: arcGenerator,\n startAngle: startAngle,\n endAngle: endAngle,\n width: width,\n height: height,\n centerX: centerX,\n centerY: centerY,\n radius: radius,\n innerRadius: innerRadius,\n debug: debug\n });\n }\n }]);\n\n return PieLayout;\n}(Component);\n\n_defineProperty(PieLayout, \"propTypes\", {\n data: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired\n })).isRequired,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n fit: PropTypes.bool.isRequired,\n sortByValue: PropTypes.bool.isRequired,\n startAngle: PropTypes.number.isRequired,\n endAngle: PropTypes.number.isRequired,\n padAngle: PropTypes.number.isRequired,\n arcs: PropTypes.array.isRequired,\n arcGenerator: PropTypes.func.isRequired,\n centerX: PropTypes.number.isRequired,\n centerY: PropTypes.number.isRequired,\n radius: PropTypes.number.isRequired,\n innerRadius: PropTypes.number.isRequired,\n cornerRadius: PropTypes.number.isRequired,\n debug: PropTypes.shape({\n points: PropTypes.array.isRequired,\n box: PropTypes.shape({\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired\n }).isRequired,\n ratio: PropTypes.number.isRequired\n }),\n children: PropTypes.func.isRequired\n});\n\nvar PieLayoutDefaultProps = {\n fit: true,\n sortByValue: false,\n innerRadius: 0,\n startAngle: 0,\n endAngle: 360,\n padAngle: 0,\n cornerRadius: 0\n};\n\nvar enhance = function enhance(Component) {\n return compose(defaultProps(PieLayoutDefaultProps), withPropsOnChange(['colors'], function (_ref) {\n var colors = _ref.colors;\n return {\n getColor: getOrdinalColorScale(colors, 'id')\n };\n }), withPropsOnChange(['width', 'height', 'innerRadius', 'startAngle', 'endAngle', 'fit', 'cornerRadius'], function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height,\n _innerRadius = _ref2.innerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle,\n fit = _ref2.fit,\n cornerRadius = _ref2.cornerRadius;\n var radius = Math.min(width, height) / 2;\n var innerRadius = radius * Math.min(_innerRadius, 1);\n var centerX = width / 2;\n var centerY = height / 2;\n var boundingBox;\n\n if (fit === true) {\n var _computeArcBoundingBo = computeArcBoundingBox(centerX, centerY, radius, startAngle - 90, endAngle - 90),\n points = _computeArcBoundingBo.points,\n box = _objectWithoutProperties(_computeArcBoundingBo, [\"points\"]);\n\n var ratio = Math.min(width / box.width, height / box.height);\n var adjustedBox = {\n width: box.width * ratio,\n height: box.height * ratio\n };\n adjustedBox.x = (width - adjustedBox.width) / 2;\n adjustedBox.y = (height - adjustedBox.height) / 2;\n centerX = (centerX - box.x) / box.width * box.width * ratio + adjustedBox.x;\n centerY = (centerY - box.y) / box.height * box.height * ratio + adjustedBox.y;\n boundingBox = {\n box: box,\n ratio: ratio,\n points: points\n };\n radius = radius * ratio;\n innerRadius = innerRadius * ratio;\n }\n\n var arcGenerator = arc().outerRadius(radius).innerRadius(innerRadius).cornerRadius(cornerRadius);\n return {\n centerX: centerX,\n centerY: centerY,\n radius: radius,\n innerRadius: innerRadius,\n arcGenerator: arcGenerator,\n debug: boundingBox\n };\n }), withPropsOnChange(['sortByValue', 'padAngle', 'startAngle', 'endAngle'], function (_ref3) {\n var sortByValue = _ref3.sortByValue,\n padAngle = _ref3.padAngle,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var pie$1 = pie().value(function (d) {\n return d.value;\n }).padAngle(degreesToRadians(padAngle)).startAngle(degreesToRadians(startAngle)).endAngle(degreesToRadians(endAngle));\n if (sortByValue !== true) pie$1.sortValues(null);\n return {\n pie: pie$1\n };\n }), withPropsOnChange(['pie', 'data'], function (_ref4) {\n var pie = _ref4.pie,\n data = _ref4.data;\n return {\n arcs: pie(data).map(function (arc) {\n var angle = Math.abs(arc.endAngle - arc.startAngle);\n return _objectSpread({}, arc, {\n angle: angle,\n angleDeg: radiansToDegrees(angle)\n });\n })\n };\n }), withPropsOnChange(['arcs', 'getColor'], function (_ref5) {\n var arcs = _ref5.arcs,\n getColor = _ref5.getColor;\n return {\n arcs: arcs.map(function (arc) {\n return _objectSpread({}, arc, {\n color: getColor(arc.data)\n });\n })\n };\n }), pure)(Component);\n};\n\nvar PieLayout$1 = setDisplayName('PieLayout')(enhance(PieLayout));\nvar arcPropType = PropTypes.shape({\n startAngle: PropTypes.number.isRequired,\n endAngle: PropTypes.number.isRequired,\n angle: PropTypes.number.isRequired,\n angleDeg: PropTypes.number.isRequired,\n color: PropTypes.string.isRequired,\n data: PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n value: PropTypes.number.isRequired\n }).isRequired\n});\nvar PiePropTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n value: PropTypes.number.isRequired\n })).isRequired,\n startAngle: PropTypes.number.isRequired,\n endAngle: PropTypes.number.isRequired,\n fit: PropTypes.bool.isRequired,\n padAngle: PropTypes.number.isRequired,\n sortByValue: PropTypes.bool.isRequired,\n innerRadius: PropTypes.number.isRequired,\n cornerRadius: PropTypes.number.isRequired,\n borderWidth: PropTypes.number.isRequired,\n borderColor: inheritedColorPropType.isRequired,\n enableRadialLabels: PropTypes.bool.isRequired,\n radialLabel: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n radialLabelsSkipAngle: PropTypes.number,\n radialLabelsTextXOffset: PropTypes.number,\n radialLabelsTextColor: inheritedColorPropType.isRequired,\n radialLabelsLinkOffset: PropTypes.number,\n radialLabelsLinkDiagonalLength: PropTypes.number,\n radialLabelsLinkHorizontalLength: PropTypes.number,\n radialLabelsLinkStrokeWidth: PropTypes.number,\n radialLabelsLinkColor: inheritedColorPropType.isRequired,\n enableSlicesLabels: PropTypes.bool.isRequired,\n sliceLabel: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n slicesLabelsSkipAngle: PropTypes.number,\n slicesLabelsTextColor: inheritedColorPropType.isRequired,\n colors: ordinalColorsPropType.isRequired,\n defs: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string.isRequired\n })).isRequired,\n fill: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string,\n match: PropTypes.oneOfType([PropTypes.oneOf(['*']), PropTypes.object, PropTypes.func]).isRequired\n })).isRequired,\n isInteractive: PropTypes.bool,\n onClick: PropTypes.func.isRequired,\n onMouseEnter: PropTypes.func.isRequired,\n onMouseLeave: PropTypes.func.isRequired,\n lockTooltip: PropTypes.bool.isRequired,\n tooltipFormat: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n tooltip: PropTypes.func,\n legends: PropTypes.arrayOf(PropTypes.shape(LegendPropShape)).isRequired\n};\nvar PieDefaultProps = {\n sortByValue: false,\n innerRadius: 0,\n padAngle: 0,\n cornerRadius: 0,\n startAngle: 0,\n endAngle: radiansToDegrees(Math.PI * 2),\n fit: true,\n borderWidth: 0,\n borderColor: {\n from: 'color',\n modifiers: [['darker', 1]]\n },\n enableRadialLabels: true,\n radialLabel: 'id',\n radialLabelsTextColor: {\n theme: 'labels.text.fill'\n },\n radialLabelsLinkColor: {\n theme: 'axis.ticks.line.stroke'\n },\n enableSlicesLabels: true,\n sliceLabel: 'value',\n slicesLabelsTextColor: {\n theme: 'labels.text.fill'\n },\n colors: {\n scheme: 'nivo'\n },\n defs: [],\n fill: [],\n isInteractive: true,\n onClick: noop,\n onMouseEnter: noop,\n onMouseLeave: noop,\n lockTooltip: true,\n legends: []\n};\n\nfunction _objectSpread$1(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$1(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$1(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar PieSlice = function PieSlice(_ref) {\n var data = _ref.data,\n path = _ref.path,\n color = _ref.color,\n fill = _ref.fill,\n borderWidth = _ref.borderWidth,\n borderColor = _ref.borderColor,\n showTooltip = _ref.showTooltip,\n hideTooltip = _ref.hideTooltip,\n onClick = _ref.onClick,\n onMouseEnter = _ref.onMouseEnter,\n onMouseLeave = _ref.onMouseLeave,\n tooltipFormat = _ref.tooltipFormat,\n tooltip = _ref.tooltip,\n theme = _ref.theme;\n\n var handleTooltip = function handleTooltip(e) {\n return showTooltip(React.createElement(BasicTooltip, {\n id: data.label || data.id,\n value: data.value,\n enableChip: true,\n color: color,\n theme: theme,\n format: tooltipFormat,\n renderContent: typeof tooltip === 'function' ? tooltip.bind(null, _objectSpread$1({\n color: color\n }, data)) : null\n }), e);\n };\n\n var handleMouseEnter = function handleMouseEnter(e) {\n onMouseEnter(data, e);\n handleTooltip(e);\n };\n\n var handleMouseLeave = function handleMouseLeave(e) {\n onMouseLeave(data, e);\n hideTooltip(e);\n };\n\n return React.createElement(\"path\", {\n key: data.id,\n d: path,\n fill: fill,\n strokeWidth: borderWidth,\n stroke: borderColor,\n onMouseEnter: handleMouseEnter,\n onMouseMove: handleTooltip,\n onMouseLeave: handleMouseLeave,\n onClick: onClick\n });\n};\n\nvar enhance$1 = compose(withPropsOnChange(['data', 'onClick'], function (_ref2) {\n var data = _ref2.data,\n _onClick = _ref2.onClick;\n return {\n onClick: function onClick(event) {\n return _onClick(data, event);\n }\n };\n}), pure);\nvar PieSlice$1 = enhance$1(PieSlice);\n\nvar computeRadialLabels = function computeRadialLabels(arcs, _ref) {\n var getLabel = _ref.getLabel,\n radius = _ref.radius,\n skipAngle = _ref.skipAngle,\n linkOffset = _ref.linkOffset,\n linkDiagonalLength = _ref.linkDiagonalLength,\n linkHorizontalLength = _ref.linkHorizontalLength,\n textXOffset = _ref.textXOffset;\n return arcs.filter(function (arc) {\n return skipAngle === 0 || arc.angleDeg > skipAngle;\n }).map(function (arc) {\n var angle = absoluteAngleRadians(midAngle(arc) - Math.PI / 2);\n var positionA = positionFromAngle(angle, radius + linkOffset);\n var positionB = positionFromAngle(angle, radius + linkOffset + linkDiagonalLength);\n var positionC;\n var labelPosition;\n var textAlign;\n\n if (absoluteAngleDegrees(radiansToDegrees(angle)) < 90 || absoluteAngleDegrees(radiansToDegrees(angle)) >= 270) {\n positionC = {\n x: positionB.x + linkHorizontalLength,\n y: positionB.y\n };\n labelPosition = {\n x: positionB.x + linkHorizontalLength + textXOffset,\n y: positionB.y\n };\n textAlign = 'left';\n } else {\n positionC = {\n x: positionB.x - linkHorizontalLength,\n y: positionB.y\n };\n labelPosition = {\n x: positionB.x - linkHorizontalLength - textXOffset,\n y: positionB.y\n };\n textAlign = 'right';\n }\n\n return {\n arc: arc,\n text: getLabel(arc.data),\n position: labelPosition,\n align: textAlign,\n line: [positionA, positionB, positionC]\n };\n });\n};\n\nfunction _typeof$1(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof$1 = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof$1 = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof$1(obj);\n}\n\nfunction _objectSpread$2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$2(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _classCallCheck$1(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties$1(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass$1(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$1(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$1(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn$1(self, call) {\n if (call && (_typeof$1(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized$1(self);\n}\n\nfunction _assertThisInitialized$1(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}\n\nfunction _getPrototypeOf$1(o) {\n _getPrototypeOf$1 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf$1(o);\n}\n\nfunction _inherits$1(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf$1(subClass, superClass);\n}\n\nfunction _setPrototypeOf$1(o, p) {\n _setPrototypeOf$1 = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf$1(o, p);\n}\n\nfunction _defineProperty$2(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar lineGenerator = line().x(function (d) {\n return d.x;\n}).y(function (d) {\n return d.y;\n});\n\nvar PieRadialLabels = function (_Component) {\n _inherits$1(PieRadialLabels, _Component);\n\n function PieRadialLabels() {\n _classCallCheck$1(this, PieRadialLabels);\n\n return _possibleConstructorReturn$1(this, _getPrototypeOf$1(PieRadialLabels).apply(this, arguments));\n }\n\n _createClass$1(PieRadialLabels, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n arcs = _this$props.arcs,\n label = _this$props.label,\n radius = _this$props.radius,\n skipAngle = _this$props.skipAngle,\n linkOffset = _this$props.linkOffset,\n linkDiagonalLength = _this$props.linkDiagonalLength,\n linkHorizontalLength = _this$props.linkHorizontalLength,\n linkStrokeWidth = _this$props.linkStrokeWidth,\n textXOffset = _this$props.textXOffset,\n textColor = _this$props.textColor,\n linkColor = _this$props.linkColor,\n theme = _this$props.theme;\n var labels = computeRadialLabels(arcs, {\n getLabel: label,\n radius: radius,\n skipAngle: skipAngle,\n linkOffset: linkOffset,\n linkDiagonalLength: linkDiagonalLength,\n linkHorizontalLength: linkHorizontalLength,\n textXOffset: textXOffset\n });\n return labels.map(function (label) {\n return React.createElement(Fragment, {\n key: label.arc.data.id\n }, React.createElement(\"path\", {\n d: lineGenerator(label.line),\n fill: \"none\",\n style: {\n fill: 'none',\n stroke: linkColor(label.arc, theme)\n },\n strokeWidth: linkStrokeWidth\n }), React.createElement(\"g\", {\n transform: \"translate(\".concat(label.position.x, \", \").concat(label.position.y, \")\")\n }, React.createElement(\"text\", {\n textAnchor: textPropsByEngine.svg.align[label.align],\n dominantBaseline: \"central\",\n style: _objectSpread$2({}, theme.labels.text, {\n fill: textColor(label.arc.data, theme)\n })\n }, label.text)));\n });\n }\n }]);\n\n return PieRadialLabels;\n}(Component);\n\n_defineProperty$2(PieRadialLabels, \"propTypes\", {\n arcs: PropTypes.arrayOf(arcPropType).isRequired,\n label: PropTypes.func.isRequired,\n skipAngle: PropTypes.number.isRequired,\n radius: PropTypes.number.isRequired,\n linkOffset: PropTypes.number.isRequired,\n linkDiagonalLength: PropTypes.number.isRequired,\n linkHorizontalLength: PropTypes.number.isRequired,\n linkStrokeWidth: PropTypes.number.isRequired,\n textXOffset: PropTypes.number.isRequired,\n textColor: PropTypes.func.isRequired,\n linkColor: PropTypes.func.isRequired,\n theme: PropTypes.shape({\n axis: axisThemePropType.isRequired,\n labels: labelsThemePropType.isRequired\n }).isRequired\n});\n\n_defineProperty$2(PieRadialLabels, \"defaultProps\", {\n skipAngle: 0,\n linkOffset: 0,\n linkDiagonalLength: 16,\n linkHorizontalLength: 24,\n linkStrokeWidth: 1,\n textXOffset: 6\n});\n\nfunction _typeof$2(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof$2 = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof$2 = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof$2(obj);\n}\n\nfunction _objectSpread$3(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$3(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _classCallCheck$2(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties$2(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass$2(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$2(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$2(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn$2(self, call) {\n if (call && (_typeof$2(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized$2(self);\n}\n\nfunction _assertThisInitialized$2(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}\n\nfunction _getPrototypeOf$2(o) {\n _getPrototypeOf$2 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf$2(o);\n}\n\nfunction _inherits$2(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf$2(subClass, superClass);\n}\n\nfunction _setPrototypeOf$2(o, p) {\n _setPrototypeOf$2 = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf$2(o, p);\n}\n\nfunction _defineProperty$3(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar sliceStyle = {\n pointerEvents: 'none'\n};\n\nvar PieSlicesLabels = function (_Component) {\n _inherits$2(PieSlicesLabels, _Component);\n\n function PieSlicesLabels() {\n _classCallCheck$2(this, PieSlicesLabels);\n\n return _possibleConstructorReturn$2(this, _getPrototypeOf$2(PieSlicesLabels).apply(this, arguments));\n }\n\n _createClass$2(PieSlicesLabels, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n arcs = _this$props.arcs,\n label = _this$props.label,\n radius = _this$props.radius,\n skipAngle = _this$props.skipAngle,\n innerRadius = _this$props.innerRadius,\n textColor = _this$props.textColor,\n theme = _this$props.theme;\n var centerRadius = innerRadius + (radius - innerRadius) / 2;\n return React.createElement(Fragment, null, arcs.filter(function (arc) {\n return skipAngle === 0 || arc.angleDeg > skipAngle;\n }).map(function (arc) {\n var angle = midAngle(arc) - Math.PI / 2;\n var position = positionFromAngle(angle, centerRadius);\n return React.createElement(\"g\", {\n key: arc.data.id,\n transform: \"translate(\".concat(position.x, \", \").concat(position.y, \")\"),\n style: sliceStyle\n }, React.createElement(\"text\", {\n textAnchor: \"middle\",\n dominantBaseline: \"central\",\n style: _objectSpread$3({}, theme.labels.text, {\n fill: textColor(arc.data, theme)\n })\n }, label(arc.data)));\n }));\n }\n }]);\n\n return PieSlicesLabels;\n}(Component);\n\n_defineProperty$3(PieSlicesLabels, \"propTypes\", {\n arcs: PropTypes.arrayOf(arcPropType).isRequired,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n skipAngle: PropTypes.number.isRequired,\n radius: PropTypes.number.isRequired,\n innerRadius: PropTypes.number.isRequired,\n textColor: PropTypes.func.isRequired,\n theme: PropTypes.shape({\n labels: labelsThemePropType.isRequired\n }).isRequired\n});\n\n_defineProperty$3(PieSlicesLabels, \"defaultProps\", {\n skipAngle: 0\n});\n\nfunction _typeof$3(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof$3 = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof$3 = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof$3(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck$3(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties$3(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass$3(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$3(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$3(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn$3(self, call) {\n if (call && (_typeof$3(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized$3(self);\n}\n\nfunction _assertThisInitialized$3(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}\n\nfunction _getPrototypeOf$3(o) {\n _getPrototypeOf$3 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf$3(o);\n}\n\nfunction _inherits$3(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf$3(subClass, superClass);\n}\n\nfunction _setPrototypeOf$3(o, p) {\n _setPrototypeOf$3 = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf$3(o, p);\n}\n\nfunction _defineProperty$4(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar PieLegends = function (_Component) {\n _inherits$3(PieLegends, _Component);\n\n function PieLegends() {\n _classCallCheck$3(this, PieLegends);\n\n return _possibleConstructorReturn$3(this, _getPrototypeOf$3(PieLegends).apply(this, arguments));\n }\n\n _createClass$3(PieLegends, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n width = _this$props.width,\n height = _this$props.height,\n legends = _this$props.legends,\n data = _this$props.data,\n theme = _this$props.theme;\n return legends.map(function (legend, i) {\n return React.createElement(BoxLegendSvg, _extends({\n key: i\n }, legend, {\n containerWidth: width,\n containerHeight: height,\n data: data,\n theme: theme\n }));\n });\n }\n }]);\n\n return PieLegends;\n}(Component);\n\n_defineProperty$4(PieLegends, \"propTypes\", {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n arcs: PropTypes.arrayOf(arcPropType).isRequired,\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\n legends: PropTypes.arrayOf(PropTypes.shape(LegendPropShape)).isRequired,\n theme: themePropType.isRequired\n});\n\nvar enhance$2 = function enhance(Component) {\n return compose(withPropsOnChange(['arcs'], function (_ref) {\n var arcs = _ref.arcs;\n return {\n data: arcs.map(function (_ref2) {\n var color = _ref2.color,\n _ref2$data = _ref2.data,\n id = _ref2$data.id,\n label = _ref2$data.label,\n fill = _ref2.fill;\n return {\n id: id,\n label: label || id,\n color: color,\n fill: fill\n };\n })\n };\n }), pure)(Component);\n};\n\nvar PieLegends$1 = setDisplayName('PieLegends')(enhance$2(PieLegends));\n\nfunction _typeof$4(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof$4 = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof$4 = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof$4(obj);\n}\n\nfunction _classCallCheck$4(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties$4(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass$4(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$4(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$4(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn$4(self, call) {\n if (call && (_typeof$4(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized$4(self);\n}\n\nfunction _assertThisInitialized$4(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}\n\nfunction _getPrototypeOf$4(o) {\n _getPrototypeOf$4 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf$4(o);\n}\n\nfunction _inherits$4(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf$4(subClass, superClass);\n}\n\nfunction _setPrototypeOf$4(o, p) {\n _setPrototypeOf$4 = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf$4(o, p);\n}\n\nfunction _defineProperty$5(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar Pie = function (_Component) {\n _inherits$4(Pie, _Component);\n\n function Pie() {\n _classCallCheck$4(this, Pie);\n\n return _possibleConstructorReturn$4(this, _getPrototypeOf$4(Pie).apply(this, arguments));\n }\n\n _createClass$4(Pie, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n data = _this$props.data,\n sortByValue = _this$props.sortByValue,\n startAngle = _this$props.startAngle,\n endAngle = _this$props.endAngle,\n padAngle = _this$props.padAngle,\n fit = _this$props.fit,\n innerRadius = _this$props.innerRadius,\n cornerRadius = _this$props.cornerRadius,\n margin = _this$props.margin,\n width = _this$props.width,\n height = _this$props.height,\n outerWidth = _this$props.outerWidth,\n outerHeight = _this$props.outerHeight,\n colors = _this$props.colors,\n colorBy = _this$props.colorBy,\n borderWidth = _this$props.borderWidth,\n _borderColor = _this$props.borderColor,\n enableRadialLabels = _this$props.enableRadialLabels,\n getRadialLabel = _this$props.getRadialLabel,\n radialLabelsSkipAngle = _this$props.radialLabelsSkipAngle,\n radialLabelsLinkOffset = _this$props.radialLabelsLinkOffset,\n radialLabelsLinkDiagonalLength = _this$props.radialLabelsLinkDiagonalLength,\n radialLabelsLinkHorizontalLength = _this$props.radialLabelsLinkHorizontalLength,\n radialLabelsLinkStrokeWidth = _this$props.radialLabelsLinkStrokeWidth,\n radialLabelsTextXOffset = _this$props.radialLabelsTextXOffset,\n radialLabelsTextColor = _this$props.radialLabelsTextColor,\n radialLabelsLinkColor = _this$props.radialLabelsLinkColor,\n enableSlicesLabels = _this$props.enableSlicesLabels,\n getSliceLabel = _this$props.getSliceLabel,\n slicesLabelsSkipAngle = _this$props.slicesLabelsSkipAngle,\n slicesLabelsTextColor = _this$props.slicesLabelsTextColor,\n theme = _this$props.theme,\n defs = _this$props.defs,\n fill = _this$props.fill,\n isInteractive = _this$props.isInteractive,\n onClick = _this$props.onClick,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseLeave = _this$props.onMouseLeave,\n tooltipFormat = _this$props.tooltipFormat,\n tooltip = _this$props.tooltip,\n legends = _this$props.legends;\n var borderColor = getInheritedColorGenerator(_borderColor, theme);\n return React.createElement(PieLayout$1, {\n width: width,\n height: height,\n data: data,\n sortByValue: sortByValue,\n startAngle: startAngle,\n endAngle: endAngle,\n fit: fit,\n padAngle: padAngle,\n innerRadius: innerRadius,\n cornerRadius: cornerRadius,\n colors: colors,\n colorBy: colorBy\n }, function (_ref) {\n var centerX = _ref.centerX,\n centerY = _ref.centerY,\n radius = _ref.radius,\n innerRadius = _ref.innerRadius,\n arcs = _ref.arcs,\n arcGenerator = _ref.arcGenerator;\n var boundDefs = bindDefs(defs, arcs, fill, {\n dataKey: 'data'\n });\n return React.createElement(Container, {\n isInteractive: isInteractive,\n theme: theme,\n animate: false\n }, function (_ref2) {\n var showTooltip = _ref2.showTooltip,\n hideTooltip = _ref2.hideTooltip;\n return React.createElement(SvgWrapper, {\n width: outerWidth,\n height: outerHeight,\n margin: margin,\n defs: boundDefs,\n theme: theme\n }, React.createElement(\"g\", {\n transform: \"translate(\".concat(centerX, \",\").concat(centerY, \")\")\n }, arcs.map(function (arc) {\n return React.createElement(PieSlice$1, {\n key: arc.data.id,\n data: arc.data,\n path: arcGenerator(arc),\n color: arc.color,\n fill: arc.fill ? arc.fill : arc.color,\n borderWidth: borderWidth,\n borderColor: borderColor(arc),\n showTooltip: showTooltip,\n hideTooltip: hideTooltip,\n tooltipFormat: tooltipFormat,\n tooltip: tooltip,\n onClick: onClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n theme: theme\n });\n }), enableRadialLabels && React.createElement(PieRadialLabels, {\n arcs: arcs,\n radius: radius,\n label: getRadialLabel,\n skipAngle: radialLabelsSkipAngle,\n linkOffset: radialLabelsLinkOffset,\n linkDiagonalLength: radialLabelsLinkDiagonalLength,\n linkHorizontalLength: radialLabelsLinkHorizontalLength,\n linkStrokeWidth: radialLabelsLinkStrokeWidth,\n textXOffset: radialLabelsTextXOffset,\n textColor: getInheritedColorGenerator(radialLabelsTextColor, theme),\n linkColor: getInheritedColorGenerator(radialLabelsLinkColor, theme),\n theme: theme\n }), enableSlicesLabels && React.createElement(PieSlicesLabels, {\n arcs: arcs,\n radius: radius,\n innerRadius: innerRadius,\n theme: theme,\n label: getSliceLabel,\n skipAngle: slicesLabelsSkipAngle,\n textColor: getInheritedColorGenerator(slicesLabelsTextColor, theme)\n })), React.createElement(PieLegends$1, {\n width: width,\n height: height,\n arcs: arcs,\n legends: legends,\n theme: theme\n }));\n });\n });\n }\n }]);\n\n return Pie;\n}(Component);\n\n_defineProperty$5(Pie, \"propTypes\", PiePropTypes);\n\nvar enhance$3 = function enhance(Component) {\n return compose(defaultProps(PieDefaultProps), withTheme(), withDimensions(), withPropsOnChange(['radialLabel'], function (_ref3) {\n var radialLabel = _ref3.radialLabel;\n return {\n getRadialLabel: getLabelGenerator(radialLabel)\n };\n }), withPropsOnChange(['sliceLabel'], function (_ref4) {\n var sliceLabel = _ref4.sliceLabel;\n return {\n getSliceLabel: getLabelGenerator(sliceLabel)\n };\n }), pure)(Component);\n};\n\nvar Pie$1 = setDisplayName('Pie')(enhance$3(Pie));\n\nfunction _extends$1() {\n _extends$1 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$1.apply(this, arguments);\n}\n\nvar ResponsivePie = function ResponsivePie(props) {\n return React.createElement(ResponsiveWrapper, null, function (_ref) {\n var width = _ref.width,\n height = _ref.height;\n return React.createElement(Pie$1, _extends$1({\n width: width,\n height: height\n }, props));\n });\n};\n\nvar enhance$4 = function enhance$4(Component) {\n return compose(defaultProps(PieDefaultProps), withTheme(), withDimensions(), pure)(Component);\n};\n\nfunction _objectSpread$4(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$6(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$6(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar drawSliceLabels = function drawSliceLabels(ctx, arcs, _ref) {\n var arcGenerator = _ref.arcGenerator,\n getLabel = _ref.getLabel,\n skipAngle = _ref.skipAngle,\n getTextColor = _ref.getTextColor,\n theme = _ref.theme;\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n ctx.font = \"\".concat(theme.labels.text.fontSize, \"px \").concat(theme.labels.text.fontFamily);\n arcs.filter(function (arc) {\n return skipAngle === 0 || arc.angleDeg > skipAngle;\n }).forEach(function (arc) {\n var _arcGenerator$centroi = arcGenerator.centroid(arc),\n _arcGenerator$centroi2 = _slicedToArray(_arcGenerator$centroi, 2),\n centroidX = _arcGenerator$centroi2[0],\n centroidY = _arcGenerator$centroi2[1];\n\n var sliceLabel = getLabel(arc.data);\n var textColor = getTextColor(arc, theme);\n ctx.save();\n ctx.translate(centroidX, centroidY);\n ctx.fillStyle = textColor;\n ctx.fillText(sliceLabel, 0, 0);\n ctx.restore();\n });\n};\n\nvar drawRadialLabels = function drawRadialLabels(ctx, arcs, _ref2) {\n var radius = _ref2.radius,\n getLabel = _ref2.getLabel,\n skipAngle = _ref2.skipAngle,\n linkOffset = _ref2.linkOffset,\n linkDiagonalLength = _ref2.linkDiagonalLength,\n linkHorizontalLength = _ref2.linkHorizontalLength,\n linkStrokeWidth = _ref2.linkStrokeWidth,\n textXOffset = _ref2.textXOffset,\n getTextColor = _ref2.getTextColor,\n getLinkColor = _ref2.getLinkColor,\n theme = _ref2.theme;\n var radialLabels = computeRadialLabels(arcs, {\n getLabel: getLabel,\n radius: radius,\n skipAngle: skipAngle,\n linkOffset: linkOffset,\n linkDiagonalLength: linkDiagonalLength,\n linkHorizontalLength: linkHorizontalLength,\n textXOffset: textXOffset\n });\n ctx.textBaseline = 'middle';\n ctx.font = \"\".concat(theme.labels.text.fontSize, \"px \").concat(theme.labels.text.fontFamily);\n radialLabels.forEach(function (label) {\n var dataWithColor = _objectSpread$4({}, label.arc.data, {\n color: label.arc.color\n });\n\n ctx.save();\n ctx.translate(label.position.x, label.position.y);\n ctx.fillStyle = getTextColor(dataWithColor, theme);\n ctx.textAlign = textPropsByEngine.canvas.align[label.align];\n ctx.fillText(label.text, 0, 0);\n ctx.restore();\n ctx.beginPath();\n ctx.strokeStyle = getLinkColor(dataWithColor, theme);\n ctx.lineWidth = linkStrokeWidth;\n label.line.forEach(function (point, index) {\n if (index === 0) ctx.moveTo(point.x, point.y);else ctx.lineTo(point.x, point.y);\n });\n if (linkStrokeWidth > 0) ctx.stroke();\n });\n};\n\nfunction _objectSpread$5(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$7(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$7(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar PieTooltip = function PieTooltip(_ref) {\n var data = _ref.data,\n color = _ref.color,\n tooltipFormat = _ref.tooltipFormat,\n tooltip = _ref.tooltip,\n theme = _ref.theme;\n return React.createElement(BasicTooltip, {\n id: data.label,\n value: data.value,\n enableChip: true,\n color: color,\n theme: theme,\n format: tooltipFormat,\n renderContent: typeof tooltip === 'function' ? tooltip.bind(null, _objectSpread$5({\n color: color\n }, data)) : null\n });\n};\n\nvar PieTooltip$1 = pure(PieTooltip);\n\nfunction _typeof$5(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof$5 = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof$5 = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof$5(obj);\n}\n\nfunction _objectSpread$6(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$8(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _slicedToArray$1(arr, i) {\n return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _nonIterableRest$1();\n}\n\nfunction _nonIterableRest$1() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit$1(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles$1(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _classCallCheck$5(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties$5(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass$5(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$5(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$5(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn$5(self, call) {\n if (call && (_typeof$5(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized$5(self);\n}\n\nfunction _getPrototypeOf$5(o) {\n _getPrototypeOf$5 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf$5(o);\n}\n\nfunction _assertThisInitialized$5(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}\n\nfunction _inherits$5(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf$5(subClass, superClass);\n}\n\nfunction _setPrototypeOf$5(o, p) {\n _setPrototypeOf$5 = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf$5(o, p);\n}\n\nfunction _defineProperty$8(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar PieCanvasRenderer = function (_Component) {\n _inherits$5(PieCanvasRenderer, _Component);\n\n function PieCanvasRenderer() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck$5(this, PieCanvasRenderer);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn$5(this, (_getPrototypeOf2 = _getPrototypeOf$5(PieCanvasRenderer)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty$8(_assertThisInitialized$5(_this), \"getArcFromMouse\", function (event) {\n var _getRelativeCursor = getRelativeCursor(_this.surface, event),\n _getRelativeCursor2 = _slicedToArray$1(_getRelativeCursor, 2),\n x = _getRelativeCursor2[0],\n y = _getRelativeCursor2[1];\n\n var _this$props = _this.props,\n centerX = _this$props.centerX,\n centerY = _this$props.centerY,\n margin = _this$props.margin,\n radius = _this$props.radius,\n innerRadius = _this$props.innerRadius,\n arcs = _this$props.arcs;\n return getHoveredArc(margin.left + centerX, margin.top + centerY, radius, innerRadius, arcs, x, y);\n });\n\n _defineProperty$8(_assertThisInitialized$5(_this), \"handleMouseHover\", function (showTooltip, hideTooltip) {\n return function (event) {\n if (_this.props.isInteractive !== true) return;\n\n var arc = _this.getArcFromMouse(event);\n\n if (arc) {\n showTooltip(React.createElement(PieTooltip$1, {\n data: arc.data,\n color: arc.color,\n theme: _this.props.theme\n }), event);\n } else {\n hideTooltip();\n }\n };\n });\n\n _defineProperty$8(_assertThisInitialized$5(_this), \"handleMouseLeave\", function (hideTooltip) {\n return function () {\n if (_this.props.isInteractive !== true) return;\n hideTooltip();\n };\n });\n\n _defineProperty$8(_assertThisInitialized$5(_this), \"handleClick\", function (event) {\n var arc = _this.getArcFromMouse(event);\n\n if (arc) _this.props.onClick(arc.data, event);\n });\n\n return _this;\n }\n\n _createClass$5(PieCanvasRenderer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.ctx = this.surface.getContext('2d');\n this.draw(this.props);\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(props) {\n if (this.props.outerWidth !== props.outerWidth || this.props.outerHeight !== props.outerHeight || this.props.isInteractive !== props.isInteractive || this.props.theme !== props.theme) {\n return true;\n }\n\n this.draw(props);\n return false;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.ctx = this.surface.getContext('2d');\n this.draw(this.props);\n }\n }, {\n key: \"draw\",\n value: function draw(props) {\n var _this2 = this;\n\n var arcs = props.arcs,\n arcGenerator = props.arcGenerator,\n width = props.width,\n height = props.height,\n centerX = props.centerX,\n centerY = props.centerY,\n radius = props.radius,\n outerWidth = props.outerWidth,\n outerHeight = props.outerHeight,\n pixelRatio = props.pixelRatio,\n margin = props.margin,\n borderWidth = props.borderWidth,\n borderColor = props.borderColor,\n enableSlicesLabels = props.enableSlicesLabels,\n enableRadialLabels = props.enableRadialLabels,\n legends = props.legends,\n theme = props.theme;\n this.surface.width = outerWidth * pixelRatio;\n this.surface.height = outerHeight * pixelRatio;\n this.ctx.scale(pixelRatio, pixelRatio);\n this.ctx.fillStyle = theme.background;\n this.ctx.fillRect(0, 0, outerWidth, outerHeight);\n this.ctx.save();\n this.ctx.translate(margin.left, margin.top);\n arcGenerator.context(this.ctx);\n this.ctx.save();\n this.ctx.translate(centerX, centerY);\n var getBorderColor = getInheritedColorGenerator(borderColor, theme);\n arcs.forEach(function (arc) {\n _this2.ctx.beginPath();\n\n _this2.ctx.fillStyle = arc.color;\n _this2.ctx.strokeStyle = getBorderColor(_objectSpread$6({}, arc.data, {\n color: arc.color\n }));\n _this2.ctx.lineWidth = borderWidth;\n arcGenerator(arc);\n\n _this2.ctx.fill();\n\n if (borderWidth > 0) _this2.ctx.stroke();\n });\n\n if (enableSlicesLabels === true) {\n var sliceLabel = props.sliceLabel,\n slicesLabelsSkipAngle = props.slicesLabelsSkipAngle,\n slicesLabelsTextColor = props.slicesLabelsTextColor;\n drawSliceLabels(this.ctx, arcs, {\n arcGenerator: arcGenerator,\n skipAngle: slicesLabelsSkipAngle,\n getLabel: getLabelGenerator(sliceLabel),\n getTextColor: getInheritedColorGenerator(slicesLabelsTextColor, theme),\n theme: theme\n });\n }\n\n if (enableRadialLabels === true) {\n var radialLabel = props.radialLabel,\n radialLabelsSkipAngle = props.radialLabelsSkipAngle,\n radialLabelsLinkOffset = props.radialLabelsLinkOffset,\n radialLabelsLinkStrokeWidth = props.radialLabelsLinkStrokeWidth,\n radialLabelsLinkDiagonalLength = props.radialLabelsLinkDiagonalLength,\n radialLabelsLinkHorizontalLength = props.radialLabelsLinkHorizontalLength,\n radialLabelsTextXOffset = props.radialLabelsTextXOffset,\n radialLabelsTextColor = props.radialLabelsTextColor,\n radialLabelsLinkColor = props.radialLabelsLinkColor;\n drawRadialLabels(this.ctx, arcs, {\n radius: radius,\n getLabel: getLabelGenerator(radialLabel),\n skipAngle: radialLabelsSkipAngle,\n linkOffset: radialLabelsLinkOffset,\n linkDiagonalLength: radialLabelsLinkDiagonalLength,\n linkHorizontalLength: radialLabelsLinkHorizontalLength,\n linkStrokeWidth: radialLabelsLinkStrokeWidth,\n textXOffset: radialLabelsTextXOffset,\n getTextColor: getInheritedColorGenerator(radialLabelsTextColor, theme),\n getLinkColor: getInheritedColorGenerator(radialLabelsLinkColor, theme),\n theme: theme\n });\n }\n\n this.ctx.restore();\n legends.forEach(function (legend) {\n renderLegendToCanvas(_this2.ctx, _objectSpread$6({}, legend, {\n data: arcs.map(function (arc) {\n return {\n id: arc.data.id,\n label: arc.data.id,\n color: arc.color\n };\n }),\n containerWidth: width,\n containerHeight: height,\n theme: theme\n }));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var _this$props2 = this.props,\n outerWidth = _this$props2.outerWidth,\n outerHeight = _this$props2.outerHeight,\n pixelRatio = _this$props2.pixelRatio,\n isInteractive = _this$props2.isInteractive,\n theme = _this$props2.theme;\n return React.createElement(Container, {\n isInteractive: isInteractive,\n theme: theme,\n animate: false\n }, function (_ref) {\n var showTooltip = _ref.showTooltip,\n hideTooltip = _ref.hideTooltip;\n return React.createElement(\"canvas\", {\n ref: function ref(surface) {\n _this3.surface = surface;\n },\n width: outerWidth * pixelRatio,\n height: outerHeight * pixelRatio,\n style: {\n width: outerWidth,\n height: outerHeight\n },\n onMouseEnter: _this3.handleMouseHover(showTooltip, hideTooltip),\n onMouseMove: _this3.handleMouseHover(showTooltip, hideTooltip),\n onMouseLeave: _this3.handleMouseLeave(hideTooltip),\n onClick: _this3.handleClick\n });\n });\n }\n }]);\n\n return PieCanvasRenderer;\n}(Component);\n\n_defineProperty$8(PieCanvasRenderer, \"propTypes\", {\n arcs: PropTypes.arrayOf(arcPropType).isRequired,\n arcGenerator: PropTypes.func.isRequired,\n pixelRatio: PropTypes.number.isRequired,\n outerWidth: PropTypes.number.isRequired,\n outerHeight: PropTypes.number.isRequired,\n centerX: PropTypes.number.isRequired,\n centerY: PropTypes.number.isRequired,\n margin: PropTypes.object.isRequired,\n radius: PropTypes.number.isRequired,\n innerRadius: PropTypes.number.isRequired,\n isInteractive: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n theme: PropTypes.object.isRequired\n});\n\nfunction _typeof$6(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof$6 = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof$6 = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof$6(obj);\n}\n\nfunction _extends$2() {\n _extends$2 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$2.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties$1(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose$1(source, excluded);\n\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}\n\nfunction _objectWithoutPropertiesLoose$1(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}\n\nfunction _classCallCheck$6(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties$6(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass$6(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$6(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$6(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn$6(self, call) {\n if (call && (_typeof$6(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized$6(self);\n}\n\nfunction _assertThisInitialized$6(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}\n\nfunction _getPrototypeOf$6(o) {\n _getPrototypeOf$6 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf$6(o);\n}\n\nfunction _inherits$6(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf$6(subClass, superClass);\n}\n\nfunction _setPrototypeOf$6(o, p) {\n _setPrototypeOf$6 = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf$6(o, p);\n}\n\nfunction _defineProperty$9(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar PieCanvas = function (_Component) {\n _inherits$6(PieCanvas, _Component);\n\n function PieCanvas() {\n _classCallCheck$6(this, PieCanvas);\n\n return _possibleConstructorReturn$6(this, _getPrototypeOf$6(PieCanvas).apply(this, arguments));\n }\n\n _createClass$6(PieCanvas, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n data = _this$props.data,\n sortByValue = _this$props.sortByValue,\n startAngle = _this$props.startAngle,\n endAngle = _this$props.endAngle,\n fit = _this$props.fit,\n padAngle = _this$props.padAngle,\n innerRadius = _this$props.innerRadius,\n cornerRadius = _this$props.cornerRadius,\n width = _this$props.width,\n height = _this$props.height,\n colors = _this$props.colors,\n colorBy = _this$props.colorBy,\n topProps = _objectWithoutProperties$1(_this$props, [\"data\", \"sortByValue\", \"startAngle\", \"endAngle\", \"fit\", \"padAngle\", \"innerRadius\", \"cornerRadius\", \"width\", \"height\", \"colors\", \"colorBy\"]);\n\n return React.createElement(PieLayout$1, {\n width: width,\n height: height,\n data: data,\n sortByValue: sortByValue,\n startAngle: startAngle,\n endAngle: endAngle,\n fit: fit,\n padAngle: padAngle,\n innerRadius: innerRadius,\n cornerRadius: cornerRadius,\n colors: colors,\n colorBy: colorBy\n }, function (props) {\n return React.createElement(PieCanvasRenderer, _extends$2({}, topProps, props));\n });\n }\n }]);\n\n return PieCanvas;\n}(Component);\n\n_defineProperty$9(PieCanvas, \"propTypes\", PiePropTypes);\n\nvar PieCanvas$1 = setDisplayName('PieCanvas')(enhance$4(PieCanvas));\n\nfunction _extends$3() {\n _extends$3 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$3.apply(this, arguments);\n}\n\nvar ResponsivePieCanvas = function ResponsivePieCanvas(props) {\n return React.createElement(ResponsiveWrapper, null, function (_ref) {\n var width = _ref.width,\n height = _ref.height;\n return React.createElement(PieCanvas$1, _extends$3({\n width: width,\n height: height\n }, props));\n });\n};\n\nfunction _objectSpread$7(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$a(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$a(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar usePie = function usePie(_ref) {\n var data = _ref.data,\n radius = _ref.radius,\n _ref$value = _ref.value,\n value = _ref$value === void 0 ? function (v) {\n return v;\n } : _ref$value,\n _ref$startAngle = _ref.startAngle,\n startAngle = _ref$startAngle === void 0 ? 0 : _ref$startAngle,\n _ref$endAngle = _ref.endAngle,\n endAngle = _ref$endAngle === void 0 ? 360 : _ref$endAngle,\n _ref$innerRadius = _ref.innerRadius,\n innerRadius = _ref$innerRadius === void 0 ? 0 : _ref$innerRadius,\n _ref$cornerRadius = _ref.cornerRadius,\n cornerRadius = _ref$cornerRadius === void 0 ? 0 : _ref$cornerRadius,\n _ref$sortByValue = _ref.sortByValue,\n sortByValue = _ref$sortByValue === void 0 ? false : _ref$sortByValue,\n _ref$padAngle = _ref.padAngle,\n padAngle = _ref$padAngle === void 0 ? 0 : _ref$padAngle;\n var arcGenerator = useMemo(function () {\n return arc().outerRadius(radius).innerRadius(innerRadius).cornerRadius(cornerRadius);\n }, [radius, innerRadius, cornerRadius]);\n var getValue = useMemo(function () {\n return typeof value === 'function' ? value : function (d) {\n return get(d, value);\n };\n }, [value]);\n var pie$1 = useMemo(function () {\n var computedPie = pie().value(getValue).padAngle(degreesToRadians(padAngle)).startAngle(degreesToRadians(startAngle)).endAngle(degreesToRadians(endAngle));\n if (sortByValue !== true) computedPie.sortValues(null);\n return computedPie;\n }, [getValue, padAngle, startAngle, endAngle, sortByValue]);\n var arcs = useMemo(function () {\n return pie$1(data).map(function (arc) {\n var angle = arc.endAngle - (arc.endAngle - arc.startAngle) * 0.5;\n return _objectSpread$7({}, arc, {\n startAngleDeg: radiansToDegrees(angle.startAngle),\n endAngleDeg: radiansToDegrees(arc.endAngle),\n angle: angle,\n angleDeg: radiansToDegrees(angle)\n });\n });\n }, [data, pie$1]);\n return {\n arcs: arcs,\n arcGenerator: arcGenerator\n };\n};\n\nexport { Pie$1 as Pie, PieCanvas$1 as PieCanvas, PieDefaultProps, PieLayout$1 as PieLayout, PiePropTypes, ResponsivePie, ResponsivePieCanvas, arcPropType, usePie };","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { ResponsivePie } from '@nivo/pie'\nimport { useBreakpoint } from 'gatsby-plugin-breakpoints';\n\nexport default function PieChart(props) {\n const breakpoints = useBreakpoint();\n const chartData = []\n\n props.xmlChildren.map(child => chartData.push({id: child.content, value: Number(child.attributes.total)}))\n\n // Add up all values to get total\n const total = chartData.map(datum => datum.value).reduce((total, current) => total + current, 0)\n\n\n const legendSettings = [\n {\n anchor: 'right',\n direction: 'column',\n justify: false,\n translateX: 0,\n translateY: 0,\n itemsSpacing: 0,\n itemDirection: 'left-to-right',\n itemWidth: 80,\n itemHeight: 20,\n itemOpacity: 0.75,\n symbolSize: 12,\n symbolShape: 'circle',\n symbolBorderColor: 'rgba(0, 0, 0, .5)',\n effects: [\n {\n on: 'hover',\n style: {\n itemBackground: 'rgba(0, 0, 0, .03)',\n itemOpacity: 1\n }\n }\n ]\n }\n ]\n\n\n const fillSettings = [];\n\n for(let i = 0; i < chartData.length; i++ ){\n if(i % 4 === 0){\n fillSettings.push({\n match: {\n id: chartData[i].id\n },\n id: 'dots'\n })\n }\n else if ((i + 2) % 2 === 0 ){\n fillSettings.push({\n match: {\n id: chartData[i].id\n },\n id: 'lines'\n })\n }\n }\n\n return (\n `${Math.round((d.value / total) * 100)}%`}\n slicesLabelsSkipAngle={10}\n slicesLabelsTextColor=\"#FFFFFF\"\n animate={false}\n motionStiffness={90}\n motionDamping={15}\n\n defs={[\n {\n id: 'dots',\n type: 'patternDots',\n background: 'inherit',\n color: 'rgba(255, 255, 255, 0.3)',\n size: 4,\n padding: 1,\n stagger: true\n },\n {\n id: 'lines',\n type: 'patternLines',\n background: 'inherit',\n color: 'rgba(255, 255, 255, 0.3)',\n rotation: -45,\n lineWidth: 6,\n spacing: 10\n }\n ]}\n fill={fillSettings}\n legends={props.uses_legend && !breakpoints.sm ? legendSettings : []}\n />\n )\n}\n\nPieChart.propTypes = {\n xmlChildren: PropTypes.array.isRequired,\n question: PropTypes.string.isRequired,\n uses_legend: PropTypes.bool.isRequired,\n custom_scheme: PropTypes.array.isRequired,\n}\n\nPieChart.defaultProps = {\n xmlChildren: [],\n question: null,\n uses_legend: false\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { ResponsiveLine } from '@nivo/line'\nimport { useBreakpoint } from 'gatsby-plugin-breakpoints'\n\n\nexport default function LineChart(props) {\n const breakpoints = useBreakpoint();\n const chartData = []\n\n // This is bad but there is a time crunch\n // look for the qID of total and set percentage to no. The qID is set in multiyear.xml for this particular dataset\n const usePercent = props.qID === 'total' ? false : true\n\n props.xmlChildren.map(child => {\n\n // eslint-disable-next-line no-prototype-builtins\n if(child.hasOwnProperty(\"children\")){\n return (\n chartData.push({\n \"id\": child.attributes.response,\n\n \"data\": child.children.map(yearData => {\n return (\n {\n \"x\": Number(yearData.content),\n \"y\": Number(usePercent ? yearData.attributes.percent : yearData.attributes.total)\n }\n )\n })\n })\n )\n } else {\n return (\n
There was an error with this line chart. Probably missing multiyear data.
\n )\n }\n })\n\n const legendSettings = [\n {\n anchor: 'bottom-left',\n direction: props.xmlChildren.length > 2 ? 'column' : 'row',\n justify: false,\n translateX: -10,\n translateY: breakpoints.sm ? 200 : 140,\n itemsSpacing: 0,\n itemDirection: 'left-to-right',\n itemWidth: 80,\n itemHeight: 20,\n itemOpacity: 0.75,\n symbolSize: 12,\n symbolShape: 'circle',\n symbolBorderColor: 'rgba(0, 0, 0, .5)',\n effects: [\n {\n on: 'hover',\n style: {\n itemBackground: 'rgba(0, 0, 0, .03)',\n itemOpacity: 1\n }\n }\n ]\n }\n ]\n\n\n\n const marginBottom = props.uses_legend ? props.xmlChildren.length > 2 ? 180 : 150 : 80\n\n return (\n \n )\n}\n\nLineChart.propTypes = {\n xmlChildren: PropTypes.array.isRequired,\n question: PropTypes.string.isRequired,\n uses_legend: PropTypes.bool.isRequired,\n custom_scheme: PropTypes.array.isRequired,\n qID: PropTypes.string.isRequired\n}\n\nLineChart.defaultProps = {\n xmlChildren: [],\n question: null,\n uses_legend: false,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { useStaticQuery, graphql } from \"gatsby\"\nimport VerticalBarChart from \"./vertical-bar-chart\"\nimport HorizontalBarChart from \"./horizontal-bar-chart\"\nimport BumpChart from \"./bump-chart\"\nimport PieChart from \"./pie-chart\"\nimport LineChart from \"./line-chart\"\n\nexport default function ChartHandler(props) {\n const chartType = props.chart_type.split(\" \").join(\"\")\n const chartClass = props.chart_type.split(\" \").join(\"-\").toLowerCase()\n\n // This is where we define the components based on the chart type we receive as props\n const chartComponents = {\n \"VerticalBarChart\": VerticalBarChart,\n \"HorizontalBarChart\": HorizontalBarChart,\n \"PieChart\": PieChart,\n \"StackedBarChart\": PieChart,\n \"BumpChart\": BumpChart,\n \"LineChart\": LineChart,\n };\n\n const ChartComponent = chartComponents[chartType];\n\n const allChartData = useStaticQuery(graphql`\n {\n allYear2020Xml {\n edges {\n node {\n attributes {\n qID\n question\n }\n id\n xmlChildren {\n children {\n content\n name\n attributes {\n total\n }\n }\n content\n name\n }\n }\n }\n },\n allMultiyearXml {\n edges {\n node {\n attributes {\n qID\n question\n }\n id\n xmlChildren {\n children {\n attributes {\n response\n }\n children {\n attributes {\n total\n ranking\n percent\n }\n content\n }\n }\n }\n }\n }\n }\n }\n `)\n\n const fullCustomScheme = ['#310707','#560B0B', '#810000', '#960000', '#AA0000', '#BB0000', '#D60000', '#E03535', '#EA4646']\n const minimalColorScheme = ['#810000', '#BB0000', '#EA4646']\n\n function shuffleArray(array) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [array[i], array[j]] = [array[j], array[i]];\n }\n }\n\n function renderChart(){\n const limitedChartData = props.is_multiyear ? allChartData.allMultiyearXml.edges : allChartData.allYear2020Xml.edges;\n\n let chartHeight = 500;\n\n if (props.custom_chart_height !== null){\n chartHeight = props.custom_chart_height;\n } else if (chartType === 'PieChart'){\n chartHeight = 400;\n }\n\n return(\n
\n {limitedChartData.map(chartData => {\n const qID = chartData.node.attributes.qID;\n const question = chartData.node.attributes.question;\n\n // eslint-disable-next-line no-prototype-builtins\n if(chartData.hasOwnProperty(\"node\")){\n\n return (\n chartData.node.xmlChildren.map(xmlChild => {\n // eslint-disable-next-line no-prototype-builtins\n const custom_scheme = xmlChild.children.length > 3 ? fullCustomScheme : minimalColorScheme\n shuffleArray(custom_scheme)\n\n // eslint-disable-next-line no-prototype-builtins\n if (xmlChild.hasOwnProperty(\"children\") && props.crowdsignal_question_number === qID) {\n return (\n
\n \n
\n )\n } else if (qID === null){\n return (\n null\n //
\n //
{ props.is_multiyear ? 'Multi year' : 'Single year' } data might be missing for this chart.
\n //
\n )\n } else {\n return null\n }\n })\n )\n }\n })}\n
\n )\n }\n\n return (\n <>\n {renderChart()}\n \n )\n}\n\n\nChartHandler.propTypes = {\n chart_type: PropTypes.string,\n is_multiyear: PropTypes.bool,\n crowdsignal_question_number: PropTypes.string,\n uses_legend: PropTypes.bool,\n custom_chart_height: PropTypes.number,\n custom_scheme: PropTypes.array,\n}\n\nChartHandler.defaultProps = {\n chart_type: ``,\n is_multiyear: false,\n crowdsignal_question_number: ``,\n uses_legend: false,\n custom_chart_height: null,\n custom_scheme: [],\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '@mdi/react';\nimport { mdiCommentQuote } from '@mdi/js';\nimport Img from \"gatsby-image\"\n\n\nexport default function CommunityInsights(props) {\n function renderCommunityInsightsData() {\n return (\n
\n
\n
\n

Community Insight

\n
\n
\n \n
\n
\n
\n \n
\n
\n\n
\n
\n {props.insightData.insight_image !== null &&\n \n }\n
\n
\n

{props.insightData.name}

\n
\n
\n
\n \n )\n }\n\n return (\n <>\n {renderCommunityInsightsData()}\n \n )\n}\n\nCommunityInsights.defaultProps = {\n insightData: {},\n}\n\nCommunityInsights.propTypes = {\n insightData: PropTypes.object,\n}\n","export default function objectToGetParams(object) {\n var params = Object.entries(object).filter(function (_a) {\n var value = _a[1];\n return value !== undefined && value !== null;\n }).map(function (_a) {\n var key = _a[0],\n value = _a[1];\n return encodeURIComponent(key) + \"=\" + encodeURIComponent(String(value));\n });\n return params.length > 0 ? \"?\" + params.join('&') : '';\n}","var __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nvar isPromise = function isPromise(obj) {\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';\n};\n\nvar getBoxPositionOnWindowCenter = function getBoxPositionOnWindowCenter(width, height) {\n return {\n left: window.outerWidth / 2 + (window.screenX || window.screenLeft || 0) - width / 2,\n top: window.outerHeight / 2 + (window.screenY || window.screenTop || 0) - height / 2\n };\n};\n\nvar getBoxPositionOnScreenCenter = function getBoxPositionOnScreenCenter(width, height) {\n return {\n top: (window.screen.height - height) / 2,\n left: (window.screen.width - width) / 2\n };\n};\n\nfunction windowOpen(url, _a, onClose) {\n var height = _a.height,\n width = _a.width,\n configRest = __rest(_a, [\"height\", \"width\"]);\n\n var config = __assign({\n height: height,\n width: width,\n location: 'no',\n toolbar: 'no',\n status: 'no',\n directories: 'no',\n menubar: 'no',\n scrollbars: 'yes',\n resizable: 'no',\n centerscreen: 'yes',\n chrome: 'yes'\n }, configRest);\n\n var shareDialog = window.open(url, '', Object.keys(config).map(function (key) {\n return key + \"=\" + config[key];\n }).join(', '));\n\n if (onClose) {\n var interval_1 = window.setInterval(function () {\n try {\n if (shareDialog === null || shareDialog.closed) {\n window.clearInterval(interval_1);\n onClose(shareDialog);\n }\n } catch (e) {\n /* eslint-disable no-console */\n console.error(e);\n /* eslint-enable no-console */\n }\n }, 1000);\n }\n\n return shareDialog;\n}\n\nvar ShareButton =\n/** @class */\nfunction (_super) {\n __extends(ShareButton, _super);\n\n function ShareButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.openShareDialog = function (link) {\n var _a = _this.props,\n onShareWindowClose = _a.onShareWindowClose,\n _b = _a.windowHeight,\n windowHeight = _b === void 0 ? 400 : _b,\n _c = _a.windowPosition,\n windowPosition = _c === void 0 ? 'windowCenter' : _c,\n _d = _a.windowWidth,\n windowWidth = _d === void 0 ? 550 : _d;\n\n var windowConfig = __assign({\n height: windowHeight,\n width: windowWidth\n }, windowPosition === 'windowCenter' ? getBoxPositionOnWindowCenter(windowWidth, windowHeight) : getBoxPositionOnScreenCenter(windowWidth, windowHeight));\n\n windowOpen(link, windowConfig, onShareWindowClose);\n };\n\n _this.handleClick = function (event) {\n return __awaiter(_this, void 0, void 0, function () {\n var _a, beforeOnClick, disabled, networkLink, onClick, url, openShareDialogOnClick, opts, link, returnVal;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this.props, beforeOnClick = _a.beforeOnClick, disabled = _a.disabled, networkLink = _a.networkLink, onClick = _a.onClick, url = _a.url, openShareDialogOnClick = _a.openShareDialogOnClick, opts = _a.opts;\n link = networkLink(url, opts);\n\n if (disabled) {\n return [2\n /*return*/\n ];\n }\n\n event.preventDefault();\n if (!beforeOnClick) return [3\n /*break*/\n , 2];\n returnVal = beforeOnClick();\n if (!isPromise(returnVal)) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , returnVal];\n\n case 1:\n _b.sent();\n\n _b.label = 2;\n\n case 2:\n if (openShareDialogOnClick) {\n this.openShareDialog(link);\n }\n\n if (onClick) {\n onClick(event, link);\n }\n\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n return _this;\n }\n\n ShareButton.prototype.render = function () {\n var _a = this.props,\n beforeOnClick = _a.beforeOnClick,\n children = _a.children,\n className = _a.className,\n disabled = _a.disabled,\n disabledStyle = _a.disabledStyle,\n forwardedRef = _a.forwardedRef,\n networkLink = _a.networkLink,\n networkName = _a.networkName,\n onShareWindowClose = _a.onShareWindowClose,\n openShareDialogOnClick = _a.openShareDialogOnClick,\n opts = _a.opts,\n resetButtonStyle = _a.resetButtonStyle,\n style = _a.style,\n url = _a.url,\n windowHeight = _a.windowHeight,\n windowPosition = _a.windowPosition,\n windowWidth = _a.windowWidth,\n rest = __rest(_a, [\"beforeOnClick\", \"children\", \"className\", \"disabled\", \"disabledStyle\", \"forwardedRef\", \"networkLink\", \"networkName\", \"onShareWindowClose\", \"openShareDialogOnClick\", \"opts\", \"resetButtonStyle\", \"style\", \"url\", \"windowHeight\", \"windowPosition\", \"windowWidth\"]);\n\n var newClassName = cx('react-share__ShareButton', {\n 'react-share__ShareButton--disabled': !!disabled,\n disabled: !!disabled\n }, className);\n var newStyle = resetButtonStyle ? __assign(__assign({\n backgroundColor: 'transparent',\n border: 'none',\n padding: 0,\n font: 'inherit',\n color: 'inherit',\n cursor: 'pointer'\n }, style), disabled && disabledStyle) : __assign(__assign({}, style), disabled && disabledStyle);\n return React.createElement(\"button\", __assign({}, rest, {\n \"aria-label\": rest['aria-label'] || networkName,\n className: newClassName,\n onClick: this.handleClick,\n ref: forwardedRef,\n style: newStyle\n }), children);\n };\n\n ShareButton.defaultProps = {\n disabledStyle: {\n opacity: 0.6\n },\n openShareDialogOnClick: true,\n resetButtonStyle: true\n };\n return ShareButton;\n}(Component);\n\nexport default ShareButton;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nimport React, { forwardRef } from 'react';\nimport ShareButton from '../ShareButton';\n\nfunction createShareButton(networkName, link, optsMap, defaultProps) {\n function CreatedButton(props, ref) {\n var opts = optsMap(props);\n\n var passedProps = __assign({}, props); // remove keys from passed props that are passed as opts\n\n\n var optsKeys = Object.keys(opts);\n optsKeys.forEach(function (key) {\n delete passedProps[key];\n });\n return React.createElement(ShareButton, __assign({}, defaultProps, passedProps, {\n forwardedRef: ref,\n networkName: networkName,\n networkLink: link,\n opts: optsMap(props)\n }));\n }\n\n CreatedButton.displayName = \"ShareButton-\" + networkName;\n return forwardRef(CreatedButton);\n}\n\nexport default createShareButton;","import objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\n\nfunction emailLink(url, _a) {\n var subject = _a.subject,\n body = _a.body,\n separator = _a.separator;\n return 'mailto:' + objectToGetParams({\n subject: subject,\n body: body ? body + separator + url : url\n });\n}\n\nvar EmailShareButton = createShareButton('email', emailLink, function (props) {\n return {\n subject: props.subject,\n body: props.body,\n separator: props.separator || ' '\n };\n}, {\n openShareDialogOnClick: false,\n onClick: function onClick(_, link) {\n window.location.href = link;\n }\n});\nexport default EmailShareButton;","var __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar AssertionError =\n/** @class */\nfunction (_super) {\n __extends(AssertionError, _super);\n\n function AssertionError(message) {\n var _this = _super.call(this, message) || this;\n\n _this.name = 'AssertionError';\n return _this;\n }\n\n return AssertionError;\n}(Error);\n\nexport default function assert(value, message) {\n if (!value) {\n throw new AssertionError(message);\n }\n}","import assert from './utils/assert';\nimport objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\n\nfunction facebookLink(url, _a) {\n var quote = _a.quote,\n hashtag = _a.hashtag;\n assert(url, 'facebook.url');\n return 'https://www.facebook.com/sharer/sharer.php' + objectToGetParams({\n u: url,\n quote: quote,\n hashtag: hashtag\n });\n}\n\nvar FacebookShareButton = createShareButton('facebook', facebookLink, function (props) {\n return {\n quote: props.quote,\n hashtag: props.hashtag\n };\n}, {\n windowWidth: 550,\n windowHeight: 400\n});\nexport default FacebookShareButton;","import assert from './utils/assert';\nimport objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\n\nfunction linkedinLink(url, _a) {\n var title = _a.title,\n summary = _a.summary,\n source = _a.source;\n assert(url, 'linkedin.url');\n return 'https://linkedin.com/shareArticle' + objectToGetParams({\n url: url,\n mini: 'true',\n title: title,\n summary: summary,\n source: source\n });\n}\n\nvar LinkedinShareButton = createShareButton('linkedin', linkedinLink, function (_a) {\n var title = _a.title,\n summary = _a.summary,\n source = _a.source;\n return {\n title: title,\n summary: summary,\n source: source\n };\n}, {\n windowWidth: 750,\n windowHeight: 600\n});\nexport default LinkedinShareButton;","import assert from './utils/assert';\nimport objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\n\nfunction twitterLink(url, _a) {\n var title = _a.title,\n via = _a.via,\n _b = _a.hashtags,\n hashtags = _b === void 0 ? [] : _b,\n _c = _a.related,\n related = _c === void 0 ? [] : _c;\n assert(url, 'twitter.url');\n assert(Array.isArray(hashtags), 'twitter.hashtags is not an array');\n assert(Array.isArray(related), 'twitter.related is not an array');\n return 'https://twitter.com/share' + objectToGetParams({\n url: url,\n text: title,\n via: via,\n hashtags: hashtags.length > 0 ? hashtags.join(',') : undefined,\n related: related.length > 0 ? related.join(',') : undefined\n });\n}\n\nvar TwitterShareButton = createShareButton('twitter', twitterLink, function (props) {\n return {\n hashtags: props.hashtags,\n title: props.title,\n via: props.via,\n related: props.related\n };\n}, {\n windowWidth: 550,\n windowHeight: 400\n});\nexport default TwitterShareButton;","\nimport React, { useState } from \"react\"\nimport PropTypes from \"prop-types\"\nimport {\n FacebookShareButton,\n LinkedinShareButton,\n TwitterShareButton,\n EmailShareButton,\n} from \"react-share\";\nimport Icon from '@mdi/react';\nimport { useStaticQuery, graphql } from \"gatsby\"\nimport { mdiTwitter, mdiFacebook, mdiLinkedin, mdiEmail, mdiLinkBoxVariant } from '@mdi/js';\n\nconst SocialShare = (props) => {\n const [isOpen, setIsOpen] = useState(false)\n\n const { site } = useStaticQuery(\n graphql`\n query {\n site {\n siteMetadata {\n title\n description\n author\n url\n }\n }\n }\n `\n )\n\n const url = site.siteMetadata.url + '#' + props.sectionId\n\n function handleClick() {\n if (!isOpen) {\n setIsOpen(true)\n } else {\n setIsOpen(false)\n }\n }\n\n return (\n
\n \n\n {isOpen &&\n\n
\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n
\n }\n
\n )\n}\n\nSocialShare.propTypes = {\n sectionId: PropTypes.string,\n sectionTitle: PropTypes.string,\n}\n\nSocialShare.defaultProps = {\n sectionId: \"\",\n sectionTitle: \"\",\n}\n\nexport default SocialShare","import React, { useState } from \"react\"\nimport PropTypes from \"prop-types\"\nimport useSurveyResultsData from \"../static_queries/useSurveyResultsData\";\nimport ChartHandler from \"./charts/chart-handler\"\nimport CommunityInsight from \"./community-insight\";\nimport SocialShare from \"./social-share\";\nimport Icon from '@mdi/react';\nimport Img from \"gatsby-image\";\nimport { mdiChartArc, mdiChartLine, mdiChartBar, mdiMapMarker, mdiAccountGroup, mdiHeart, mdiHeartBroken, mdiDiamondStone, mdiChartTimelineVariant, mdiPodcast, mdiRss } from '@mdi/js';\n\nexport default function SurveyResultList({resultRelativePath}) {\n const surveyResultsData = useSurveyResultsData()\n const [isSeeAllOpen, setIsSeeAllOpen] = useState(false)\n\n const surveyResultsIcons = {\n \"mdiChartArc\": mdiChartArc,\n \"mdiChartLine\": mdiChartLine,\n \"mdiChartBar\": mdiChartBar,\n \"mdiMapMarker\": mdiMapMarker,\n \"mdiAccountGroup\": mdiAccountGroup,\n \"mdiHeart\": mdiHeart,\n \"mdiHeartBroken\": mdiHeartBroken,\n \"mdiDiamondStone\": mdiDiamondStone,\n \"mdiChartTimelineVariant\": mdiChartTimelineVariant,\n \"mdiPodcast\": mdiPodcast,\n \"mdiRss\": mdiRss,\n };\n\n function handleOther(tags, title = 'Other responses:') {\n return (\n
\n

{title}

\n
\n {\n tags.map(tag => {tag})\n }\n
\n
\n )\n }\n\n function handleSeeAll() {\n if (!isSeeAllOpen) {\n setIsSeeAllOpen(true)\n } else {\n setIsSeeAllOpen(false)\n }\n }\n\n function listLink(item, i, resultIcon) {\n return (\n \n )\n }\n\n function listImageLink(item, i) {\n return (\n \n )\n }\n\n function handleRankedLinkableList(list_items, resultIcon = mdiDiamondStone) {\n if (list_items.length > 0) {\n return (\n <>\n { list_items.length > 0 &&

Top 10

}\n
\n {\n list_items.map((item, i) => {\n if (i < 10){\n if (item.list_item_image !== null) {\n return listImageLink(item, i)\n }\n return listLink(item, i, resultIcon)\n }\n })\n }\n
\n { list_items.length > 10 &&\n <>\n
Other mentions:
\n
\n {\n list_items.map((item, i) => {\n if (i > 10 && i < 17){\n return listLink(item, i, resultIcon)\n }\n }\n )}\n
\n {!isSeeAllOpen &&\n
\n
\n
\n \n
\n
\n }\n
\n { isSeeAllOpen &&\n list_items.map((item, i) => {\n if (i > 18 ){\n return listLink(item, i, resultIcon)\n }\n }\n )}\n
\n \n }\n \n )\n }\n }\n\n function renderSurveyResultsData() {\n return (\n <>\n {surveyResultsData.map(result => {\n if (resultRelativePath === result.node.relativePath) {\n const resultIcon = surveyResultsIcons[result.node.childMarkdownRemark.frontmatter.icon];\n const insightData = {\n name: result.node.childMarkdownRemark.frontmatter.insight_name,\n bio: result.node.childMarkdownRemark.frontmatter.insight_bio,\n quote: result.node.childMarkdownRemark.frontmatter.insight_quote,\n insight_image: result.node.childMarkdownRemark.frontmatter.insight_image,\n }\n const displayOtherTags = result.node.childMarkdownRemark.frontmatter.display_other\n const otherTags = result.node.childMarkdownRemark.frontmatter.other_tags || []\n const otherTagsTitle = result.node.childMarkdownRemark.frontmatter.other_tags_title || undefined\n\n return (\n
\n
\n {resultIcon &&\n
\n \n
\n }\n \n
\n
\n

{result.node.childMarkdownRemark.frontmatter.title}

\n
\n
\n\n {result.node.childMarkdownRemark.frontmatter.graphic &&\n \n }\n\n {result.node.childMarkdownRemark.frontmatter.uses_nivo_chart == true &&\n (\n \n )\n }\n { displayOtherTags &&\n handleOther(otherTags, otherTagsTitle)\n }\n { result.node.childMarkdownRemark.frontmatter.ranked_linkable_list !== null &&\n handleRankedLinkableList(result.node.childMarkdownRemark.frontmatter.ranked_linkable_list, resultIcon)\n }\n { result.node.childMarkdownRemark.frontmatter.include_community_insight &&\n \n }\n \n )\n } else { return null }\n })}\n \n )\n }\n return (\n <>\n {renderSurveyResultsData()}\n \n )\n}\n\nSurveyResultList.propTypes = {\n resultRelativePath: PropTypes.string,\n}\n\nSurveyResultList.defaultProps = {\n resultRelativePath: '',\n}\n","import { useStaticQuery, graphql } from \"gatsby\"\n\nexport default function useSurveyResultsData() {\n const data = useStaticQuery(graphql`\n {\n allFile(filter: {sourceInstanceName: {eq: \"survey-results\"}}) {\n edges {\n node {\n name\n id\n relativePath\n childMarkdownRemark {\n html\n frontmatter {\n icon\n title\n uses_nivo_chart\n is_multiyear\n graphic {\n id\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n uses_legend\n crowdsignal_question_number\n chart_type\n include_community_insight\n insight_quote\n insight_name\n insight_bio\n insight_image {\n publicURL\n childImageSharp {\n fixed(cropFocus: CENTER, width: 110, height: 110) {\n ...GatsbyImageSharpFixed\n }\n }\n }\n custom_chart_height\n display_other\n other_tags_title\n other_tags\n ranked_linkable_list {\n display_text\n url\n tag\n list_item_image {\n id\n childImageSharp {\n fluid(maxWidth: 310) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n }\n }\n }\n sourceInstanceName\n }\n }\n }\n }\n`)\n return data.allFile.edges\n}\n","import React from \"react\"\nimport SurveyResult from \"./survey-result\"\nimport useSectionData from \"../static_queries/useSectionData\"\n\nexport default function SectionList() {\n const sectionData = useSectionData()\n\n function renderSectionData() {\n const orderedSections = [];\n\n sectionData.file.childMarkdownRemark.frontmatter.sections.map(section => {\n orderedSections.push(section.slice(0, -3))\n })\n\n return (\n
\n {\n orderedSections.map((orderedSection, i) => {\n return(\n \n {sectionData.allFile.edges.map(section => {\n const thisSectionName = `content/sections/${section.node.name}`\n const firstSection = section.node.name === 'introduction'\n\n if (orderedSection === thisSectionName) {\n return (\n
\n {section.node.childMarkdownRemark.frontmatter.show_title_in_content === true &&\n <>\n

{section.node.childMarkdownRemark.frontmatter.title}

\n

{section.node.childMarkdownRemark.frontmatter.subtitle}

\n \n }\n {section.node.childMarkdownRemark.html &&\n
\n }\n {section.node.childMarkdownRemark.frontmatter.survey_results.map((result, i) => {\n const resultRelativePath = result.replace('content/survey-results/','')\n return (\n \n )\n })}\n \n )\n }\n })}\n \n )\n })\n }\n \n )\n }\n return (\n
\n {renderSectionData()}\n
\n )\n}\n","/**\n * SEO component that queries for data with\n * Gatsby's useStaticQuery React hook\n *\n * See: https://www.gatsbyjs.org/docs/use-static-query/\n */\n\nimport React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { Helmet } from \"react-helmet\"\nimport { useStaticQuery, graphql } from \"gatsby\"\nimport ShareCard from \"../assets/2020-ruby-on-rails-survey-results.png\";\n\nfunction SEO({ description, lang, meta }) {\n const { site } = useStaticQuery(\n graphql`\n query {\n site {\n siteMetadata {\n title\n description\n author\n url\n }\n }\n }\n `\n )\n\n const metaDescription = description || site.siteMetadata.description\n const metaTitle = site.siteMetadata.title\n const shareCardURL = `${site.siteMetadata.url}${ShareCard}`\n\n return (\n \n )\n}\n\nSEO.defaultProps = {\n lang: `en`,\n meta: [],\n description: ``,\n}\n\nSEO.propTypes = {\n description: PropTypes.string,\n lang: PropTypes.string,\n meta: PropTypes.arrayOf(PropTypes.object),\n}\n\nexport default SEO\n","import React from \"react\"\nimport Layout from \"../components/site-layout\"\nimport SectionList from \"../components/section-list\"\nimport SEO from \"../components/seo-helper\"\n\nconst IndexPage = () => (\n \n \n \n \n)\n\nexport default IndexPage\n","/**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\nfunction baseLodash() {\n // No operation performed.\n}\n\nmodule.exports = baseLodash;\n","var apply = require('./_apply'),\n createCtor = require('./_createCtor'),\n createHybrid = require('./_createHybrid'),\n createRecurry = require('./_createRecurry'),\n getHolder = require('./_getHolder'),\n replaceHolders = require('./_replaceHolders'),\n root = require('./_root');\n\n/**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n}\n\nmodule.exports = createCurry;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _react = require(\"react\");\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar mapProps = function mapProps(propsMapper) {\n return function (BaseComponent) {\n var factory = (0, _react.createFactory)(BaseComponent);\n\n var MapProps = function MapProps(props) {\n return factory(propsMapper(props));\n };\n\n if (process.env.NODE_ENV !== 'production') {\n return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'mapProps'))(MapProps);\n }\n\n return MapProps;\n };\n};\n\nvar _default = mapProps;\nexports.default = _default;","var castPath = require('./_castPath'),\n last = require('./last'),\n parent = require('./_parent'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n // proceed\n\n default:\n this._context.lineTo(x, y);\n\n break;\n }\n }\n};\nexport default function (context) {\n return new Linear(context);\n}","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","import colors from \"../colors.js\";\n\nfunction ramp(range) {\n var n = range.length;\n return function (t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n\nexport default ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\nexport var magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\nexport var inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\nexport var plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"d8b365f5f5f55ab4ac\", \"a6611adfc27d80cdc1018571\", \"a6611adfc27df5f5f580cdc1018571\", \"8c510ad8b365f6e8c3c7eae55ab4ac01665e\", \"8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e\", \"8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e\", \"8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e\", \"5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30\", \"5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30\").map(colors);\nexport default ramp(scheme);","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var getWrapDetails = require('./_getWrapDetails'),\n insertWrapDetails = require('./_insertWrapDetails'),\n setToString = require('./_setToString'),\n updateWrapDetails = require('./_updateWrapDetails');\n\n/**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\nfunction setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n}\n\nmodule.exports = setWrapToString;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","var global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar un$Sort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","/**\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 * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\nfunction getHolder(func) {\n var object = func;\n return object.placeholder;\n}\n\nmodule.exports = getHolder;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n","import { tickStep } from \"d3-array\";\nimport { format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound } from \"d3-format\";\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n\n switch (specifier.type) {\n case \"s\":\n {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\":\n {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n\n case \"f\":\n case \"%\":\n {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n\n return format(specifier);\n}","import exponent from \"./exponent.js\";\nexport default function (step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}","import exponent from \"./exponent.js\";\nexport default function (step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}","import exponent from \"./exponent.js\";\nexport default function (step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}","import { ticks, tickIncrement } from \"d3-array\";\nimport continuous, { copy } from \"./continuous.js\";\nimport { initRange } from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function (count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function (count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function (count) {\n if (count == null) count = 10;\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n\n if (step === prestep) {\n d[i0] = start;\n d[i1] = stop;\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function () {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n return linearish(scale);\n}","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"e9a3c9f7f7f7a1d76a\", \"d01c8bf1b6dab8e1864dac26\", \"d01c8bf1b6daf7f7f7b8e1864dac26\", \"c51b7de9a3c9fde0efe6f5d0a1d76a4d9221\", \"c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221\", \"c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221\", \"c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221\", \"8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419\", \"8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419\").map(colors);\nexport default ramp(scheme);","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","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}","import _classCallCheck from \"/Users/brianmiddleton/dev/2020-rails-survey-site/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\";\nimport _createClass from \"/Users/brianmiddleton/dev/2020-rails-survey-site/node_modules/@babel/runtime/helpers/esm/createClass.js\";\nimport \"core-js/modules/es.typed-array.set.js\";\nimport \"core-js/modules/es.typed-array.sort.js\";\nvar EPSILON = Math.pow(2, -52);\nvar EDGE_STACK = new Uint32Array(512);\n\nvar Delaunator = /*#__PURE__*/function () {\n function Delaunator(coords) {\n _classCallCheck(this, Delaunator);\n\n var n = coords.length >> 1;\n if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.');\n this.coords = coords; // arrays that will store the triangulation graph\n\n var maxTriangles = Math.max(2 * n - 5, 0);\n this._triangles = new Uint32Array(maxTriangles * 3);\n this._halfedges = new Int32Array(maxTriangles * 3); // temporary arrays for tracking the edges of the advancing convex hull\n\n this._hashSize = Math.ceil(Math.sqrt(n));\n this._hullPrev = new Uint32Array(n); // edge to prev edge\n\n this._hullNext = new Uint32Array(n); // edge to next edge\n\n this._hullTri = new Uint32Array(n); // edge to adjacent triangle\n\n this._hullHash = new Int32Array(this._hashSize).fill(-1); // angular edge hash\n // temporary arrays for sorting points\n\n this._ids = new Uint32Array(n);\n this._dists = new Float64Array(n);\n this.update();\n }\n\n _createClass(Delaunator, [{\n key: \"update\",\n value: function update() {\n var coords = this.coords,\n hullPrev = this._hullPrev,\n hullNext = this._hullNext,\n hullTri = this._hullTri,\n hullHash = this._hullHash;\n var n = coords.length >> 1; // populate an array of point indices; calculate input data bbox\n\n var minX = Infinity;\n var minY = Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n\n for (var i = 0; i < n; i++) {\n var x = coords[2 * i];\n var y = coords[2 * i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n this._ids[i] = i;\n }\n\n var cx = (minX + maxX) / 2;\n var cy = (minY + maxY) / 2;\n var minDist = Infinity;\n var i0, i1, i2; // pick a seed point close to the center\n\n for (var _i = 0; _i < n; _i++) {\n var d = dist(cx, cy, coords[2 * _i], coords[2 * _i + 1]);\n\n if (d < minDist) {\n i0 = _i;\n minDist = d;\n }\n }\n\n var i0x = coords[2 * i0];\n var i0y = coords[2 * i0 + 1];\n minDist = Infinity; // find the point closest to the seed\n\n for (var _i2 = 0; _i2 < n; _i2++) {\n if (_i2 === i0) continue;\n\n var _d = dist(i0x, i0y, coords[2 * _i2], coords[2 * _i2 + 1]);\n\n if (_d < minDist && _d > 0) {\n i1 = _i2;\n minDist = _d;\n }\n }\n\n var i1x = coords[2 * i1];\n var i1y = coords[2 * i1 + 1];\n var minRadius = Infinity; // find the third point which forms the smallest circumcircle with the first two\n\n for (var _i3 = 0; _i3 < n; _i3++) {\n if (_i3 === i0 || _i3 === i1) continue;\n var r = circumradius(i0x, i0y, i1x, i1y, coords[2 * _i3], coords[2 * _i3 + 1]);\n\n if (r < minRadius) {\n i2 = _i3;\n minRadius = r;\n }\n }\n\n var i2x = coords[2 * i2];\n var i2y = coords[2 * i2 + 1];\n\n if (minRadius === Infinity) {\n // order collinear points by dx (or dy if all x are identical)\n // and return the list as a hull\n for (var _i4 = 0; _i4 < n; _i4++) {\n this._dists[_i4] = coords[2 * _i4] - coords[0] || coords[2 * _i4 + 1] - coords[1];\n }\n\n quicksort(this._ids, this._dists, 0, n - 1);\n var hull = new Uint32Array(n);\n var j = 0;\n\n for (var _i5 = 0, d0 = -Infinity; _i5 < n; _i5++) {\n var id = this._ids[_i5];\n\n if (this._dists[id] > d0) {\n hull[j++] = id;\n d0 = this._dists[id];\n }\n }\n\n this.hull = hull.subarray(0, j);\n this.triangles = new Uint32Array(0);\n this.halfedges = new Uint32Array(0);\n return;\n } // swap the order of the seed points for counter-clockwise orientation\n\n\n if (orient(i0x, i0y, i1x, i1y, i2x, i2y)) {\n var _i6 = i1;\n var _x = i1x;\n var _y = i1y;\n i1 = i2;\n i1x = i2x;\n i1y = i2y;\n i2 = _i6;\n i2x = _x;\n i2y = _y;\n }\n\n var center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y);\n this._cx = center.x;\n this._cy = center.y;\n\n for (var _i7 = 0; _i7 < n; _i7++) {\n this._dists[_i7] = dist(coords[2 * _i7], coords[2 * _i7 + 1], center.x, center.y);\n } // sort the points by distance from the seed triangle circumcenter\n\n\n quicksort(this._ids, this._dists, 0, n - 1); // set up the seed triangle as the starting hull\n\n this._hullStart = i0;\n var hullSize = 3;\n hullNext[i0] = hullPrev[i2] = i1;\n hullNext[i1] = hullPrev[i0] = i2;\n hullNext[i2] = hullPrev[i1] = i0;\n hullTri[i0] = 0;\n hullTri[i1] = 1;\n hullTri[i2] = 2;\n hullHash.fill(-1);\n hullHash[this._hashKey(i0x, i0y)] = i0;\n hullHash[this._hashKey(i1x, i1y)] = i1;\n hullHash[this._hashKey(i2x, i2y)] = i2;\n this.trianglesLen = 0;\n\n this._addTriangle(i0, i1, i2, -1, -1, -1);\n\n for (var k = 0, xp, yp; k < this._ids.length; k++) {\n var _i8 = this._ids[k];\n var _x2 = coords[2 * _i8];\n var _y2 = coords[2 * _i8 + 1]; // skip near-duplicate points\n\n if (k > 0 && Math.abs(_x2 - xp) <= EPSILON && Math.abs(_y2 - yp) <= EPSILON) continue;\n xp = _x2;\n yp = _y2; // skip seed triangle points\n\n if (_i8 === i0 || _i8 === i1 || _i8 === i2) continue; // find a visible edge on the convex hull using edge hash\n\n var start = 0;\n\n for (var _j = 0, key = this._hashKey(_x2, _y2); _j < this._hashSize; _j++) {\n start = hullHash[(key + _j) % this._hashSize];\n if (start !== -1 && start !== hullNext[start]) break;\n }\n\n start = hullPrev[start];\n var e = start,\n q = void 0;\n\n while (q = hullNext[e], !orient(_x2, _y2, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1])) {\n e = q;\n\n if (e === start) {\n e = -1;\n break;\n }\n }\n\n if (e === -1) continue; // likely a near-duplicate point; skip it\n // add the first triangle from the point\n\n var t = this._addTriangle(e, _i8, hullNext[e], -1, -1, hullTri[e]); // recursively flip triangles from the point until they satisfy the Delaunay condition\n\n\n hullTri[_i8] = this._legalize(t + 2);\n hullTri[e] = t; // keep track of boundary triangles on the hull\n\n hullSize++; // walk forward through the hull, adding more triangles and flipping recursively\n\n var _n = hullNext[e];\n\n while (q = hullNext[_n], orient(_x2, _y2, coords[2 * _n], coords[2 * _n + 1], coords[2 * q], coords[2 * q + 1])) {\n t = this._addTriangle(_n, _i8, q, hullTri[_i8], -1, hullTri[_n]);\n hullTri[_i8] = this._legalize(t + 2);\n hullNext[_n] = _n; // mark as removed\n\n hullSize--;\n _n = q;\n } // walk backward from the other side, adding more triangles and flipping\n\n\n if (e === start) {\n while (q = hullPrev[e], orient(_x2, _y2, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1])) {\n t = this._addTriangle(q, _i8, e, -1, hullTri[e], hullTri[q]);\n\n this._legalize(t + 2);\n\n hullTri[q] = t;\n hullNext[e] = e; // mark as removed\n\n hullSize--;\n e = q;\n }\n } // update the hull indices\n\n\n this._hullStart = hullPrev[_i8] = e;\n hullNext[e] = hullPrev[_n] = _i8;\n hullNext[_i8] = _n; // save the two new edges in the hash table\n\n hullHash[this._hashKey(_x2, _y2)] = _i8;\n hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e;\n }\n\n this.hull = new Uint32Array(hullSize);\n\n for (var _i9 = 0, _e = this._hullStart; _i9 < hullSize; _i9++) {\n this.hull[_i9] = _e;\n _e = hullNext[_e];\n } // trim typed triangle mesh arrays\n\n\n this.triangles = this._triangles.subarray(0, this.trianglesLen);\n this.halfedges = this._halfedges.subarray(0, this.trianglesLen);\n }\n }, {\n key: \"_hashKey\",\n value: function _hashKey(x, y) {\n return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize;\n }\n }, {\n key: \"_legalize\",\n value: function _legalize(a) {\n var triangles = this._triangles,\n halfedges = this._halfedges,\n coords = this.coords;\n var i = 0;\n var ar = 0; // recursion eliminated with a fixed-size stack\n\n while (true) {\n var b = halfedges[a];\n /* if the pair of triangles doesn't satisfy the Delaunay condition\n * (p1 is inside the circumcircle of [p0, pl, pr]), flip them,\n * then do the same check/flip recursively for the new pair of triangles\n *\n * pl pl\n * /||\\ / \\\n * al/ || \\bl al/ \\a\n * / || \\ / \\\n * / a||b \\ flip /___ar___\\\n * p0\\ || /p1 => p0\\---bl---/p1\n * \\ || / \\ /\n * ar\\ || /br b\\ /br\n * \\||/ \\ /\n * pr pr\n */\n\n var a0 = a - a % 3;\n ar = a0 + (a + 2) % 3;\n\n if (b === -1) {\n // convex hull edge\n if (i === 0) break;\n a = EDGE_STACK[--i];\n continue;\n }\n\n var b0 = b - b % 3;\n var al = a0 + (a + 1) % 3;\n var bl = b0 + (b + 2) % 3;\n var p0 = triangles[ar];\n var pr = triangles[a];\n var pl = triangles[al];\n var p1 = triangles[bl];\n var illegal = inCircle(coords[2 * p0], coords[2 * p0 + 1], coords[2 * pr], coords[2 * pr + 1], coords[2 * pl], coords[2 * pl + 1], coords[2 * p1], coords[2 * p1 + 1]);\n\n if (illegal) {\n triangles[a] = p1;\n triangles[b] = p0;\n var hbl = halfedges[bl]; // edge swapped on the other side of the hull (rare); fix the halfedge reference\n\n if (hbl === -1) {\n var e = this._hullStart;\n\n do {\n if (this._hullTri[e] === bl) {\n this._hullTri[e] = a;\n break;\n }\n\n e = this._hullPrev[e];\n } while (e !== this._hullStart);\n }\n\n this._link(a, hbl);\n\n this._link(b, halfedges[ar]);\n\n this._link(ar, bl);\n\n var br = b0 + (b + 1) % 3; // don't worry about hitting the cap: it can only happen on extremely degenerate input\n\n if (i < EDGE_STACK.length) {\n EDGE_STACK[i++] = br;\n }\n } else {\n if (i === 0) break;\n a = EDGE_STACK[--i];\n }\n }\n\n return ar;\n }\n }, {\n key: \"_link\",\n value: function _link(a, b) {\n this._halfedges[a] = b;\n if (b !== -1) this._halfedges[b] = a;\n } // add a new triangle given vertex indices and adjacent half-edge ids\n\n }, {\n key: \"_addTriangle\",\n value: function _addTriangle(i0, i1, i2, a, b, c) {\n var t = this.trianglesLen;\n this._triangles[t] = i0;\n this._triangles[t + 1] = i1;\n this._triangles[t + 2] = i2;\n\n this._link(t, a);\n\n this._link(t + 1, b);\n\n this._link(t + 2, c);\n\n this.trianglesLen += 3;\n return t;\n }\n }], [{\n key: \"from\",\n value: function from(points) {\n var getX = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultGetX;\n var getY = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultGetY;\n var n = points.length;\n var coords = new Float64Array(n * 2);\n\n for (var i = 0; i < n; i++) {\n var p = points[i];\n coords[2 * i] = getX(p);\n coords[2 * i + 1] = getY(p);\n }\n\n return new Delaunator(coords);\n }\n }]);\n\n return Delaunator;\n}(); // monotonically increases with real angle, but doesn't need expensive trigonometry\n\n\nexport { Delaunator as default };\n\nfunction pseudoAngle(dx, dy) {\n var p = dx / (Math.abs(dx) + Math.abs(dy));\n return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1]\n}\n\nfunction dist(ax, ay, bx, by) {\n var dx = ax - bx;\n var dy = ay - by;\n return dx * dx + dy * dy;\n} // return 2d orientation sign if we're confident in it through J. Shewchuk's error bound check\n\n\nfunction orientIfSure(px, py, rx, ry, qx, qy) {\n var l = (ry - py) * (qx - px);\n var r = (rx - px) * (qy - py);\n return Math.abs(l - r) >= 3.3306690738754716e-16 * Math.abs(l + r) ? l - r : 0;\n} // a more robust orientation test that's stable in a given triangle (to fix robustness issues)\n\n\nfunction orient(rx, ry, qx, qy, px, py) {\n var sign = orientIfSure(px, py, rx, ry, qx, qy) || orientIfSure(rx, ry, qx, qy, px, py) || orientIfSure(qx, qy, px, py, rx, ry);\n return sign < 0;\n}\n\nfunction inCircle(ax, ay, bx, by, cx, cy, px, py) {\n var dx = ax - px;\n var dy = ay - py;\n var ex = bx - px;\n var ey = by - py;\n var fx = cx - px;\n var fy = cy - py;\n var ap = dx * dx + dy * dy;\n var bp = ex * ex + ey * ey;\n var cp = fx * fx + fy * fy;\n return dx * (ey * cp - bp * fy) - dy * (ex * cp - bp * fx) + ap * (ex * fy - ey * fx) < 0;\n}\n\nfunction circumradius(ax, ay, bx, by, cx, cy) {\n var dx = bx - ax;\n var dy = by - ay;\n var ex = cx - ax;\n var ey = cy - ay;\n var bl = dx * dx + dy * dy;\n var cl = ex * ex + ey * ey;\n var d = 0.5 / (dx * ey - dy * ex);\n var x = (ey * bl - dy * cl) * d;\n var y = (dx * cl - ex * bl) * d;\n return x * x + y * y;\n}\n\nfunction circumcenter(ax, ay, bx, by, cx, cy) {\n var dx = bx - ax;\n var dy = by - ay;\n var ex = cx - ax;\n var ey = cy - ay;\n var bl = dx * dx + dy * dy;\n var cl = ex * ex + ey * ey;\n var d = 0.5 / (dx * ey - dy * ex);\n var x = ax + (ey * bl - dy * cl) * d;\n var y = ay + (dx * cl - ex * bl) * d;\n return {\n x: x,\n y: y\n };\n}\n\nfunction quicksort(ids, dists, left, right) {\n if (right - left <= 20) {\n for (var i = left + 1; i <= right; i++) {\n var temp = ids[i];\n var tempDist = dists[temp];\n var j = i - 1;\n\n while (j >= left && dists[ids[j]] > tempDist) {\n ids[j + 1] = ids[j--];\n }\n\n ids[j + 1] = temp;\n }\n } else {\n var median = left + right >> 1;\n\n var _i10 = left + 1;\n\n var _j2 = right;\n swap(ids, median, _i10);\n if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right);\n if (dists[ids[_i10]] > dists[ids[right]]) swap(ids, _i10, right);\n if (dists[ids[left]] > dists[ids[_i10]]) swap(ids, left, _i10);\n var _temp = ids[_i10];\n var _tempDist = dists[_temp];\n\n while (true) {\n do {\n _i10++;\n } while (dists[ids[_i10]] < _tempDist);\n\n do {\n _j2--;\n } while (dists[ids[_j2]] > _tempDist);\n\n if (_j2 < _i10) break;\n swap(ids, _i10, _j2);\n }\n\n ids[left + 1] = ids[_j2];\n ids[_j2] = _temp;\n\n if (right - _i10 + 1 >= _j2 - left) {\n quicksort(ids, dists, _i10, right);\n quicksort(ids, dists, left, _j2 - 1);\n } else {\n quicksort(ids, dists, left, _j2 - 1);\n quicksort(ids, dists, _i10, right);\n }\n }\n}\n\nfunction swap(arr, i, j) {\n var tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\nfunction defaultGetX(p) {\n return p[0];\n}\n\nfunction defaultGetY(p) {\n return p[1];\n}","import _classCallCheck from \"/Users/brianmiddleton/dev/2020-rails-survey-site/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\";\nimport _createClass from \"/Users/brianmiddleton/dev/2020-rails-survey-site/node_modules/@babel/runtime/helpers/esm/createClass.js\";\nvar epsilon = 1e-6;\n\nvar Path = /*#__PURE__*/function () {\n function Path() {\n _classCallCheck(this, Path);\n\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n\n this._ = \"\";\n }\n\n _createClass(Path, [{\n key: \"moveTo\",\n value: function moveTo(x, y) {\n this._ += \"M\".concat(this._x0 = this._x1 = +x, \",\").concat(this._y0 = this._y1 = +y);\n }\n }, {\n key: \"closePath\",\n value: function closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n }\n }, {\n key: \"lineTo\",\n value: function lineTo(x, y) {\n this._ += \"L\".concat(this._x1 = +x, \",\").concat(this._y1 = +y);\n }\n }, {\n key: \"arc\",\n value: function arc(x, y, r) {\n x = +x, y = +y, r = +r;\n var x0 = x + r;\n var y0 = y;\n if (r < 0) throw new Error(\"negative radius\");\n if (this._x1 === null) this._ += \"M\".concat(x0, \",\").concat(y0);else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) this._ += \"L\" + x0 + \",\" + y0;\n if (!r) return;\n this._ += \"A\".concat(r, \",\").concat(r, \",0,1,1,\").concat(x - r, \",\").concat(y, \"A\").concat(r, \",\").concat(r, \",0,1,1,\").concat(this._x1 = x0, \",\").concat(this._y1 = y0);\n }\n }, {\n key: \"rect\",\n value: function rect(x, y, w, h) {\n this._ += \"M\".concat(this._x0 = this._x1 = +x, \",\").concat(this._y0 = this._y1 = +y, \"h\").concat(+w, \"v\").concat(+h, \"h\").concat(-w, \"Z\");\n }\n }, {\n key: \"value\",\n value: function value() {\n return this._ || null;\n }\n }]);\n\n return Path;\n}();\n\nexport { Path as default };","import _classCallCheck from \"/Users/brianmiddleton/dev/2020-rails-survey-site/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\";\nimport _createClass from \"/Users/brianmiddleton/dev/2020-rails-survey-site/node_modules/@babel/runtime/helpers/esm/createClass.js\";\n\nvar Polygon = /*#__PURE__*/function () {\n function Polygon() {\n _classCallCheck(this, Polygon);\n\n this._ = [];\n }\n\n _createClass(Polygon, [{\n key: \"moveTo\",\n value: function moveTo(x, y) {\n this._.push([x, y]);\n }\n }, {\n key: \"closePath\",\n value: function closePath() {\n this._.push(this._[0].slice());\n }\n }, {\n key: \"lineTo\",\n value: function lineTo(x, y) {\n this._.push([x, y]);\n }\n }, {\n key: \"value\",\n value: function value() {\n return this._.length ? this._ : null;\n }\n }]);\n\n return Polygon;\n}();\n\nexport { Polygon as default };","import _slicedToArray from \"/Users/brianmiddleton/dev/2020-rails-survey-site/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\nimport _classCallCheck from \"/Users/brianmiddleton/dev/2020-rails-survey-site/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\";\nimport _createClass from \"/Users/brianmiddleton/dev/2020-rails-survey-site/node_modules/@babel/runtime/helpers/esm/createClass.js\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport _regeneratorRuntime from \"/Users/brianmiddleton/dev/2020-rails-survey-site/node_modules/@babel/runtime/regenerator/index.js\";\nimport \"core-js/modules/es.typed-array.set.js\";\nimport \"core-js/modules/es.typed-array.sort.js\";\nimport Path from \"./path.js\";\nimport Polygon from \"./polygon.js\";\n\nvar Voronoi = /*#__PURE__*/function () {\n function Voronoi(delaunay) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0, 0, 960, 500],\n _ref2 = _slicedToArray(_ref, 4),\n xmin = _ref2[0],\n ymin = _ref2[1],\n xmax = _ref2[2],\n ymax = _ref2[3];\n\n _classCallCheck(this, Voronoi);\n\n if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) throw new Error(\"invalid bounds\");\n this.delaunay = delaunay;\n this._circumcenters = new Float64Array(delaunay.points.length * 2);\n this.vectors = new Float64Array(delaunay.points.length * 2);\n this.xmax = xmax, this.xmin = xmin;\n this.ymax = ymax, this.ymin = ymin;\n\n this._init();\n }\n\n _createClass(Voronoi, [{\n key: \"update\",\n value: function update() {\n this.delaunay.update();\n\n this._init();\n\n return this;\n }\n }, {\n key: \"_init\",\n value: function _init() {\n var _this$delaunay = this.delaunay,\n points = _this$delaunay.points,\n hull = _this$delaunay.hull,\n triangles = _this$delaunay.triangles,\n vectors = this.vectors; // Compute circumcenters.\n\n var circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2);\n\n for (var i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) {\n var t1 = triangles[i] * 2;\n var t2 = triangles[i + 1] * 2;\n var t3 = triangles[i + 2] * 2;\n var _x = points[t1];\n var _y = points[t1 + 1];\n var x2 = points[t2];\n var y2 = points[t2 + 1];\n var x3 = points[t3];\n var y3 = points[t3 + 1];\n var dx = x2 - _x;\n var dy = y2 - _y;\n var ex = x3 - _x;\n var ey = y3 - _y;\n var bl = dx * dx + dy * dy;\n var cl = ex * ex + ey * ey;\n var ab = (dx * ey - dy * ex) * 2;\n\n if (!ab) {\n // degenerate case (collinear diagram)\n x = (_x + x3) / 2 - 1e8 * ey;\n y = (_y + y3) / 2 + 1e8 * ex;\n } else if (Math.abs(ab) < 1e-8) {\n // almost equal points (degenerate triangle)\n x = (_x + x3) / 2;\n y = (_y + y3) / 2;\n } else {\n var d = 1 / ab;\n x = _x + (ey * bl - dy * cl) * d;\n y = _y + (dx * cl - ex * bl) * d;\n }\n\n circumcenters[j] = x;\n circumcenters[j + 1] = y;\n } // Compute exterior cell rays.\n\n\n var h = hull[hull.length - 1];\n var p0,\n p1 = h * 4;\n var x0,\n x1 = points[2 * h];\n var y0,\n y1 = points[2 * h + 1];\n vectors.fill(0);\n\n for (var _i = 0; _i < hull.length; ++_i) {\n h = hull[_i];\n p0 = p1, x0 = x1, y0 = y1;\n p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1];\n vectors[p0 + 2] = vectors[p1] = y0 - y1;\n vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0;\n }\n }\n }, {\n key: \"render\",\n value: function render(context) {\n var buffer = context == null ? context = new Path() : undefined;\n var _this$delaunay2 = this.delaunay,\n halfedges = _this$delaunay2.halfedges,\n inedges = _this$delaunay2.inedges,\n hull = _this$delaunay2.hull,\n circumcenters = this.circumcenters,\n vectors = this.vectors;\n if (hull.length <= 1) return null;\n\n for (var i = 0, n = halfedges.length; i < n; ++i) {\n var j = halfedges[i];\n if (j < i) continue;\n var ti = Math.floor(i / 3) * 2;\n var tj = Math.floor(j / 3) * 2;\n var xi = circumcenters[ti];\n var yi = circumcenters[ti + 1];\n var xj = circumcenters[tj];\n var yj = circumcenters[tj + 1];\n\n this._renderSegment(xi, yi, xj, yj, context);\n }\n\n var h0,\n h1 = hull[hull.length - 1];\n\n for (var _i2 = 0; _i2 < hull.length; ++_i2) {\n h0 = h1, h1 = hull[_i2];\n var t = Math.floor(inedges[h1] / 3) * 2;\n var x = circumcenters[t];\n var y = circumcenters[t + 1];\n var v = h0 * 4;\n\n var p = this._project(x, y, vectors[v + 2], vectors[v + 3]);\n\n if (p) this._renderSegment(x, y, p[0], p[1], context);\n }\n\n return buffer && buffer.value();\n }\n }, {\n key: \"renderBounds\",\n value: function renderBounds(context) {\n var buffer = context == null ? context = new Path() : undefined;\n context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin);\n return buffer && buffer.value();\n }\n }, {\n key: \"renderCell\",\n value: function renderCell(i, context) {\n var buffer = context == null ? context = new Path() : undefined;\n\n var points = this._clip(i);\n\n if (points === null || !points.length) return;\n context.moveTo(points[0], points[1]);\n var n = points.length;\n\n while (points[0] === points[n - 2] && points[1] === points[n - 1] && n > 1) {\n n -= 2;\n }\n\n for (var _i3 = 2; _i3 < n; _i3 += 2) {\n if (points[_i3] !== points[_i3 - 2] || points[_i3 + 1] !== points[_i3 - 1]) context.lineTo(points[_i3], points[_i3 + 1]);\n }\n\n context.closePath();\n return buffer && buffer.value();\n }\n }, {\n key: \"cellPolygons\",\n value: /*#__PURE__*/_regeneratorRuntime.mark(function cellPolygons() {\n var points, i, n, cell;\n return _regeneratorRuntime.wrap(function cellPolygons$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n points = this.delaunay.points;\n i = 0, n = points.length / 2;\n\n case 2:\n if (!(i < n)) {\n _context.next = 11;\n break;\n }\n\n cell = this.cellPolygon(i);\n\n if (!cell) {\n _context.next = 8;\n break;\n }\n\n cell.index = i;\n _context.next = 8;\n return cell;\n\n case 8:\n ++i;\n _context.next = 2;\n break;\n\n case 11:\n case \"end\":\n return _context.stop();\n }\n }\n }, cellPolygons, this);\n })\n }, {\n key: \"cellPolygon\",\n value: function cellPolygon(i) {\n var polygon = new Polygon();\n this.renderCell(i, polygon);\n return polygon.value();\n }\n }, {\n key: \"_renderSegment\",\n value: function _renderSegment(x0, y0, x1, y1, context) {\n var S;\n\n var c0 = this._regioncode(x0, y0);\n\n var c1 = this._regioncode(x1, y1);\n\n if (c0 === 0 && c1 === 0) {\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) {\n context.moveTo(S[0], S[1]);\n context.lineTo(S[2], S[3]);\n }\n }\n }, {\n key: \"contains\",\n value: function contains(i, x, y) {\n if ((x = +x, x !== x) || (y = +y, y !== y)) return false;\n return this.delaunay._step(i, x, y) === i;\n }\n }, {\n key: \"neighbors\",\n value: /*#__PURE__*/_regeneratorRuntime.mark(function neighbors(i) {\n var ci, _iterator, _step, j, cj, ai, li, aj, lj;\n\n return _regeneratorRuntime.wrap(function neighbors$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n ci = this._clip(i);\n\n if (!ci) {\n _context2.next = 33;\n break;\n }\n\n _iterator = _createForOfIteratorHelper(this.delaunay.neighbors(i));\n _context2.prev = 3;\n\n _iterator.s();\n\n case 5:\n if ((_step = _iterator.n()).done) {\n _context2.next = 25;\n break;\n }\n\n j = _step.value;\n cj = this._clip(j); // find the common edge\n\n if (!cj) {\n _context2.next = 23;\n break;\n }\n\n ai = 0, li = ci.length;\n\n case 10:\n if (!(ai < li)) {\n _context2.next = 23;\n break;\n }\n\n aj = 0, lj = cj.length;\n\n case 12:\n if (!(aj < lj)) {\n _context2.next = 20;\n break;\n }\n\n if (!(ci[ai] == cj[aj] && ci[ai + 1] == cj[aj + 1] && ci[(ai + 2) % li] == cj[(aj + lj - 2) % lj] && ci[(ai + 3) % li] == cj[(aj + lj - 1) % lj])) {\n _context2.next = 17;\n break;\n }\n\n _context2.next = 16;\n return j;\n\n case 16:\n return _context2.abrupt(\"break\", 23);\n\n case 17:\n aj += 2;\n _context2.next = 12;\n break;\n\n case 20:\n ai += 2;\n _context2.next = 10;\n break;\n\n case 23:\n _context2.next = 5;\n break;\n\n case 25:\n _context2.next = 30;\n break;\n\n case 27:\n _context2.prev = 27;\n _context2.t0 = _context2[\"catch\"](3);\n\n _iterator.e(_context2.t0);\n\n case 30:\n _context2.prev = 30;\n\n _iterator.f();\n\n return _context2.finish(30);\n\n case 33:\n case \"end\":\n return _context2.stop();\n }\n }\n }, neighbors, this, [[3, 27, 30, 33]]);\n })\n }, {\n key: \"_cell\",\n value: function _cell(i) {\n var circumcenters = this.circumcenters,\n _this$delaunay3 = this.delaunay,\n inedges = _this$delaunay3.inedges,\n halfedges = _this$delaunay3.halfedges,\n triangles = _this$delaunay3.triangles;\n var e0 = inedges[i];\n if (e0 === -1) return null; // coincident point\n\n var points = [];\n var e = e0;\n\n do {\n var t = Math.floor(e / 3);\n points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]);\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) break; // bad triangulation\n\n e = halfedges[e];\n } while (e !== e0 && e !== -1);\n\n return points;\n }\n }, {\n key: \"_clip\",\n value: function _clip(i) {\n // degenerate case (1 valid point: return the box)\n if (i === 0 && this.delaunay.hull.length === 1) {\n return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n }\n\n var points = this._cell(i);\n\n if (points === null) return null;\n var V = this.vectors;\n var v = i * 4;\n return V[v] || V[v + 1] ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3]) : this._clipFinite(i, points);\n }\n }, {\n key: \"_clipFinite\",\n value: function _clipFinite(i, points) {\n var n = points.length;\n var P = null;\n var x0,\n y0,\n x1 = points[n - 2],\n y1 = points[n - 1];\n\n var c0,\n c1 = this._regioncode(x1, y1);\n\n var e0, e1;\n\n for (var j = 0; j < n; j += 2) {\n x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1];\n c0 = c1, c1 = this._regioncode(x1, y1);\n\n if (c0 === 0 && c1 === 0) {\n e0 = e1, e1 = 0;\n if (P) P.push(x1, y1);else P = [x1, y1];\n } else {\n var S = void 0,\n sx0 = void 0,\n sy0 = void 0,\n sx1 = void 0,\n sy1 = void 0;\n\n if (c0 === 0) {\n if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) continue;\n var _S = S;\n\n var _S2 = _slicedToArray(_S, 4);\n\n sx0 = _S2[0];\n sy0 = _S2[1];\n sx1 = _S2[2];\n sy1 = _S2[3];\n } else {\n if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) continue;\n var _S3 = S;\n\n var _S4 = _slicedToArray(_S3, 4);\n\n sx1 = _S4[0];\n sy1 = _S4[1];\n sx0 = _S4[2];\n sy0 = _S4[3];\n e0 = e1, e1 = this._edgecode(sx0, sy0);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n if (P) P.push(sx0, sy0);else P = [sx0, sy0];\n }\n\n e0 = e1, e1 = this._edgecode(sx1, sy1);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n if (P) P.push(sx1, sy1);else P = [sx1, sy1];\n }\n }\n\n if (P) {\n e0 = e1, e1 = this._edgecode(P[0], P[1]);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n }\n\n return P;\n }\n }, {\n key: \"_clipSegment\",\n value: function _clipSegment(x0, y0, x1, y1, c0, c1) {\n while (true) {\n if (c0 === 0 && c1 === 0) return [x0, y0, x1, y1];\n if (c0 & c1) return null;\n var x = void 0,\n y = void 0,\n c = c0 || c1;\n if (c & 8) x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax;else if (c & 4) x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin;else if (c & 2) y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax;else y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin;\n if (c0) x0 = x, y0 = y, c0 = this._regioncode(x0, y0);else x1 = x, y1 = y, c1 = this._regioncode(x1, y1);\n }\n }\n }, {\n key: \"_clipInfinite\",\n value: function _clipInfinite(i, points, vx0, vy0, vxn, vyn) {\n var P = Array.from(points),\n p;\n if (p = this._project(P[0], P[1], vx0, vy0)) P.unshift(p[0], p[1]);\n if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) P.push(p[0], p[1]);\n\n if (P = this._clipFinite(i, P)) {\n for (var j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) {\n c0 = c1, c1 = this._edgecode(P[j], P[j + 1]);\n if (c0 && c1) j = this._edge(i, c0, c1, P, j), n = P.length;\n }\n } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax];\n }\n\n return P;\n }\n }, {\n key: \"_edge\",\n value: function _edge(i, e0, e1, P, j) {\n while (e0 !== e1) {\n var x = void 0,\n y = void 0;\n\n switch (e0) {\n case 5:\n e0 = 4;\n continue;\n // top-left\n\n case 4:\n e0 = 6, x = this.xmax, y = this.ymin;\n break;\n // top\n\n case 6:\n e0 = 2;\n continue;\n // top-right\n\n case 2:\n e0 = 10, x = this.xmax, y = this.ymax;\n break;\n // right\n\n case 10:\n e0 = 8;\n continue;\n // bottom-right\n\n case 8:\n e0 = 9, x = this.xmin, y = this.ymax;\n break;\n // bottom\n\n case 9:\n e0 = 1;\n continue;\n // bottom-left\n\n case 1:\n e0 = 5, x = this.xmin, y = this.ymin;\n break;\n // left\n }\n\n if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) {\n P.splice(j, 0, x, y), j += 2;\n }\n }\n\n if (P.length > 4) {\n for (var _i4 = 0; _i4 < P.length; _i4 += 2) {\n var _j = (_i4 + 2) % P.length,\n k = (_i4 + 4) % P.length;\n\n if (P[_i4] === P[_j] && P[_j] === P[k] || P[_i4 + 1] === P[_j + 1] && P[_j + 1] === P[k + 1]) P.splice(_j, 2), _i4 -= 2;\n }\n }\n\n return j;\n }\n }, {\n key: \"_project\",\n value: function _project(x0, y0, vx, vy) {\n var t = Infinity,\n c,\n x,\n y;\n\n if (vy < 0) {\n // top\n if (y0 <= this.ymin) return null;\n if ((c = (this.ymin - y0) / vy) < t) y = this.ymin, x = x0 + (t = c) * vx;\n } else if (vy > 0) {\n // bottom\n if (y0 >= this.ymax) return null;\n if ((c = (this.ymax - y0) / vy) < t) y = this.ymax, x = x0 + (t = c) * vx;\n }\n\n if (vx > 0) {\n // right\n if (x0 >= this.xmax) return null;\n if ((c = (this.xmax - x0) / vx) < t) x = this.xmax, y = y0 + (t = c) * vy;\n } else if (vx < 0) {\n // left\n if (x0 <= this.xmin) return null;\n if ((c = (this.xmin - x0) / vx) < t) x = this.xmin, y = y0 + (t = c) * vy;\n }\n\n return [x, y];\n }\n }, {\n key: \"_edgecode\",\n value: function _edgecode(x, y) {\n return (x === this.xmin ? 1 : x === this.xmax ? 2 : 0) | (y === this.ymin ? 4 : y === this.ymax ? 8 : 0);\n }\n }, {\n key: \"_regioncode\",\n value: function _regioncode(x, y) {\n return (x < this.xmin ? 1 : x > this.xmax ? 2 : 0) | (y < this.ymin ? 4 : y > this.ymax ? 8 : 0);\n }\n }]);\n\n return Voronoi;\n}();\n\nexport { Voronoi as default };","import _classCallCheck from \"/Users/brianmiddleton/dev/2020-rails-survey-site/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\";\nimport _createClass from \"/Users/brianmiddleton/dev/2020-rails-survey-site/node_modules/@babel/runtime/helpers/esm/createClass.js\";\n\nvar _marked = /*#__PURE__*/_regeneratorRuntime.mark(flatIterable);\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport _regeneratorRuntime from \"/Users/brianmiddleton/dev/2020-rails-survey-site/node_modules/@babel/runtime/regenerator/index.js\";\nimport \"core-js/modules/es.typed-array.set.js\";\nimport \"core-js/modules/es.typed-array.sort.js\";\nimport \"core-js/modules/es.array.sort.js\";\nimport \"core-js/modules/es.math.hypot.js\";\nimport Delaunator from \"delaunator\";\nimport Path from \"./path.js\";\nimport Polygon from \"./polygon.js\";\nimport Voronoi from \"./voronoi.js\";\nvar tau = 2 * Math.PI,\n pow = Math.pow;\n\nfunction pointX(p) {\n return p[0];\n}\n\nfunction pointY(p) {\n return p[1];\n} // A triangulation is collinear if all its triangles have a non-null area\n\n\nfunction collinear(d) {\n var triangles = d.triangles,\n coords = d.coords;\n\n for (var i = 0; i < triangles.length; i += 3) {\n var a = 2 * triangles[i],\n b = 2 * triangles[i + 1],\n c = 2 * triangles[i + 2],\n cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1]) - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]);\n if (cross > 1e-10) return false;\n }\n\n return true;\n}\n\nfunction jitter(x, y, r) {\n return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r];\n}\n\nvar Delaunay = /*#__PURE__*/function () {\n function Delaunay(points) {\n _classCallCheck(this, Delaunay);\n\n this._delaunator = new Delaunator(points);\n this.inedges = new Int32Array(points.length / 2);\n this._hullIndex = new Int32Array(points.length / 2);\n this.points = this._delaunator.coords;\n\n this._init();\n }\n\n _createClass(Delaunay, [{\n key: \"update\",\n value: function update() {\n this._delaunator.update();\n\n this._init();\n\n return this;\n }\n }, {\n key: \"_init\",\n value: function _init() {\n var d = this._delaunator,\n points = this.points; // check for collinear\n\n if (d.hull && d.hull.length > 2 && collinear(d)) {\n this.collinear = Int32Array.from({\n length: points.length / 2\n }, function (_, i) {\n return i;\n }).sort(function (i, j) {\n return points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1];\n }); // for exact neighbors\n\n var e = this.collinear[0],\n f = this.collinear[this.collinear.length - 1],\n bounds = [points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1]],\n r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]);\n\n for (var i = 0, n = points.length / 2; i < n; ++i) {\n var p = jitter(points[2 * i], points[2 * i + 1], r);\n points[2 * i] = p[0];\n points[2 * i + 1] = p[1];\n }\n\n this._delaunator = new Delaunator(points);\n } else {\n delete this.collinear;\n }\n\n var halfedges = this.halfedges = this._delaunator.halfedges;\n var hull = this.hull = this._delaunator.hull;\n var triangles = this.triangles = this._delaunator.triangles;\n var inedges = this.inedges.fill(-1);\n\n var hullIndex = this._hullIndex.fill(-1); // Compute an index from each point to an (arbitrary) incoming halfedge\n // Used to give the first neighbor of each point; for this reason,\n // on the hull we give priority to exterior halfedges\n\n\n for (var _e = 0, _n = halfedges.length; _e < _n; ++_e) {\n var _p = triangles[_e % 3 === 2 ? _e - 2 : _e + 1];\n if (halfedges[_e] === -1 || inedges[_p] === -1) inedges[_p] = _e;\n }\n\n for (var _i = 0, _n2 = hull.length; _i < _n2; ++_i) {\n hullIndex[hull[_i]] = _i;\n } // degenerate case: 1 or 2 (distinct) points\n\n\n if (hull.length <= 2 && hull.length > 0) {\n this.triangles = new Int32Array(3).fill(-1);\n this.halfedges = new Int32Array(3).fill(-1);\n this.triangles[0] = hull[0];\n this.triangles[1] = hull[1];\n this.triangles[2] = hull[1];\n inedges[hull[0]] = 1;\n if (hull.length === 2) inedges[hull[1]] = 0;\n }\n }\n }, {\n key: \"voronoi\",\n value: function voronoi(bounds) {\n return new Voronoi(this, bounds);\n }\n }, {\n key: \"neighbors\",\n value: /*#__PURE__*/_regeneratorRuntime.mark(function neighbors(i) {\n var inedges, hull, _hullIndex, halfedges, triangles, collinear, l, e0, e, p0, p;\n\n return _regeneratorRuntime.wrap(function neighbors$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n inedges = this.inedges, hull = this.hull, _hullIndex = this._hullIndex, halfedges = this.halfedges, triangles = this.triangles, collinear = this.collinear; // degenerate case with several collinear points\n\n if (!collinear) {\n _context.next = 10;\n break;\n }\n\n l = collinear.indexOf(i);\n\n if (!(l > 0)) {\n _context.next = 6;\n break;\n }\n\n _context.next = 6;\n return collinear[l - 1];\n\n case 6:\n if (!(l < collinear.length - 1)) {\n _context.next = 9;\n break;\n }\n\n _context.next = 9;\n return collinear[l + 1];\n\n case 9:\n return _context.abrupt(\"return\");\n\n case 10:\n e0 = inedges[i];\n\n if (!(e0 === -1)) {\n _context.next = 13;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 13:\n // coincident point\n e = e0, p0 = -1;\n\n case 14:\n _context.next = 16;\n return p0 = triangles[e];\n\n case 16:\n e = e % 3 === 2 ? e - 2 : e + 1;\n\n if (!(triangles[e] !== i)) {\n _context.next = 19;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 19:\n // bad triangulation\n e = halfedges[e];\n\n if (!(e === -1)) {\n _context.next = 26;\n break;\n }\n\n p = hull[(_hullIndex[i] + 1) % hull.length];\n\n if (!(p !== p0)) {\n _context.next = 25;\n break;\n }\n\n _context.next = 25;\n return p;\n\n case 25:\n return _context.abrupt(\"return\");\n\n case 26:\n if (e !== e0) {\n _context.next = 14;\n break;\n }\n\n case 27:\n case \"end\":\n return _context.stop();\n }\n }\n }, neighbors, this);\n })\n }, {\n key: \"find\",\n value: function find(x, y) {\n var i = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n if ((x = +x, x !== x) || (y = +y, y !== y)) return -1;\n var i0 = i;\n var c;\n\n while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) {\n i = c;\n }\n\n return c;\n }\n }, {\n key: \"_step\",\n value: function _step(i, x, y) {\n var inedges = this.inedges,\n hull = this.hull,\n _hullIndex = this._hullIndex,\n halfedges = this.halfedges,\n triangles = this.triangles,\n points = this.points;\n if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1);\n var c = i;\n var dc = pow(x - points[i * 2], 2) + pow(y - points[i * 2 + 1], 2);\n var e0 = inedges[i];\n var e = e0;\n\n do {\n var t = triangles[e];\n var dt = pow(x - points[t * 2], 2) + pow(y - points[t * 2 + 1], 2);\n if (dt < dc) dc = dt, c = t;\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) break; // bad triangulation\n\n e = halfedges[e];\n\n if (e === -1) {\n e = hull[(_hullIndex[i] + 1) % hull.length];\n\n if (e !== t) {\n if (pow(x - points[e * 2], 2) + pow(y - points[e * 2 + 1], 2) < dc) return e;\n }\n\n break;\n }\n } while (e !== e0);\n\n return c;\n }\n }, {\n key: \"render\",\n value: function render(context) {\n var buffer = context == null ? context = new Path() : undefined;\n var points = this.points,\n halfedges = this.halfedges,\n triangles = this.triangles;\n\n for (var i = 0, n = halfedges.length; i < n; ++i) {\n var j = halfedges[i];\n if (j < i) continue;\n var ti = triangles[i] * 2;\n var tj = triangles[j] * 2;\n context.moveTo(points[ti], points[ti + 1]);\n context.lineTo(points[tj], points[tj + 1]);\n }\n\n this.renderHull(context);\n return buffer && buffer.value();\n }\n }, {\n key: \"renderPoints\",\n value: function renderPoints(context) {\n var r = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n var buffer = context == null ? context = new Path() : undefined;\n var points = this.points;\n\n for (var i = 0, n = points.length; i < n; i += 2) {\n var x = points[i],\n y = points[i + 1];\n context.moveTo(x + r, y);\n context.arc(x, y, r, 0, tau);\n }\n\n return buffer && buffer.value();\n }\n }, {\n key: \"renderHull\",\n value: function renderHull(context) {\n var buffer = context == null ? context = new Path() : undefined;\n var hull = this.hull,\n points = this.points;\n var h = hull[0] * 2,\n n = hull.length;\n context.moveTo(points[h], points[h + 1]);\n\n for (var i = 1; i < n; ++i) {\n var _h = 2 * hull[i];\n\n context.lineTo(points[_h], points[_h + 1]);\n }\n\n context.closePath();\n return buffer && buffer.value();\n }\n }, {\n key: \"hullPolygon\",\n value: function hullPolygon() {\n var polygon = new Polygon();\n this.renderHull(polygon);\n return polygon.value();\n }\n }, {\n key: \"renderTriangle\",\n value: function renderTriangle(i, context) {\n var buffer = context == null ? context = new Path() : undefined;\n var points = this.points,\n triangles = this.triangles;\n var t0 = triangles[i *= 3] * 2;\n var t1 = triangles[i + 1] * 2;\n var t2 = triangles[i + 2] * 2;\n context.moveTo(points[t0], points[t0 + 1]);\n context.lineTo(points[t1], points[t1 + 1]);\n context.lineTo(points[t2], points[t2 + 1]);\n context.closePath();\n return buffer && buffer.value();\n }\n }, {\n key: \"trianglePolygons\",\n value: /*#__PURE__*/_regeneratorRuntime.mark(function trianglePolygons() {\n var triangles, i, n;\n return _regeneratorRuntime.wrap(function trianglePolygons$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n triangles = this.triangles;\n i = 0, n = triangles.length / 3;\n\n case 2:\n if (!(i < n)) {\n _context2.next = 8;\n break;\n }\n\n _context2.next = 5;\n return this.trianglePolygon(i);\n\n case 5:\n ++i;\n _context2.next = 2;\n break;\n\n case 8:\n case \"end\":\n return _context2.stop();\n }\n }\n }, trianglePolygons, this);\n })\n }, {\n key: \"trianglePolygon\",\n value: function trianglePolygon(i) {\n var polygon = new Polygon();\n this.renderTriangle(i, polygon);\n return polygon.value();\n }\n }], [{\n key: \"from\",\n value: function from(points) {\n var fx = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : pointX;\n var fy = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : pointY;\n var that = arguments.length > 3 ? arguments[3] : undefined;\n return new Delaunay(\"length\" in points ? flatArray(points, fx, fy, that) : Float64Array.from(flatIterable(points, fx, fy, that)));\n }\n }]);\n\n return Delaunay;\n}();\n\nexport { Delaunay as default };\n\nfunction flatArray(points, fx, fy, that) {\n var n = points.length;\n var array = new Float64Array(n * 2);\n\n for (var i = 0; i < n; ++i) {\n var p = points[i];\n array[i * 2] = fx.call(that, p, i, points);\n array[i * 2 + 1] = fy.call(that, p, i, points);\n }\n\n return array;\n}\n\nfunction flatIterable(points, fx, fy, that) {\n var i, _iterator, _step2, p;\n\n return _regeneratorRuntime.wrap(function flatIterable$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n i = 0;\n _iterator = _createForOfIteratorHelper(points);\n _context3.prev = 2;\n\n _iterator.s();\n\n case 4:\n if ((_step2 = _iterator.n()).done) {\n _context3.next = 13;\n break;\n }\n\n p = _step2.value;\n _context3.next = 8;\n return fx.call(that, p, i, points);\n\n case 8:\n _context3.next = 10;\n return fy.call(that, p, i, points);\n\n case 10:\n ++i;\n\n case 11:\n _context3.next = 4;\n break;\n\n case 13:\n _context3.next = 18;\n break;\n\n case 15:\n _context3.prev = 15;\n _context3.t0 = _context3[\"catch\"](2);\n\n _iterator.e(_context3.t0);\n\n case 18:\n _context3.prev = 18;\n\n _iterator.f();\n\n return _context3.finish(18);\n\n case 21:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _marked, null, [[2, 15, 18, 21]]);\n}","import React, { Fragment, useMemo, useRef, useState, useCallback } from 'react';\nimport { withTheme, withDimensions, Container, SvgWrapper, ResponsiveWrapper, getRelativeCursor } from '@nivo/core';\nimport { scaleLinear } from 'd3-scale';\nimport { Delaunay } from 'd3-delaunay';\nimport compose from 'recompose/compose';\nimport defaultProps from 'recompose/defaultProps';\nimport withPropsOnChange from 'recompose/withPropsOnChange';\nimport pure from 'recompose/pure';\nimport PropTypes from 'prop-types';\nvar VoronoiPropTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired\n })).isRequired,\n xDomain: PropTypes.arrayOf(PropTypes.number).isRequired,\n yDomain: PropTypes.arrayOf(PropTypes.number).isRequired,\n layers: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['links', 'cells', 'points', 'bounds']), PropTypes.func])).isRequired,\n enableLinks: PropTypes.bool.isRequired,\n linkLineWidth: PropTypes.number.isRequired,\n linkLineColor: PropTypes.string.isRequired,\n enableCells: PropTypes.bool.isRequired,\n cellLineWidth: PropTypes.number.isRequired,\n cellLineColor: PropTypes.string.isRequired,\n enablePoints: PropTypes.bool.isRequired,\n pointSize: PropTypes.number.isRequired,\n pointColor: PropTypes.string.isRequired,\n delaunay: PropTypes.object.isRequired,\n voronoi: PropTypes.object.isRequired\n};\nvar VoronoiDefaultProps = {\n xDomain: [0, 1],\n yDomain: [0, 1],\n layers: ['links', 'cells', 'points', 'bounds'],\n enableLinks: false,\n linkLineWidth: 1,\n linkLineColor: '#bbb',\n enableCells: true,\n cellLineWidth: 2,\n cellLineColor: '#000',\n enablePoints: true,\n pointSize: 4,\n pointColor: '#666'\n};\n\nvar enhance = function enhance(Component) {\n return compose(defaultProps(VoronoiDefaultProps), withTheme(), withDimensions(), withPropsOnChange(['xDomain', 'yDomain', 'width', 'height'], function (_ref) {\n var xDomain = _ref.xDomain,\n yDomain = _ref.yDomain,\n width = _ref.width,\n height = _ref.height;\n return {\n xScale: scaleLinear().domain(xDomain).range([0, width]),\n yScale: scaleLinear().domain(yDomain).range([0, height])\n };\n }), withPropsOnChange(['data', 'xScale', 'yScale'], function (_ref2) {\n var data = _ref2.data,\n xScale = _ref2.xScale,\n yScale = _ref2.yScale;\n return {\n scaledPoints: data.map(function (d) {\n return {\n data: d,\n x: xScale(d.x),\n y: yScale(d.y)\n };\n })\n };\n }), withPropsOnChange(['scaledPoints', 'width', 'height'], function (_ref3) {\n var scaledPoints = _ref3.scaledPoints,\n width = _ref3.width,\n height = _ref3.height;\n var delaunay = Delaunay.from(scaledPoints.map(function (p) {\n return [p.x, p.y];\n }));\n var voronoi = delaunay.voronoi([0, 0, width, height]);\n return {\n delaunay: delaunay,\n voronoi: voronoi\n };\n }), pure)(Component);\n};\n\nvar Voronoi = function Voronoi(_ref) {\n var delaunay = _ref.delaunay,\n voronoi = _ref.voronoi,\n data = _ref.data,\n layers = _ref.layers,\n margin = _ref.margin,\n width = _ref.width,\n height = _ref.height,\n outerWidth = _ref.outerWidth,\n outerHeight = _ref.outerHeight,\n enableLinks = _ref.enableLinks,\n linkLineWidth = _ref.linkLineWidth,\n linkLineColor = _ref.linkLineColor,\n enableCells = _ref.enableCells,\n cellLineWidth = _ref.cellLineWidth,\n cellLineColor = _ref.cellLineColor,\n enablePoints = _ref.enablePoints,\n pointSize = _ref.pointSize,\n pointColor = _ref.pointColor,\n theme = _ref.theme;\n var context = {\n width: width,\n height: height,\n data: data,\n delaunay: delaunay,\n voronoi: voronoi\n };\n var layerById = {\n bounds: React.createElement(\"path\", {\n key: \"bounds\",\n fill: \"none\",\n stroke: cellLineColor,\n strokeWidth: cellLineWidth,\n d: voronoi.renderBounds()\n })\n };\n\n if (enableLinks === true) {\n layerById.links = React.createElement(\"path\", {\n key: \"links\",\n stroke: linkLineColor,\n strokeWidth: linkLineWidth,\n fill: \"none\",\n d: delaunay.render()\n });\n }\n\n if (enableCells === true) {\n layerById.cells = React.createElement(\"path\", {\n key: \"cells\",\n d: voronoi.render(),\n fill: \"none\",\n stroke: cellLineColor,\n strokeWidth: cellLineWidth\n });\n }\n\n if (enablePoints === true) {\n layerById.points = React.createElement(\"path\", {\n key: \"points\",\n stroke: \"none\",\n fill: pointColor,\n d: delaunay.renderPoints(undefined, pointSize / 2)\n });\n }\n\n return React.createElement(Container, {\n isInteractive: false,\n theme: theme,\n animate: false\n }, function () {\n return React.createElement(SvgWrapper, {\n width: outerWidth,\n height: outerHeight,\n margin: margin,\n theme: theme\n }, layers.map(function (layer, i) {\n if (typeof layer === 'function') {\n return React.createElement(Fragment, {\n key: i\n }, layer(context));\n }\n\n return layerById[layer];\n }));\n });\n};\n\nvar Voronoi$1 = enhance(Voronoi);\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar ResponsiveVoronoi = function ResponsiveVoronoi(props) {\n return React.createElement(ResponsiveWrapper, null, function (_ref) {\n var width = _ref.width,\n height = _ref.height;\n return React.createElement(Voronoi$1, _extends({\n width: width,\n height: height\n }, props));\n });\n};\n\nvar getAccessor = function getAccessor(directive) {\n return typeof directive === 'function' ? directive : function (d) {\n return d[directive];\n };\n};\n\nvar computeMeshPoints = function computeMeshPoints(_ref) {\n var points = _ref.points,\n _ref$x = _ref.x,\n x = _ref$x === void 0 ? 'x' : _ref$x,\n _ref$y = _ref.y,\n y = _ref$y === void 0 ? 'y' : _ref$y;\n var getX = getAccessor(x);\n var getY = getAccessor(y);\n return points.map(function (p) {\n return [getX(p), getY(p)];\n });\n};\n\nvar computeMesh = function computeMesh(_ref2) {\n var points = _ref2.points,\n width = _ref2.width,\n height = _ref2.height,\n debug = _ref2.debug;\n var delaunay = Delaunay.from(points);\n var voronoi = debug === true ? delaunay.voronoi([0, 0, width, height]) : undefined;\n return {\n delaunay: delaunay,\n voronoi: voronoi\n };\n};\n\nvar useVoronoiMesh = function useVoronoiMesh(_ref) {\n var points = _ref.points,\n x = _ref.x,\n y = _ref.y,\n width = _ref.width,\n height = _ref.height,\n debug = _ref.debug;\n var points2d = useMemo(function () {\n return computeMeshPoints({\n points: points,\n x: x,\n y: y\n });\n }, [points, x, y]);\n return useMemo(function () {\n return computeMesh({\n points: points2d,\n width: width,\n height: height,\n debug: debug\n });\n }, [points2d, width, height, debug]);\n};\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar Mesh = function Mesh(_ref) {\n var nodes = _ref.nodes,\n width = _ref.width,\n height = _ref.height,\n x = _ref.x,\n y = _ref.y,\n debug = _ref.debug,\n onMouseEnter = _ref.onMouseEnter,\n onMouseMove = _ref.onMouseMove,\n onMouseLeave = _ref.onMouseLeave,\n onClick = _ref.onClick;\n var elementRef = useRef(null);\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n currentIndex = _useState2[0],\n setCurrentIndex = _useState2[1];\n\n var _useVoronoiMesh = useVoronoiMesh({\n points: nodes,\n x: x,\n y: y,\n width: width,\n height: height,\n debug: debug\n }),\n delaunay = _useVoronoiMesh.delaunay,\n voronoi = _useVoronoiMesh.voronoi;\n\n var voronoiPath = useMemo(function () {\n return debug ? voronoi.render() : undefined;\n });\n var getIndexAndNodeFromEvent = useCallback(function (event) {\n var _getRelativeCursor = getRelativeCursor(elementRef.current, event),\n _getRelativeCursor2 = _slicedToArray(_getRelativeCursor, 2),\n x = _getRelativeCursor2[0],\n y = _getRelativeCursor2[1];\n\n var index = delaunay.find(x, y);\n return [index, index !== undefined ? nodes[index] : null];\n }, [delaunay]);\n var handleMouseEnter = useCallback(function (event) {\n var _getIndexAndNodeFromE = getIndexAndNodeFromEvent(event),\n _getIndexAndNodeFromE2 = _slicedToArray(_getIndexAndNodeFromE, 2),\n index = _getIndexAndNodeFromE2[0],\n node = _getIndexAndNodeFromE2[1];\n\n if (currentIndex !== index) setCurrentIndex(index);\n node && onMouseEnter && onMouseEnter(node, event);\n }, [getIndexAndNodeFromEvent, setCurrentIndex]);\n var handleMouseMove = useCallback(function (event) {\n var _getIndexAndNodeFromE3 = getIndexAndNodeFromEvent(event),\n _getIndexAndNodeFromE4 = _slicedToArray(_getIndexAndNodeFromE3, 2),\n index = _getIndexAndNodeFromE4[0],\n node = _getIndexAndNodeFromE4[1];\n\n if (currentIndex !== index) setCurrentIndex(index);\n node && onMouseMove && onMouseMove(node, event);\n }, [getIndexAndNodeFromEvent, setCurrentIndex]);\n var handleMouseLeave = useCallback(function (event) {\n setCurrentIndex(null);\n\n if (onMouseLeave) {\n var previousNode;\n\n if (currentIndex !== undefined && currentIndex !== null) {\n previousNode = nodes[currentIndex];\n }\n\n previousNode && onMouseLeave(previousNode, event);\n }\n }, [setCurrentIndex, currentIndex, nodes]);\n var handleClick = useCallback(function (event) {\n var _getIndexAndNodeFromE5 = getIndexAndNodeFromEvent(event),\n _getIndexAndNodeFromE6 = _slicedToArray(_getIndexAndNodeFromE5, 2),\n index = _getIndexAndNodeFromE6[0],\n node = _getIndexAndNodeFromE6[1];\n\n if (currentIndex !== index) setCurrentIndex(index);\n onClick && onClick(node, event);\n }, [getIndexAndNodeFromEvent, setCurrentIndex]);\n return React.createElement(\"g\", {\n ref: elementRef\n }, debug && React.createElement(\"path\", {\n d: voronoiPath,\n stroke: \"red\",\n strokeWidth: 1,\n opacity: 0.75\n }), currentIndex !== null && debug && React.createElement(\"path\", {\n fill: \"red\",\n opacity: 0.35,\n d: voronoi.renderCell(currentIndex)\n }), React.createElement(\"rect\", {\n width: width,\n height: height,\n fill: \"red\",\n opacity: 0,\n style: {\n cursor: 'auto'\n },\n onMouseEnter: handleMouseEnter,\n onMouseMove: handleMouseMove,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick\n }));\n};\n\nMesh.defaultProps = {\n x: 'x',\n y: 'y',\n debug: false\n};\n\nvar renderVoronoiToCanvas = function renderVoronoiToCanvas(ctx, voronoi) {\n ctx.save();\n ctx.globalAlpha = 0.75;\n ctx.beginPath();\n voronoi.render(ctx);\n ctx.strokeStyle = 'red';\n ctx.lineWidth = 1;\n ctx.stroke();\n ctx.restore();\n};\n\nvar renderVoronoiCellToCanvas = function renderVoronoiCellToCanvas(ctx, voronoi, index) {\n ctx.save();\n ctx.globalAlpha = 0.35;\n ctx.beginPath();\n voronoi.renderCell(index, ctx);\n ctx.fillStyle = 'red';\n ctx.fill();\n ctx.restore();\n};\n\nexport { Mesh, ResponsiveVoronoi, Voronoi$1 as Voronoi, VoronoiDefaultProps, VoronoiPropTypes, computeMesh, computeMeshPoints, renderVoronoiCellToCanvas, renderVoronoiToCanvas, useVoronoiMesh };","export default function (a, b) {\n return a = +a, b = +b, function (t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","var baseDifference = require('./_baseDifference'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\nvar without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n});\n\nmodule.exports = without;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","import { cubehelix } from \"d3-color\";\nimport { interpolateCubehelixLong } from \"d3-interpolate\";\nexport var warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\nexport var cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\nvar c = cubehelix();\nexport default function (t) {\n if (t < 0 || t > 1) t -= Math.floor(t);\n var ts = Math.abs(t - 0.5);\n c.h = 360 * t - 100;\n c.s = 1.5 - 1.5 * ts;\n c.l = 0.8 - 0.9 * ts;\n return c + \"\";\n}","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","import { cubehelix } from \"d3-color\";\nimport { interpolateCubehelixLong } from \"d3-interpolate\";\nexport default interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));","\"use strict\";\n\nrequire(\"core-js/modules/es.array.reduce.js\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar compose = function compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n }, function (arg) {\n return arg;\n });\n};\n\nvar _default = compose;\nexports.default = _default;","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"e0ecf49ebcda8856a7\", \"edf8fbb3cde38c96c688419d\", \"edf8fbb3cde38c96c68856a7810f7c\", \"edf8fbbfd3e69ebcda8c96c68856a7810f7c\", \"edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b\", \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b\", \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b\").map(colors);\nexport default ramp(scheme);","export default function (constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n\n for (var key in definition) {\n prototype[key] = definition[key];\n }\n\n return prototype;\n}","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsDate = require('./_baseIsDate'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsDate = nodeUtil && nodeUtil.isDate;\n\n/**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\nvar isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\nmodule.exports = isDate;\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"fde0ddfa9fb5c51b8a\", \"feebe2fbb4b9f768a1ae017e\", \"feebe2fbb4b9f768a1c51b8a7a0177\", \"feebe2fcc5c0fa9fb5f768a1c51b8a7a0177\", \"feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177\", \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177\", \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a\").map(colors);\nexport default ramp(scheme);","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"ef8a62f7f7f767a9cf\", \"ca0020f4a58292c5de0571b0\", \"ca0020f4a582f7f7f792c5de0571b0\", \"b2182bef8a62fddbc7d1e5f067a9cf2166ac\", \"b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac\", \"b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac\", \"b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac\", \"67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061\", \"67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061\").map(colors);\nexport default ramp(scheme);","var baseCreate = require('./_baseCreate'),\n baseLodash = require('./_baseLodash');\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\nfunction LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n}\n\n// Ensure `LazyWrapper` is an instance of `baseLodash`.\nLazyWrapper.prototype = baseCreate(baseLodash.prototype);\nLazyWrapper.prototype.constructor = LazyWrapper;\n\nmodule.exports = LazyWrapper;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/**\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 * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\n\n\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n } // Test for A's keys different from B.\n\n\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","// currently used to initiate the velocity style object to 0\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = mapToZero;\n\nfunction mapToZero(obj) {\n var ret = {};\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n ret[key] = 0;\n }\n }\n\n return ret;\n}\n\nmodule.exports = exports['default'];","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","export default function (specifier) {\n var n = specifier.length / 6 | 0,\n colors = new Array(n),\n i = 0;\n\n while (i < n) {\n colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n }\n\n return colors;\n}","var t0 = new Date(),\n t1 = new Date();\nexport default function newInterval(floori, offseti, count, field) {\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date() : new Date(+date)), date;\n }\n\n interval.floor = function (date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function (date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function (date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function (date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function (start, stop, step) {\n var range = [],\n previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n\n do {\n range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n } while (previous < start && start < stop);\n\n return range;\n };\n\n interval.filter = function (test) {\n return newInterval(function (date) {\n if (date >= date) while (floori(date), !test(date)) {\n date.setTime(date - 1);\n }\n }, function (date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n\n }\n }\n });\n };\n\n if (count) {\n interval.count = function (start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function (step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? function (d) {\n return field(d) % step === 0;\n } : function (d) {\n return interval.count(0, d) % step === 0;\n });\n };\n }\n\n return interval;\n}","import interval from \"./interval.js\";\nvar millisecond = interval(function () {// noop\n}, function (date, step) {\n date.setTime(+date + step);\n}, function (start, end) {\n return end - start;\n}); // An optimized implementation for this simple case.\n\nmillisecond.every = function (k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function (date) {\n date.setTime(Math.floor(date / k) * k);\n }, function (date, step) {\n date.setTime(+date + step * k);\n }, function (start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;","import interval from \"./interval.js\";\nimport { durationSecond } from \"./duration.js\";\nvar second = interval(function (date) {\n date.setTime(date - date.getMilliseconds());\n}, function (date, step) {\n date.setTime(+date + step * durationSecond);\n}, function (start, end) {\n return (end - start) / durationSecond;\n}, function (date) {\n return date.getUTCSeconds();\n});\nexport default second;\nexport var seconds = second.range;","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;","import interval from \"./interval.js\";\nimport { durationMinute, durationSecond } from \"./duration.js\";\nvar minute = interval(function (date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getMinutes();\n});\nexport default minute;\nexport var minutes = minute.range;","import interval from \"./interval.js\";\nimport { durationMinute } from \"./duration.js\";\nvar utcMinute = interval(function (date) {\n date.setUTCSeconds(0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getUTCMinutes();\n});\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;","import interval from \"./interval.js\";\nimport { durationHour, durationMinute, durationSecond } from \"./duration.js\";\nvar hour = interval(function (date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function (date, step) {\n date.setTime(+date + step * durationHour);\n}, function (start, end) {\n return (end - start) / durationHour;\n}, function (date) {\n return date.getHours();\n});\nexport default hour;\nexport var hours = hour.range;","import interval from \"./interval.js\";\nimport { durationHour } from \"./duration.js\";\nvar utcHour = interval(function (date) {\n date.setUTCMinutes(0, 0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationHour);\n}, function (start, end) {\n return (end - start) / durationHour;\n}, function (date) {\n return date.getUTCHours();\n});\nexport default utcHour;\nexport var utcHours = utcHour.range;","import interval from \"./interval.js\";\nimport { durationDay, durationMinute } from \"./duration.js\";\nvar day = interval(function (date) {\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setDate(date.getDate() + step);\n}, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function (date) {\n return date.getDate() - 1;\n});\nexport default day;\nexport var days = day.range;","import interval from \"./interval.js\";\nimport { durationDay } from \"./duration.js\";\nvar utcDay = interval(function (date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function (start, end) {\n return (end - start) / durationDay;\n}, function (date) {\n return date.getUTCDate() - 1;\n});\nexport default utcDay;\nexport var utcDays = utcDay.range;","import interval from \"./interval.js\";\nimport { durationMinute, durationWeek } from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function (date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;","import interval from \"./interval.js\";\nimport { durationWeek } from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function (date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function (start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;","import interval from \"./interval.js\";\nvar month = interval(function (date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setMonth(date.getMonth() + step);\n}, function (start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function (date) {\n return date.getMonth();\n});\nexport default month;\nexport var months = month.range;","import interval from \"./interval.js\";\nvar utcMonth = interval(function (date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function (start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function (date) {\n return date.getUTCMonth();\n});\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;","import interval from \"./interval.js\";\nvar year = interval(function (date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function (start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function (date) {\n return date.getFullYear();\n}); // An optimized implementation for this simple case.\n\nyear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;","import interval from \"./interval.js\";\nvar utcYear = interval(function (date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function (start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function (date) {\n return date.getUTCFullYear();\n}); // An optimized implementation for this simple case.\n\nutcYear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;","import { timeDay, timeSunday, timeMonday, timeThursday, timeYear, utcDay, utcSunday, utcMonday, utcThursday, utcYear } from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {\n y: y,\n m: m,\n d: d,\n H: 0,\n M: 0,\n S: 0,\n L: 0\n };\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n }; // These recursive directive definitions must be deferred.\n\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function (date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function (string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week,\n day;\n if (i != string.length) return null; // If a UNIX timestamp is specified, return it.\n\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0)); // If this is utcParse, never use the local timezone.\n\n if (Z && !(\"Z\" in d)) d.Z = 0; // The am-pm flag is 0 for AM, and 1 for PM.\n\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12; // If the month was not specified, inherit from the quarter.\n\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0; // Convert day-of-week and week-of-year to day-of-year.\n\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n } // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n\n\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n } // Otherwise, all fields are in local time.\n\n\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || (j = parse(d, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function format(specifier) {\n var f = newFormat(specifier += \"\", formats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n parse: function parse(specifier) {\n var p = newParse(specifier += \"\", false);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n },\n utcFormat: function utcFormat(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n utcParse: function utcParse(specifier) {\n var p = newParse(specifier += \"\", true);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n }\n };\n}\nvar pads = {\n \"-\": \"\",\n \"_\": \" \",\n \"0\": \"0\"\n},\n numberRe = /^\\s*\\d+/,\n // note: ignores next directive\npercentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {},\n i = -1,\n n = names.length;\n\n while (++i < n) {\n map[names[i].toLowerCase()] = i;\n }\n\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction 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, \"+\")) + pad(z / 60 | 0, \"0\", 2) + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction 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}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}","export default function (x) {\n return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString(\"en\").replace(/,/g, \"\") : x.toString(10);\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].\n\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n\n var i,\n coefficient = x.slice(0, i); // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n\n return [coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, +x.slice(i + 1)];\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport default function (x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function () {\n return this.fill + this.align + this.sign + this.symbol + (this.zero ? \"0\" : \"\") + (this.width === undefined ? \"\" : Math.max(1, this.width | 0)) + (this.comma ? \",\" : \"\") + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0)) + (this.trim ? \"~\" : \"\") + this.type;\n};","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function (s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\":\n i0 = i1 = i;\n break;\n\n case \"0\":\n if (i0 === 0) i0 = i;\n i1 = i;\n break;\n\n default:\n if (!+s[i]) break out;\n if (i0 > 0) i0 = 0;\n break;\n }\n }\n\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport var prefixExponent;\nexport default function (x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join(\"0\") : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i) : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var format;\nexport var formatPrefix;\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport default function (x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\nexport default {\n \"%\": function _(x, p) {\n return (x * 100).toFixed(p);\n },\n \"b\": function b(x) {\n return Math.round(x).toString(2);\n },\n \"c\": function c(x) {\n return x + \"\";\n },\n \"d\": formatDecimal,\n \"e\": function e(x, p) {\n return x.toExponential(p);\n },\n \"f\": function f(x, p) {\n return x.toFixed(p);\n },\n \"g\": function g(x, p) {\n return x.toPrecision(p);\n },\n \"o\": function o(x) {\n return Math.round(x).toString(8);\n },\n \"p\": function p(x, _p) {\n return formatRounded(x * 100, _p);\n },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function X(x) {\n return Math.round(x).toString(16).toUpperCase();\n },\n \"x\": function x(_x) {\n return Math.round(_x).toString(16);\n }\n};","export default function (x) {\n return x;\n}","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport { prefixExponent } from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\nvar map = Array.prototype.map,\n prefixes = [\"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"µ\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\nexport default function (locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type; // The \"n\" type is an alias for \",g\".\n\n if (type === \"n\") comma = true, type = \"g\"; // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\"; // If zero fill is specified, padding goes after sign and before digits.\n\n if (zero || fill === \"0\" && align === \"=\") zero = true, fill = \"0\", align = \"=\"; // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\"; // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type); // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n\n precision = precision === undefined ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i,\n n,\n c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value; // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n\n var valueNegative = value < 0 || 1 / value < 0; // Perform the initial formatting.\n\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision); // Trim insignificant zeros.\n\n if (trim) value = formatTrim(value); // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false; // Compute the prefix and suffix.\n\n valuePrefix = (valueNegative ? sign === \"(\" ? sign : minus : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\"); // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n\n if (maybeSuffix) {\n i = -1, n = value.length;\n\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n } // If the fill character is not \"0\", grouping is applied before padding.\n\n\n if (comma && !zero) value = group(value, Infinity); // Compute the padding.\n\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\"; // If the fill character is \"0\", grouping is applied after padding.\n\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\"; // Reconstruct the final output based on the desired alignment.\n\n switch (align) {\n case \"<\":\n value = valuePrefix + value + valueSuffix + padding;\n break;\n\n case \"=\":\n value = valuePrefix + padding + value + valueSuffix;\n break;\n\n case \"^\":\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n\n default:\n value = padding + valuePrefix + value + valueSuffix;\n break;\n }\n\n return numerals(value);\n }\n\n format.toString = function () {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function (value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}","export default function (grouping, thousands) {\n return function (value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}","export default function (numerals) {\n return function (value) {\n return value.replace(/[0-9]/g, function (i) {\n return numerals[+i];\n });\n };\n}","import React, { memo, useMemo, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { Motion, spring, TransitionMotion } from 'react-motion';\nimport { textPropsByEngine, useTheme, useMotionConfig } from '@nivo/core';\nimport isNumber from 'lodash/isNumber';\nimport { timeMillisecond, utcMillisecond, timeSecond, utcSecond, timeMinute, utcMinute, timeHour, utcHour, timeDay, utcDay, timeWeek, utcWeek, timeSunday, utcSunday, timeMonday, utcMonday, timeTuesday, utcTuesday, timeWednesday, utcWednesday, timeThursday, utcThursday, timeFriday, utcFriday, timeSaturday, utcSaturday, timeMonth, utcMonth, timeYear, utcYear } from 'd3-time';\nimport { timeFormat } from 'd3-time-format';\nimport { format } from 'd3-format';\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar centerScale = function centerScale(scale) {\n var bandwidth = scale.bandwidth();\n if (bandwidth === 0) return scale;\n var offset = bandwidth / 2;\n\n if (scale.round()) {\n offset = Math.round(offset);\n }\n\n return function (d) {\n return scale(d) + offset;\n };\n};\n\nvar timeByType = {\n millisecond: [timeMillisecond, utcMillisecond],\n second: [timeSecond, utcSecond],\n minute: [timeMinute, utcMinute],\n hour: [timeHour, utcHour],\n day: [timeDay, utcDay],\n week: [timeWeek, utcWeek],\n sunday: [timeSunday, utcSunday],\n monday: [timeMonday, utcMonday],\n tuesday: [timeTuesday, utcTuesday],\n wednesday: [timeWednesday, utcWednesday],\n thursday: [timeThursday, utcThursday],\n friday: [timeFriday, utcFriday],\n saturday: [timeSaturday, utcSaturday],\n month: [timeMonth, utcMonth],\n year: [timeYear, utcYear]\n};\nvar timeTypes = Object.keys(timeByType);\nvar timeIntervalRegexp = new RegExp(\"^every\\\\s*(\\\\d+)?\\\\s*(\".concat(timeTypes.join('|'), \")s?$\"), 'i');\n\nvar getScaleTicks = function getScaleTicks(scale, spec) {\n if (Array.isArray(spec)) {\n return spec;\n }\n\n if (scale.ticks) {\n if (spec === undefined) {\n return scale.ticks();\n }\n\n if (isNumber(spec)) {\n return scale.ticks(spec);\n }\n\n if (typeof spec === 'string') {\n var matches = spec.match(timeIntervalRegexp);\n\n if (matches) {\n var timeType = timeByType[matches[2]][scale.useUTC ? 1 : 0];\n\n if (matches[1] === undefined) {\n return scale.ticks(timeType);\n }\n\n return scale.ticks(timeType.every(Number(matches[1])));\n }\n\n throw new Error(\"Invalid tickValues: \".concat(spec));\n }\n }\n\n return scale.domain();\n};\n\nvar computeCartesianTicks = function computeCartesianTicks(_ref) {\n var axis = _ref.axis,\n scale = _ref.scale,\n ticksPosition = _ref.ticksPosition,\n tickValues = _ref.tickValues,\n tickSize = _ref.tickSize,\n tickPadding = _ref.tickPadding,\n tickRotation = _ref.tickRotation,\n _ref$engine = _ref.engine,\n engine = _ref$engine === void 0 ? 'svg' : _ref$engine;\n var values = getScaleTicks(scale, tickValues);\n var textProps = textPropsByEngine[engine];\n var position = scale.bandwidth ? centerScale(scale) : scale;\n var line = {\n lineX: 0,\n lineY: 0\n };\n var text = {\n textX: 0,\n textY: 0\n };\n var translate;\n var textAlign = textProps.align.center;\n var textBaseline = textProps.baseline.center;\n\n if (axis === 'x') {\n translate = function translate(d) {\n return {\n x: position(d),\n y: 0\n };\n };\n\n line.lineY = tickSize * (ticksPosition === 'after' ? 1 : -1);\n text.textY = (tickSize + tickPadding) * (ticksPosition === 'after' ? 1 : -1);\n\n if (ticksPosition === 'after') {\n textBaseline = textProps.baseline.top;\n } else {\n textBaseline = textProps.baseline.bottom;\n }\n\n if (tickRotation === 0) {\n textAlign = textProps.align.center;\n } else if (ticksPosition === 'after' && tickRotation < 0 || ticksPosition === 'before' && tickRotation > 0) {\n textAlign = textProps.align.right;\n textBaseline = textProps.baseline.center;\n } else if (ticksPosition === 'after' && tickRotation > 0 || ticksPosition === 'before' && tickRotation < 0) {\n textAlign = textProps.align.left;\n textBaseline = textProps.baseline.center;\n }\n } else {\n translate = function translate(d) {\n return {\n x: 0,\n y: position(d)\n };\n };\n\n line.lineX = tickSize * (ticksPosition === 'after' ? 1 : -1);\n text.textX = (tickSize + tickPadding) * (ticksPosition === 'after' ? 1 : -1);\n\n if (ticksPosition === 'after') {\n textAlign = textProps.align.left;\n } else {\n textAlign = textProps.align.right;\n }\n }\n\n var ticks = values.map(function (value) {\n return _objectSpread({\n key: value,\n value: value\n }, translate(value), line, text);\n });\n return {\n ticks: ticks,\n textAlign: textAlign,\n textBaseline: textBaseline\n };\n};\n\nvar getFormatter = function getFormatter(format$1, scale) {\n if (!format$1 || typeof format$1 === 'function') return format$1;\n\n if (scale.type === 'time') {\n var f = timeFormat(format$1);\n return function (d) {\n return f(new Date(d));\n };\n }\n\n return format(format$1);\n};\n\nvar computeGridLines = function computeGridLines(_ref2) {\n var width = _ref2.width,\n height = _ref2.height,\n scale = _ref2.scale,\n axis = _ref2.axis,\n _values = _ref2.values;\n var lineValues = Array.isArray(_values) ? _values : undefined;\n var lineCount = isNumber(_values) ? _values : undefined;\n var values = lineValues || getScaleTicks(scale, lineCount);\n var position = scale.bandwidth ? centerScale(scale) : scale;\n var lines;\n\n if (axis === 'x') {\n lines = values.map(function (v) {\n return {\n key: \"\".concat(v),\n x1: position(v),\n x2: position(v),\n y1: 0,\n y2: height\n };\n });\n } else if (axis === 'y') {\n lines = values.map(function (v) {\n return {\n key: \"\".concat(v),\n x1: 0,\n x2: width,\n y1: position(v),\n y2: position(v)\n };\n });\n }\n\n return lines;\n};\n\nvar axisPropTypes = {\n ticksPosition: PropTypes.oneOf(['before', 'after']),\n tickValues: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)])), PropTypes.string]),\n tickSize: PropTypes.number,\n tickPadding: PropTypes.number,\n tickRotation: PropTypes.number,\n format: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n renderTick: PropTypes.func,\n legend: PropTypes.node,\n legendPosition: PropTypes.oneOf(['start', 'middle', 'end']),\n legendOffset: PropTypes.number\n};\nvar axisPropType = PropTypes.shape(axisPropTypes);\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar AxisTick = function AxisTick(_ref) {\n var _value = _ref.value,\n x = _ref.x,\n y = _ref.y,\n opacity = _ref.opacity,\n rotate = _ref.rotate,\n format = _ref.format,\n lineX = _ref.lineX,\n lineY = _ref.lineY,\n _onClick = _ref.onClick,\n textX = _ref.textX,\n textY = _ref.textY,\n textBaseline = _ref.textBaseline,\n textAnchor = _ref.textAnchor;\n var theme = useTheme();\n var value = _value;\n\n if (format !== undefined) {\n value = format(value);\n }\n\n var gStyle = {\n opacity: opacity\n };\n\n if (_onClick) {\n gStyle['cursor'] = 'pointer';\n }\n\n return React.createElement(\"g\", _extends({\n transform: \"translate(\".concat(x, \",\").concat(y, \")\")\n }, _onClick ? {\n onClick: function onClick(e) {\n return _onClick(e, value);\n }\n } : {}, {\n style: gStyle\n }), React.createElement(\"line\", {\n x1: 0,\n x2: lineX,\n y1: 0,\n y2: lineY,\n style: theme.axis.ticks.line\n }), React.createElement(\"text\", {\n dominantBaseline: textBaseline,\n textAnchor: textAnchor,\n transform: \"translate(\".concat(textX, \",\").concat(textY, \") rotate(\").concat(rotate, \")\"),\n style: theme.axis.ticks.text\n }, value));\n};\n\nAxisTick.defaultProps = {\n opacity: 1,\n rotate: 0\n};\nvar AxisTick$1 = memo(AxisTick);\n\nfunction _extends$1() {\n _extends$1 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$1.apply(this, arguments);\n}\n\nfunction _objectSpread$1(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$1(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$1(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar willEnter = function willEnter() {\n return {\n rotate: 0,\n opacity: 0,\n x: 0,\n y: 0\n };\n};\n\nvar willLeave = function willLeave(springConfig) {\n return function (_ref) {\n var _ref$style = _ref.style,\n x = _ref$style.x,\n y = _ref$style.y,\n rotate = _ref$style.rotate;\n return {\n rotate: rotate,\n opacity: spring(0, springConfig),\n x: spring(x.val, springConfig),\n y: spring(y.val, springConfig)\n };\n };\n};\n\nvar defaultTickRenderer = function defaultTickRenderer(props) {\n return React.createElement(AxisTick$1, props);\n};\n\nvar Axis = function Axis(_ref2) {\n var axis = _ref2.axis,\n scale = _ref2.scale,\n x = _ref2.x,\n y = _ref2.y,\n length = _ref2.length,\n ticksPosition = _ref2.ticksPosition,\n tickValues = _ref2.tickValues,\n tickSize = _ref2.tickSize,\n tickPadding = _ref2.tickPadding,\n tickRotation = _ref2.tickRotation,\n format = _ref2.format,\n renderTick = _ref2.renderTick,\n legend = _ref2.legend,\n legendPosition = _ref2.legendPosition,\n legendOffset = _ref2.legendOffset,\n onClick = _ref2.onClick;\n var theme = useTheme();\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n\n var formatValue = useMemo(function () {\n return getFormatter(format, scale);\n }, [format, scale]);\n\n var _computeCartesianTick = computeCartesianTicks({\n axis: axis,\n scale: scale,\n ticksPosition: ticksPosition,\n tickValues: tickValues,\n tickSize: tickSize,\n tickPadding: tickPadding,\n tickRotation: tickRotation\n }),\n ticks = _computeCartesianTick.ticks,\n textAlign = _computeCartesianTick.textAlign,\n textBaseline = _computeCartesianTick.textBaseline;\n\n var legendNode = null;\n\n if (legend !== undefined) {\n var legendX = 0;\n var legendY = 0;\n var legendRotation = 0;\n var textAnchor;\n\n if (axis === 'y') {\n legendRotation = -90;\n legendX = legendOffset;\n\n if (legendPosition === 'start') {\n textAnchor = 'start';\n legendY = length;\n } else if (legendPosition === 'middle') {\n textAnchor = 'middle';\n legendY = length / 2;\n } else if (legendPosition === 'end') {\n textAnchor = 'end';\n }\n } else {\n legendY = legendOffset;\n\n if (legendPosition === 'start') {\n textAnchor = 'start';\n } else if (legendPosition === 'middle') {\n textAnchor = 'middle';\n legendX = length / 2;\n } else if (legendPosition === 'end') {\n textAnchor = 'end';\n legendX = length;\n }\n }\n\n legendNode = React.createElement(\"text\", {\n transform: \"translate(\".concat(legendX, \", \").concat(legendY, \") rotate(\").concat(legendRotation, \")\"),\n textAnchor: textAnchor,\n style: _objectSpread$1({\n dominantBaseline: 'central'\n }, theme.axis.legend.text)\n }, legend);\n }\n\n if (animate !== true) {\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(x, \",\").concat(y, \")\")\n }, ticks.map(function (tick, tickIndex) {\n return React.createElement(renderTick, _objectSpread$1({\n tickIndex: tickIndex,\n format: formatValue,\n rotate: tickRotation,\n textBaseline: textBaseline,\n textAnchor: textAlign\n }, tick, onClick ? {\n onClick: onClick\n } : {}));\n }), React.createElement(\"line\", {\n style: theme.axis.domain.line,\n x1: 0,\n x2: axis === 'x' ? length : 0,\n y1: 0,\n y2: axis === 'x' ? 0 : length\n }), legendNode);\n }\n\n return React.createElement(Motion, {\n style: {\n x: spring(x, springConfig),\n y: spring(y, springConfig)\n }\n }, function (xy) {\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(xy.x, \",\").concat(xy.y, \")\")\n }, React.createElement(TransitionMotion, {\n willEnter: willEnter,\n willLeave: willLeave(springConfig),\n styles: ticks.map(function (tick) {\n return {\n key: \"\".concat(tick.key),\n data: tick,\n style: {\n opacity: spring(1, springConfig),\n x: spring(tick.x, springConfig),\n y: spring(tick.y, springConfig),\n rotate: spring(tickRotation, springConfig)\n }\n };\n })\n }, function (interpolatedStyles) {\n return React.createElement(Fragment, null, interpolatedStyles.map(function (_ref3, tickIndex) {\n var style = _ref3.style,\n tick = _ref3.data;\n return React.createElement(renderTick, _objectSpread$1({\n tickIndex: tickIndex,\n format: formatValue,\n textBaseline: textBaseline,\n textAnchor: textAlign\n }, tick, style, onClick ? {\n onClick: onClick\n } : {}));\n }));\n }), React.createElement(Motion, {\n style: {\n x2: spring(axis === 'x' ? length : 0, springConfig),\n y2: spring(axis === 'x' ? 0 : length, springConfig)\n }\n }, function (values) {\n return React.createElement(\"line\", _extends$1({\n style: theme.axis.domain.line,\n x1: 0,\n y1: 0\n }, values));\n }), legendNode);\n });\n};\n\nAxis.defaultProps = {\n x: 0,\n y: 0,\n tickSize: 5,\n tickPadding: 5,\n tickRotation: 0,\n renderTick: defaultTickRenderer,\n legendPosition: 'end',\n legendOffset: 0\n};\nvar Axis$1 = memo(Axis);\n\nfunction _extends$2() {\n _extends$2 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$2.apply(this, arguments);\n}\n\nvar positions = ['top', 'right', 'bottom', 'left'];\n\nvar Axes = function Axes(_ref) {\n var xScale = _ref.xScale,\n yScale = _ref.yScale,\n width = _ref.width,\n height = _ref.height,\n top = _ref.top,\n right = _ref.right,\n bottom = _ref.bottom,\n left = _ref.left;\n var axes = {\n top: top,\n right: right,\n bottom: bottom,\n left: left\n };\n return positions.map(function (position) {\n var axis = axes[position];\n if (!axis) return null;\n var isXAxis = position === 'top' || position === 'bottom';\n var ticksPosition = position === 'top' || position === 'left' ? 'before' : 'after';\n return React.createElement(Axis$1, _extends$2({\n key: position\n }, axis, {\n axis: isXAxis ? 'x' : 'y',\n x: position === 'right' ? width : 0,\n y: position === 'bottom' ? height : 0,\n scale: isXAxis ? xScale : yScale,\n length: isXAxis ? width : height,\n ticksPosition: ticksPosition\n }));\n });\n};\n\nvar Axes$1 = memo(Axes);\n\nvar GridLine = function GridLine(props) {\n return React.createElement(\"line\", props);\n};\n\nGridLine.defaultProps = {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n};\nvar GridLine$1 = memo(GridLine);\n\nfunction _extends$3() {\n _extends$3 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$3.apply(this, arguments);\n}\n\nvar GridLines = function GridLines(_ref) {\n var type = _ref.type,\n lines = _ref.lines;\n var theme = useTheme();\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n\n var lineWillEnter = useMemo(function () {\n return function (_ref2) {\n var style = _ref2.style;\n return {\n opacity: 0,\n x1: type === 'x' ? 0 : style.x1.val,\n x2: type === 'x' ? 0 : style.x2.val,\n y1: type === 'y' ? 0 : style.y1.val,\n y2: type === 'y' ? 0 : style.y2.val\n };\n };\n }, [type]);\n var lineWillLeave = useMemo(function () {\n return function (_ref3) {\n var style = _ref3.style;\n return {\n opacity: spring(0, springConfig),\n x1: spring(style.x1.val, springConfig),\n x2: spring(style.x2.val, springConfig),\n y1: spring(style.y1.val, springConfig),\n y2: spring(style.y2.val, springConfig)\n };\n };\n }, [springConfig]);\n\n if (!animate) {\n return React.createElement(\"g\", null, lines.map(function (line) {\n return React.createElement(GridLine$1, _extends$3({\n key: line.key\n }, line, theme.grid.line));\n }));\n }\n\n return React.createElement(TransitionMotion, {\n willEnter: lineWillEnter,\n willLeave: lineWillLeave,\n styles: lines.map(function (line) {\n return {\n key: line.key,\n style: {\n opacity: spring(1, springConfig),\n x1: spring(line.x1 || 0, springConfig),\n x2: spring(line.x2 || 0, springConfig),\n y1: spring(line.y1 || 0, springConfig),\n y2: spring(line.y2 || 0, springConfig)\n }\n };\n })\n }, function (interpolatedStyles) {\n return React.createElement(\"g\", null, interpolatedStyles.map(function (interpolatedStyle) {\n var key = interpolatedStyle.key,\n style = interpolatedStyle.style;\n return React.createElement(GridLine$1, _extends$3({\n key: key\n }, theme.grid.line, style));\n }));\n });\n};\n\nvar GridLines$1 = memo(GridLines);\n\nvar Grid = function Grid(_ref) {\n var width = _ref.width,\n height = _ref.height,\n xScale = _ref.xScale,\n yScale = _ref.yScale,\n xValues = _ref.xValues,\n yValues = _ref.yValues;\n var xLines = useMemo(function () {\n if (!xScale) return false;\n return computeGridLines({\n width: width,\n height: height,\n scale: xScale,\n axis: 'x',\n values: xValues\n });\n }, [xScale, xValues]);\n var yLines = yScale ? computeGridLines({\n width: width,\n height: height,\n scale: yScale,\n axis: 'y',\n values: yValues\n }) : false;\n return React.createElement(React.Fragment, null, xLines && React.createElement(GridLines$1, {\n type: \"x\",\n lines: xLines\n }), yLines && React.createElement(GridLines$1, {\n type: \"y\",\n lines: yLines\n }));\n};\n\nvar Grid$1 = memo(Grid);\n\nvar degreesToRadians = function degreesToRadians(degrees) {\n return degrees * Math.PI / 180;\n};\n\nfunction _objectSpread$2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$2(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$2(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar renderAxisToCanvas = function renderAxisToCanvas(ctx, _ref) {\n var axis = _ref.axis,\n scale = _ref.scale,\n _ref$x = _ref.x,\n x = _ref$x === void 0 ? 0 : _ref$x,\n _ref$y = _ref.y,\n y = _ref$y === void 0 ? 0 : _ref$y,\n length = _ref.length,\n ticksPosition = _ref.ticksPosition,\n tickValues = _ref.tickValues,\n _ref$tickSize = _ref.tickSize,\n tickSize = _ref$tickSize === void 0 ? 5 : _ref$tickSize,\n _ref$tickPadding = _ref.tickPadding,\n tickPadding = _ref$tickPadding === void 0 ? 5 : _ref$tickPadding,\n _ref$tickRotation = _ref.tickRotation,\n tickRotation = _ref$tickRotation === void 0 ? 0 : _ref$tickRotation,\n format = _ref.format,\n legend = _ref.legend,\n _ref$legendPosition = _ref.legendPosition,\n legendPosition = _ref$legendPosition === void 0 ? 'end' : _ref$legendPosition,\n _ref$legendOffset = _ref.legendOffset,\n legendOffset = _ref$legendOffset === void 0 ? 0 : _ref$legendOffset,\n theme = _ref.theme;\n\n var _computeCartesianTick = computeCartesianTicks({\n axis: axis,\n scale: scale,\n ticksPosition: ticksPosition,\n tickValues: tickValues,\n tickSize: tickSize,\n tickPadding: tickPadding,\n tickRotation: tickRotation,\n engine: 'canvas'\n }),\n ticks = _computeCartesianTick.ticks,\n textAlign = _computeCartesianTick.textAlign,\n textBaseline = _computeCartesianTick.textBaseline;\n\n ctx.save();\n ctx.translate(x, y);\n ctx.textAlign = textAlign;\n ctx.textBaseline = textBaseline;\n ctx.font = \"\".concat(theme.axis.ticks.text.fontSize, \"px \").concat(theme.axis.ticks.text.fontFamily);\n\n if (theme.axis.domain.line.strokeWidth > 0) {\n ctx.lineWidth = theme.axis.domain.line.strokeWidth;\n ctx.lineCap = 'square';\n ctx.strokeStyle = theme.axis.domain.line.stroke;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(axis === 'x' ? length : 0, axis === 'x' ? 0 : length);\n ctx.stroke();\n }\n\n ticks.forEach(function (tick) {\n if (theme.axis.ticks.line.strokeWidth > 0) {\n ctx.lineWidth = theme.axis.ticks.line.strokeWidth;\n ctx.lineCap = 'square';\n ctx.strokeStyle = theme.axis.ticks.line.stroke;\n ctx.beginPath();\n ctx.moveTo(tick.x, tick.y);\n ctx.lineTo(tick.x + tick.lineX, tick.y + tick.lineY);\n ctx.stroke();\n }\n\n var value = format !== undefined ? format(tick.value) : tick.value;\n ctx.save();\n ctx.translate(tick.x + tick.textX, tick.y + tick.textY);\n ctx.rotate(degreesToRadians(tickRotation));\n ctx.fillStyle = theme.axis.ticks.text.fill;\n ctx.fillText(value, 0, 0);\n ctx.restore();\n });\n\n if (legend !== undefined) {\n var legendX = 0;\n var legendY = 0;\n var legendRotation = 0;\n\n var _textAlign;\n\n if (axis === 'y') {\n legendRotation = -90;\n legendX = legendOffset;\n\n if (legendPosition === 'start') {\n _textAlign = 'start';\n legendY = length;\n } else if (legendPosition === 'middle') {\n _textAlign = 'center';\n legendY = length / 2;\n } else if (legendPosition === 'end') {\n _textAlign = 'end';\n }\n } else {\n legendY = legendOffset;\n\n if (legendPosition === 'start') {\n _textAlign = 'start';\n } else if (legendPosition === 'middle') {\n _textAlign = 'center';\n legendX = length / 2;\n } else if (legendPosition === 'end') {\n _textAlign = 'end';\n legendX = length;\n }\n }\n\n ctx.translate(legendX, legendY);\n ctx.rotate(degreesToRadians(legendRotation));\n ctx.font = \"\".concat(theme.axis.legend.text.fontWeight ? \"\".concat(theme.axis.legend.text.fontWeight, \" \") : '').concat(theme.axis.legend.text.fontSize, \"px \").concat(theme.axis.legend.text.fontFamily);\n ctx.fillStyle = theme.axis.legend.text.fill;\n ctx.textAlign = _textAlign;\n ctx.textBaseline = 'middle';\n ctx.fillText(legend, 0, 0);\n }\n\n ctx.restore();\n};\n\nvar positions$1 = ['top', 'right', 'bottom', 'left'];\n\nvar renderAxesToCanvas = function renderAxesToCanvas(ctx, _ref2) {\n var xScale = _ref2.xScale,\n yScale = _ref2.yScale,\n width = _ref2.width,\n height = _ref2.height,\n top = _ref2.top,\n right = _ref2.right,\n bottom = _ref2.bottom,\n left = _ref2.left,\n theme = _ref2.theme;\n var axes = {\n top: top,\n right: right,\n bottom: bottom,\n left: left\n };\n positions$1.forEach(function (position) {\n var axis = axes[position];\n if (!axis) return null;\n var isXAxis = position === 'top' || position === 'bottom';\n var ticksPosition = position === 'top' || position === 'left' ? 'before' : 'after';\n var scale = isXAxis ? xScale : yScale;\n var format = getFormatter(axis.format, scale);\n renderAxisToCanvas(ctx, _objectSpread$2({}, axis, {\n axis: isXAxis ? 'x' : 'y',\n x: position === 'right' ? width : 0,\n y: position === 'bottom' ? height : 0,\n scale: scale,\n format: format,\n length: isXAxis ? width : height,\n ticksPosition: ticksPosition,\n theme: theme\n }));\n });\n};\n\nvar renderGridLinesToCanvas = function renderGridLinesToCanvas(ctx, _ref3) {\n var width = _ref3.width,\n height = _ref3.height,\n scale = _ref3.scale,\n axis = _ref3.axis,\n values = _ref3.values;\n var lines = computeGridLines({\n width: width,\n height: height,\n scale: scale,\n axis: axis,\n values: values\n });\n lines.forEach(function (line) {\n ctx.beginPath();\n ctx.moveTo(line.x1, line.y1);\n ctx.lineTo(line.x2, line.y2);\n ctx.stroke();\n });\n};\n\nexport { Axes$1 as Axes, Axis$1 as Axis, Grid$1 as Grid, axisPropType, axisPropTypes, renderAxesToCanvas, renderAxisToCanvas, renderGridLinesToCanvas };","var composeArgs = require('./_composeArgs'),\n composeArgsRight = require('./_composeArgsRight'),\n countHolders = require('./_countHolders'),\n createCtor = require('./_createCtor'),\n createRecurry = require('./_createRecurry'),\n getHolder = require('./_getHolder'),\n reorder = require('./_reorder'),\n replaceHolders = require('./_replaceHolders'),\n root = require('./_root');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_ARY_FLAG = 128,\n WRAP_FLIP_FLAG = 512;\n\n/**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n}\n\nmodule.exports = createHybrid;\n","var WeakMap = require('./_WeakMap');\n\n/** Used to store function metadata. */\nvar metaMap = WeakMap && new WeakMap;\n\nmodule.exports = metaMap;\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 assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n var index = -1;\n iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","// Generated by CoffeeScript 1.7.1\n(function () {\n var getNanoSeconds, hrtime, loadTime;\n\n if (typeof performance !== \"undefined\" && performance !== null && performance.now) {\n module.exports = function () {\n return performance.now();\n };\n } else if (typeof process !== \"undefined\" && process !== null && process.hrtime) {\n module.exports = function () {\n return (getNanoSeconds() - loadTime) / 1e6;\n };\n\n hrtime = process.hrtime;\n\n getNanoSeconds = function getNanoSeconds() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n\n loadTime = getNanoSeconds();\n } else if (Date.now) {\n module.exports = function () {\n return Date.now() - loadTime;\n };\n\n loadTime = Date.now();\n } else {\n module.exports = function () {\n return new Date().getTime() - loadTime;\n };\n\n loadTime = new Date().getTime();\n }\n}).call(this);","export default function nice(domain, interval) {\n domain = domain.slice();\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}","import \"core-js/modules/es.array.reduce.js\";\n\n/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\n\n/* eslint-disable require-jsdoc, valid-jsdoc */\nvar MapShim = function () {\n if (typeof Map !== 'undefined') {\n return Map;\n }\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\n\n\n function getIndex(arr, key) {\n var result = -1;\n arr.some(function (entry, index) {\n if (entry[0] === key) {\n result = index;\n return true;\n }\n\n return false;\n });\n return result;\n }\n\n return (\n /** @class */\n function () {\n function class_1() {\n this.__entries__ = [];\n }\n\n Object.defineProperty(class_1.prototype, \"size\", {\n /**\r\n * @returns {boolean}\r\n */\n get: function get() {\n return this.__entries__.length;\n },\n enumerable: true,\n configurable: true\n });\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\n\n class_1.prototype.get = function (key) {\n var index = getIndex(this.__entries__, key);\n var entry = this.__entries__[index];\n return entry && entry[1];\n };\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.set = function (key, value) {\n var index = getIndex(this.__entries__, key);\n\n if (~index) {\n this.__entries__[index][1] = value;\n } else {\n this.__entries__.push([key, value]);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.delete = function (key) {\n var entries = this.__entries__;\n var index = getIndex(entries, key);\n\n if (~index) {\n entries.splice(index, 1);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.has = function (key) {\n return !!~getIndex(this.__entries__, key);\n };\n /**\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.clear = function () {\n this.__entries__.splice(0);\n };\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.forEach = function (callback, ctx) {\n if (ctx === void 0) {\n ctx = null;\n }\n\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\n var entry = _a[_i];\n callback.call(ctx, entry[1], entry[0]);\n }\n };\n\n return class_1;\n }()\n );\n}();\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\n\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document; // Returns global object of a current environment.\n\nvar global$1 = function () {\n if (typeof global !== 'undefined' && global.Math === Math) {\n return global;\n }\n\n if (typeof self !== 'undefined' && self.Math === Math) {\n return self;\n }\n\n if (typeof window !== 'undefined' && window.Math === Math) {\n return window;\n } // eslint-disable-next-line no-new-func\n\n\n return Function('return this')();\n}();\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\n\n\nvar requestAnimationFrame$1 = function () {\n if (typeof requestAnimationFrame === 'function') {\n // It's required to use a bounded function because IE sometimes throws\n // an \"Invalid calling object\" error if rAF is invoked without the global\n // object on the left hand side.\n return requestAnimationFrame.bind(global$1);\n }\n\n return function (callback) {\n return setTimeout(function () {\n return callback(Date.now());\n }, 1000 / 60);\n };\n}(); // Defines minimum timeout before adding a trailing call.\n\n\nvar trailingTimeout = 2;\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\n\nfunction throttle(callback, delay) {\n var leadingCall = false,\n trailingCall = false,\n lastCallTime = 0;\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\n\n function resolvePending() {\n if (leadingCall) {\n leadingCall = false;\n callback();\n }\n\n if (trailingCall) {\n proxy();\n }\n }\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\n\n\n function timeoutCallback() {\n requestAnimationFrame$1(resolvePending);\n }\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\n\n\n function proxy() {\n var timeStamp = Date.now();\n\n if (leadingCall) {\n // Reject immediately following calls.\n if (timeStamp - lastCallTime < trailingTimeout) {\n return;\n } // Schedule new call to be in invoked when the pending one is resolved.\n // This is important for \"transitions\" which never actually start\n // immediately so there is a chance that we might miss one if change\n // happens amids the pending invocation.\n\n\n trailingCall = true;\n } else {\n leadingCall = true;\n trailingCall = false;\n setTimeout(timeoutCallback, delay);\n }\n\n lastCallTime = timeStamp;\n }\n\n return proxy;\n} // Minimum delay before invoking the update of observers.\n\n\nvar REFRESH_DELAY = 20; // A list of substrings of CSS properties used to find transition events that\n// might affect dimensions of observed elements.\n\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight']; // Check if MutationObserver is available.\n\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\n\nvar ResizeObserverController =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\n function ResizeObserverController() {\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\n this.connected_ = false;\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\n\n this.mutationEventsAdded_ = false;\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\n\n this.mutationsObserver_ = null;\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\n\n this.observers_ = [];\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\n }\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.addObserver = function (observer) {\n if (!~this.observers_.indexOf(observer)) {\n this.observers_.push(observer);\n } // Add listeners if they haven't been added yet.\n\n\n if (!this.connected_) {\n this.connect_();\n }\n };\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.removeObserver = function (observer) {\n var observers = this.observers_;\n var index = observers.indexOf(observer); // Remove observer if it's present in registry.\n\n if (~index) {\n observers.splice(index, 1);\n } // Remove listeners if controller has no connected observers.\n\n\n if (!observers.length && this.connected_) {\n this.disconnect_();\n }\n };\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.refresh = function () {\n var changesDetected = this.updateObservers_(); // Continue running updates if changes have been detected as there might\n // be future ones caused by CSS transitions.\n\n if (changesDetected) {\n this.refresh();\n }\n };\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\n\n\n ResizeObserverController.prototype.updateObservers_ = function () {\n // Collect observers that have active observations.\n var activeObservers = this.observers_.filter(function (observer) {\n return observer.gatherActive(), observer.hasActive();\n }); // Deliver notifications in a separate cycle in order to avoid any\n // collisions between observers, e.g. when multiple instances of\n // ResizeObserver are tracking the same element and the callback of one\n // of them changes content dimensions of the observed target. Sometimes\n // this may result in notifications being blocked for the rest of observers.\n\n activeObservers.forEach(function (observer) {\n return observer.broadcastActive();\n });\n return activeObservers.length > 0;\n };\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.connect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already added.\n if (!isBrowser || this.connected_) {\n return;\n } // Subscription to the \"Transitionend\" event is used as a workaround for\n // delayed transitions. This way it's possible to capture at least the\n // final state of an element.\n\n\n document.addEventListener('transitionend', this.onTransitionEnd_);\n window.addEventListener('resize', this.refresh);\n\n if (mutationObserverSupported) {\n this.mutationsObserver_ = new MutationObserver(this.refresh);\n this.mutationsObserver_.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n } else {\n document.addEventListener('DOMSubtreeModified', this.refresh);\n this.mutationEventsAdded_ = true;\n }\n\n this.connected_ = true;\n };\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.disconnect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already removed.\n if (!isBrowser || !this.connected_) {\n return;\n }\n\n document.removeEventListener('transitionend', this.onTransitionEnd_);\n window.removeEventListener('resize', this.refresh);\n\n if (this.mutationsObserver_) {\n this.mutationsObserver_.disconnect();\n }\n\n if (this.mutationEventsAdded_) {\n document.removeEventListener('DOMSubtreeModified', this.refresh);\n }\n\n this.mutationsObserver_ = null;\n this.mutationEventsAdded_ = false;\n this.connected_ = false;\n };\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\n var _b = _a.propertyName,\n propertyName = _b === void 0 ? '' : _b; // Detect whether transition may affect dimensions of an element.\n\n var isReflowProperty = transitionKeys.some(function (key) {\n return !!~propertyName.indexOf(key);\n });\n\n if (isReflowProperty) {\n this.refresh();\n }\n };\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\n\n\n ResizeObserverController.getInstance = function () {\n if (!this.instance_) {\n this.instance_ = new ResizeObserverController();\n }\n\n return this.instance_;\n };\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\n\n\n ResizeObserverController.instance_ = null;\n return ResizeObserverController;\n}();\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\n\n\nvar defineConfigurable = function defineConfigurable(target, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var key = _a[_i];\n Object.defineProperty(target, key, {\n value: props[key],\n enumerable: false,\n writable: false,\n configurable: true\n });\n }\n\n return target;\n};\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\n\n\nvar getWindowOf = function getWindowOf(target) {\n // Assume that the element is an instance of Node, which means that it\n // has the \"ownerDocument\" property from which we can retrieve a\n // corresponding global object.\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView; // Return the local global object if it's not possible extract one from\n // provided element.\n\n return ownerGlobal || global$1;\n}; // Placeholder of an empty content rectangle.\n\n\nvar emptyRect = createRectInit(0, 0, 0, 0);\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\n\nfunction toFloat(value) {\n return parseFloat(value) || 0;\n}\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\n\n\nfunction getBordersSize(styles) {\n var positions = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n positions[_i - 1] = arguments[_i];\n }\n\n return positions.reduce(function (size, position) {\n var value = styles['border-' + position + '-width'];\n return size + toFloat(value);\n }, 0);\n}\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\n\n\nfunction getPaddings(styles) {\n var positions = ['top', 'right', 'bottom', 'left'];\n var paddings = {};\n\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\n var position = positions_1[_i];\n var value = styles['padding-' + position];\n paddings[position] = toFloat(value);\n }\n\n return paddings;\n}\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getSVGContentRect(target) {\n var bbox = target.getBBox();\n return createRectInit(0, 0, bbox.width, bbox.height);\n}\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getHTMLElementContentRect(target) {\n // Client width & height properties can't be\n // used exclusively as they provide rounded values.\n var clientWidth = target.clientWidth,\n clientHeight = target.clientHeight; // By this condition we can catch all non-replaced inline, hidden and\n // detached elements. Though elements with width & height properties less\n // than 0.5 will be discarded as well.\n //\n // Without it we would need to implement separate methods for each of\n // those cases and it's not possible to perform a precise and performance\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\n // gives wrong results for elements with width & height less than 0.5.\n\n if (!clientWidth && !clientHeight) {\n return emptyRect;\n }\n\n var styles = getWindowOf(target).getComputedStyle(target);\n var paddings = getPaddings(styles);\n var horizPad = paddings.left + paddings.right;\n var vertPad = paddings.top + paddings.bottom; // Computed styles of width & height are being used because they are the\n // only dimensions available to JS that contain non-rounded values. It could\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\n // affected by CSS transformations let alone paddings, borders and scroll bars.\n\n var width = toFloat(styles.width),\n height = toFloat(styles.height); // Width & height include paddings and borders when the 'border-box' box\n // model is applied (except for IE).\n\n if (styles.boxSizing === 'border-box') {\n // Following conditions are required to handle Internet Explorer which\n // doesn't include paddings and borders to computed CSS dimensions.\n //\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\n // properties then it's either IE, and thus we don't need to subtract\n // anything, or an element merely doesn't have paddings/borders styles.\n if (Math.round(width + horizPad) !== clientWidth) {\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\n }\n\n if (Math.round(height + vertPad) !== clientHeight) {\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\n }\n } // Following steps can't be applied to the document's root element as its\n // client[Width/Height] properties represent viewport area of the window.\n // Besides, it's as well not necessary as the itself neither has\n // rendered scroll bars nor it can be clipped.\n\n\n if (!isDocumentElement(target)) {\n // In some browsers (only in Firefox, actually) CSS width & height\n // include scroll bars size which can be removed at this step as scroll\n // bars are the only difference between rounded dimensions + paddings\n // and \"client\" properties, though that is not always true in Chrome.\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\n var horizScrollbar = Math.round(height + vertPad) - clientHeight; // Chrome has a rather weird rounding of \"client\" properties.\n // E.g. for an element with content width of 314.2px it sometimes gives\n // the client width of 315px and for the width of 314.7px it may give\n // 314px. And it doesn't happen all the time. So just ignore this delta\n // as a non-relevant.\n\n if (Math.abs(vertScrollbar) !== 1) {\n width -= vertScrollbar;\n }\n\n if (Math.abs(horizScrollbar) !== 1) {\n height -= horizScrollbar;\n }\n }\n\n return createRectInit(paddings.left, paddings.top, width, height);\n}\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\n\n\nvar isSVGGraphicsElement = function () {\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\n // interface.\n if (typeof SVGGraphicsElement !== 'undefined') {\n return function (target) {\n return target instanceof getWindowOf(target).SVGGraphicsElement;\n };\n } // If it's so, then check that element is at least an instance of the\n // SVGElement and that it has the \"getBBox\" method.\n // eslint-disable-next-line no-extra-parens\n\n\n return function (target) {\n return target instanceof getWindowOf(target).SVGElement && typeof target.getBBox === 'function';\n };\n}();\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\n\n\nfunction isDocumentElement(target) {\n return target === getWindowOf(target).document.documentElement;\n}\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getContentRect(target) {\n if (!isBrowser) {\n return emptyRect;\n }\n\n if (isSVGGraphicsElement(target)) {\n return getSVGContentRect(target);\n }\n\n return getHTMLElementContentRect(target);\n}\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\n\n\nfunction createReadOnlyRect(_a) {\n var x = _a.x,\n y = _a.y,\n width = _a.width,\n height = _a.height; // If DOMRectReadOnly is available use it as a prototype for the rectangle.\n\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\n var rect = Object.create(Constr.prototype); // Rectangle's properties are not writable and non-enumerable.\n\n defineConfigurable(rect, {\n x: x,\n y: y,\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: height + y,\n left: x\n });\n return rect;\n}\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction createRectInit(x, y, width, height) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n}\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\n\n\nvar ResizeObservation =\n/** @class */\nfunction () {\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\n function ResizeObservation(target) {\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\n this.broadcastWidth = 0;\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\n\n this.broadcastHeight = 0;\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\n\n this.contentRect_ = createRectInit(0, 0, 0, 0);\n this.target = target;\n }\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n ResizeObservation.prototype.isActive = function () {\n var rect = getContentRect(this.target);\n this.contentRect_ = rect;\n return rect.width !== this.broadcastWidth || rect.height !== this.broadcastHeight;\n };\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\n\n\n ResizeObservation.prototype.broadcastRect = function () {\n var rect = this.contentRect_;\n this.broadcastWidth = rect.width;\n this.broadcastHeight = rect.height;\n return rect;\n };\n\n return ResizeObservation;\n}();\n\nvar ResizeObserverEntry =\n/** @class */\nfunction () {\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\n function ResizeObserverEntry(target, rectInit) {\n var contentRect = createReadOnlyRect(rectInit); // According to the specification following properties are not writable\n // and are also not enumerable in the native implementation.\n //\n // Property accessors are not being used as they'd require to define a\n // private WeakMap storage which may cause memory leaks in browsers that\n // don't support this type of collections.\n\n defineConfigurable(this, {\n target: target,\n contentRect: contentRect\n });\n }\n\n return ResizeObserverEntry;\n}();\n\nvar ResizeObserverSPI =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\n function ResizeObserverSPI(callback, controller, callbackCtx) {\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\n this.activeObservations_ = [];\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\n\n this.observations_ = new MapShim();\n\n if (typeof callback !== 'function') {\n throw new TypeError('The callback provided as parameter 1 is not a function.');\n }\n\n this.callback_ = callback;\n this.controller_ = controller;\n this.callbackCtx_ = callbackCtx;\n }\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.observe = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n } // Do nothing if current environment doesn't have the Element interface.\n\n\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_; // Do nothing if element is already being observed.\n\n if (observations.has(target)) {\n return;\n }\n\n observations.set(target, new ResizeObservation(target));\n this.controller_.addObserver(this); // Force the update of observations.\n\n this.controller_.refresh();\n };\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.unobserve = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n } // Do nothing if current environment doesn't have the Element interface.\n\n\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_; // Do nothing if element is not being observed.\n\n if (!observations.has(target)) {\n return;\n }\n\n observations.delete(target);\n\n if (!observations.size) {\n this.controller_.removeObserver(this);\n }\n };\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.disconnect = function () {\n this.clearActive();\n this.observations_.clear();\n this.controller_.removeObserver(this);\n };\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.gatherActive = function () {\n var _this = this;\n\n this.clearActive();\n this.observations_.forEach(function (observation) {\n if (observation.isActive()) {\n _this.activeObservations_.push(observation);\n }\n });\n };\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.broadcastActive = function () {\n // Do nothing if observer doesn't have active observations.\n if (!this.hasActive()) {\n return;\n }\n\n var ctx = this.callbackCtx_; // Create ResizeObserverEntry instance for every active observation.\n\n var entries = this.activeObservations_.map(function (observation) {\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\n });\n this.callback_.call(ctx, entries, ctx);\n this.clearActive();\n };\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.clearActive = function () {\n this.activeObservations_.splice(0);\n };\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n ResizeObserverSPI.prototype.hasActive = function () {\n return this.activeObservations_.length > 0;\n };\n\n return ResizeObserverSPI;\n}(); // Registry of internal observers. If WeakMap is not available use current shim\n// for the Map collection as it has all required methods and because WeakMap\n// can't be fully polyfilled anyway.\n\n\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\n\nvar ResizeObserver =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\n function ResizeObserver(callback) {\n if (!(this instanceof ResizeObserver)) {\n throw new TypeError('Cannot call a class as a function.');\n }\n\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n }\n\n var controller = ResizeObserverController.getInstance();\n var observer = new ResizeObserverSPI(callback, controller, this);\n observers.set(this, observer);\n }\n\n return ResizeObserver;\n}(); // Expose public methods of ResizeObserver.\n\n\n['observe', 'unobserve', 'disconnect'].forEach(function (method) {\n ResizeObserver.prototype[method] = function () {\n var _a;\n\n return (_a = observers.get(this))[method].apply(_a, arguments);\n };\n});\n\nvar index = function () {\n // Export existing implementation if available.\n if (typeof global$1.ResizeObserver !== 'undefined') {\n return global$1.ResizeObserver;\n }\n\n return ResizeObserver;\n}();\n\nexport default index;","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nvar hasElementType = typeof Element !== 'undefined';\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a),\n arrB = isArray(b),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n }\n\n if (arrA != arrB) return false;\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n var keys = keyList(a);\n length = keys.length;\n if (length !== keyList(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!hasProp.call(b, keys[i])) return false;\n } // end fast-deep-equal\n // start react-fast-compare\n // custom handling for DOM elements\n\n\n if (hasElementType && a instanceof Element && b instanceof Element) return a === b; // custom handling for React\n\n for (i = length; i-- !== 0;) {\n key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n } // end react-fast-compare\n // fast-deep-equal index.js 2.0.1\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nmodule.exports = function exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (error.message && error.message.match(/stack|recursion/i) || error.number === -2146828260) {\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('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _BreakpointProvider = require(\"./BreakpointProvider\");\n\nexports.useBreakpoint = _BreakpointProvider.useBreakpoint;\n\nvar _withBreakpoints = require(\"./withBreakpoints\");\n\nexports.withBreakpoints = _withBreakpoints.withBreakpoints;","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar getDisplayName = function getDisplayName(Component) {\n if (typeof Component === 'string') {\n return Component;\n }\n\n if (!Component) {\n return undefined;\n }\n\n return Component.displayName || Component.name || 'Component';\n};\n\nvar _default = getDisplayName;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar setStatic = function setStatic(key, value) {\n return function (BaseComponent) {\n /* eslint-disable no-param-reassign */\n BaseComponent[key] = value;\n /* eslint-enable no-param-reassign */\n\n return BaseComponent;\n };\n};\n\nvar _default = setStatic;\nexports.default = _default;","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _react = require(\"react\");\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _pick = _interopRequireDefault(require(\"./utils/pick\"));\n\nvar _shallowEqual = _interopRequireDefault(require(\"./shallowEqual\"));\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar withPropsOnChange = function withPropsOnChange(shouldMapOrKeys, propsMapper) {\n return function (BaseComponent) {\n var factory = (0, _react.createFactory)(BaseComponent);\n var shouldMap = typeof shouldMapOrKeys === 'function' ? shouldMapOrKeys : function (props, nextProps) {\n return !(0, _shallowEqual.default)((0, _pick.default)(props, shouldMapOrKeys), (0, _pick.default)(nextProps, shouldMapOrKeys));\n };\n\n var WithPropsOnChange = /*#__PURE__*/function (_Component) {\n (0, _inheritsLoose2.default)(WithPropsOnChange, _Component);\n\n function WithPropsOnChange() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.state = {\n computedProps: propsMapper(_this.props),\n prevProps: _this.props\n };\n return _this;\n }\n\n WithPropsOnChange.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n if (shouldMap(prevState.prevProps, nextProps)) {\n return {\n computedProps: propsMapper(nextProps),\n prevProps: nextProps\n };\n }\n\n return {\n prevProps: nextProps\n };\n };\n\n var _proto = WithPropsOnChange.prototype;\n\n _proto.render = function render() {\n return factory((0, _extends2.default)({}, this.props, this.state.computedProps));\n };\n\n return WithPropsOnChange;\n }(_react.Component);\n\n (0, _reactLifecyclesCompat.polyfill)(WithPropsOnChange);\n\n if (process.env.NODE_ENV !== 'production') {\n return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'withPropsOnChange'))(WithPropsOnChange);\n }\n\n return WithPropsOnChange;\n };\n};\n\nvar _default = withPropsOnChange;\nexports.default = _default;","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","// Generated by CoffeeScript 1.12.2\n(function () {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if (typeof performance !== \"undefined\" && performance !== null && performance.now) {\n module.exports = function () {\n return performance.now();\n };\n } else if (typeof process !== \"undefined\" && process !== null && process.hrtime) {\n module.exports = function () {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n\n hrtime = process.hrtime;\n\n getNanoSeconds = function getNanoSeconds() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function () {\n return Date.now() - loadTime;\n };\n\n loadTime = Date.now();\n } else {\n module.exports = function () {\n return new Date().getTime() - loadTime;\n };\n\n loadTime = new Date().getTime();\n }\n}).call(this);","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"e7e1efc994c7dd1c77\", \"f1eef6d7b5d8df65b0ce1256\", \"f1eef6d7b5d8df65b0dd1c77980043\", \"f1eef6d4b9dac994c7df65b0dd1c77980043\", \"f1eef6d4b9dac994c7df65b0e7298ace125691003f\", \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f\", \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f\").map(colors);\nexport default ramp(scheme);","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","// stepper is used a lot. Saves allocation to return the same array wrapper.\n// This is fine and danger-free against mutations because the callsite\n// immediately destructures it and gets the numbers inside without passing the\n\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = stepper;\nvar reusedTuple = [0, 0];\n\nfunction stepper(secondPerFrame, x, v, destX, k, b, precision) {\n // Spring stiffness, in kg / s^2\n // for animations, destX is really spring length (spring at rest). initial\n // position is considered as the stretched/compressed position of a spring\n var Fspring = -k * (x - destX); // Damping, in kg / s\n\n var Fdamper = -b * v; // usually we put mass here, but for animation purposes, specifying mass is a\n // bit redundant. you could simply adjust k and b accordingly\n // let a = (Fspring + Fdamper) / mass;\n\n var a = Fspring + Fdamper;\n var newV = v + a * secondPerFrame;\n var newX = x + newV * secondPerFrame;\n\n if (Math.abs(newV) < precision && Math.abs(newX - destX) < precision) {\n reusedTuple[0] = destX;\n reusedTuple[1] = 0;\n return reusedTuple;\n }\n\n reusedTuple[0] = newX;\n reusedTuple[1] = newV;\n return reusedTuple;\n}\n\nmodule.exports = exports[\"default\"]; // array reference around.","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","import colors from \"../colors.js\";\nexport default colors(\"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3\");","var baseGet = require('./_baseGet'),\n baseSlice = require('./_baseSlice');\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n","import colors from \"../colors.js\";\nexport default colors(\"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666\");","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport var bisectCenter = bisector(number).center;\nexport default bisectRight;","import _regeneratorRuntime from \"/Users/brianmiddleton/dev/2020-rails-survey-site/node_modules/@babel/runtime/regenerator/index.js\";\n\nvar _marked = /*#__PURE__*/_regeneratorRuntime.mark(numbers);\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nexport default function (x) {\n return x === null ? NaN : +x;\n}\nexport function numbers(values, valueof) {\n var _iterator, _step, value, index, _iterator2, _step2, _value;\n\n return _regeneratorRuntime.wrap(function numbers$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(valueof === undefined)) {\n _context.next = 21;\n break;\n }\n\n _iterator = _createForOfIteratorHelper(values);\n _context.prev = 2;\n\n _iterator.s();\n\n case 4:\n if ((_step = _iterator.n()).done) {\n _context.next = 11;\n break;\n }\n\n value = _step.value;\n\n if (!(value != null && (value = +value) >= value)) {\n _context.next = 9;\n break;\n }\n\n _context.next = 9;\n return value;\n\n case 9:\n _context.next = 4;\n break;\n\n case 11:\n _context.next = 16;\n break;\n\n case 13:\n _context.prev = 13;\n _context.t0 = _context[\"catch\"](2);\n\n _iterator.e(_context.t0);\n\n case 16:\n _context.prev = 16;\n\n _iterator.f();\n\n return _context.finish(16);\n\n case 19:\n _context.next = 40;\n break;\n\n case 21:\n index = -1;\n _iterator2 = _createForOfIteratorHelper(values);\n _context.prev = 23;\n\n _iterator2.s();\n\n case 25:\n if ((_step2 = _iterator2.n()).done) {\n _context.next = 32;\n break;\n }\n\n _value = _step2.value;\n\n if (!((_value = valueof(_value, ++index, values)) != null && (_value = +_value) >= _value)) {\n _context.next = 30;\n break;\n }\n\n _context.next = 30;\n return _value;\n\n case 30:\n _context.next = 25;\n break;\n\n case 32:\n _context.next = 37;\n break;\n\n case 34:\n _context.prev = 34;\n _context.t1 = _context[\"catch\"](23);\n\n _iterator2.e(_context.t1);\n\n case 37:\n _context.prev = 37;\n\n _iterator2.f();\n\n return _context.finish(37);\n\n case 40:\n case \"end\":\n return _context.stop();\n }\n }\n }, _marked, null, [[2, 13, 16, 19], [23, 34, 37, 40]]);\n}","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"deebf79ecae13182bd\", \"eff3ffbdd7e76baed62171b5\", \"eff3ffbdd7e76baed63182bd08519c\", \"eff3ffc6dbef9ecae16baed63182bd08519c\", \"eff3ffc6dbef9ecae16baed64292c62171b5084594\", \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594\", \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b\").map(colors);\nexport default ramp(scheme);","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _getDisplayName = _interopRequireDefault(require(\"./getDisplayName\"));\n\nvar wrapDisplayName = function wrapDisplayName(BaseComponent, hocName) {\n return hocName + \"(\" + (0, _getDisplayName.default)(BaseComponent) + \")\";\n};\n\nvar _default = wrapDisplayName;\nexports.default = _default;","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","var t0 = new Date(),\n t1 = new Date();\nexport default function newInterval(floori, offseti, count, field) {\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date() : new Date(+date)), date;\n }\n\n interval.floor = function (date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function (date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function (date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function (date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function (start, stop, step) {\n var range = [],\n previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n\n do {\n range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n } while (previous < start && start < stop);\n\n return range;\n };\n\n interval.filter = function (test) {\n return newInterval(function (date) {\n if (date >= date) while (floori(date), !test(date)) {\n date.setTime(date - 1);\n }\n }, function (date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n\n }\n }\n });\n };\n\n if (count) {\n interval.count = function (start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function (step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? function (d) {\n return field(d) % step === 0;\n } : function (d) {\n return interval.count(0, d) % step === 0;\n });\n };\n }\n\n return interval;\n}","import interval from \"./interval.js\";\nvar millisecond = interval(function () {// noop\n}, function (date, step) {\n date.setTime(+date + step);\n}, function (start, end) {\n return end - start;\n}); // An optimized implementation for this simple case.\n\nmillisecond.every = function (k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function (date) {\n date.setTime(Math.floor(date / k) * k);\n }, function (date, step) {\n date.setTime(+date + step * k);\n }, function (start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;","import interval from \"./interval.js\";\nimport { durationSecond } from \"./duration.js\";\nvar second = interval(function (date) {\n date.setTime(date - date.getMilliseconds());\n}, function (date, step) {\n date.setTime(+date + step * durationSecond);\n}, function (start, end) {\n return (end - start) / durationSecond;\n}, function (date) {\n return date.getUTCSeconds();\n});\nexport default second;\nexport var seconds = second.range;","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;","import interval from \"./interval.js\";\nimport { durationMinute, durationSecond } from \"./duration.js\";\nvar minute = interval(function (date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getMinutes();\n});\nexport default minute;\nexport var minutes = minute.range;","import interval from \"./interval.js\";\nimport { durationMinute } from \"./duration.js\";\nvar utcMinute = interval(function (date) {\n date.setUTCSeconds(0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getUTCMinutes();\n});\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;","import interval from \"./interval.js\";\nimport { durationHour, durationMinute, durationSecond } from \"./duration.js\";\nvar hour = interval(function (date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function (date, step) {\n date.setTime(+date + step * durationHour);\n}, function (start, end) {\n return (end - start) / durationHour;\n}, function (date) {\n return date.getHours();\n});\nexport default hour;\nexport var hours = hour.range;","import interval from \"./interval.js\";\nimport { durationHour } from \"./duration.js\";\nvar utcHour = interval(function (date) {\n date.setUTCMinutes(0, 0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationHour);\n}, function (start, end) {\n return (end - start) / durationHour;\n}, function (date) {\n return date.getUTCHours();\n});\nexport default utcHour;\nexport var utcHours = utcHour.range;","import interval from \"./interval.js\";\nimport { durationDay, durationMinute } from \"./duration.js\";\nvar day = interval(function (date) {\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setDate(date.getDate() + step);\n}, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function (date) {\n return date.getDate() - 1;\n});\nexport default day;\nexport var days = day.range;","import interval from \"./interval.js\";\nimport { durationDay } from \"./duration.js\";\nvar utcDay = interval(function (date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function (start, end) {\n return (end - start) / durationDay;\n}, function (date) {\n return date.getUTCDate() - 1;\n});\nexport default utcDay;\nexport var utcDays = utcDay.range;","import interval from \"./interval.js\";\nimport { durationMinute, durationWeek } from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function (date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;","import interval from \"./interval.js\";\nimport { durationWeek } from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function (date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function (start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;","import interval from \"./interval.js\";\nvar month = interval(function (date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setMonth(date.getMonth() + step);\n}, function (start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function (date) {\n return date.getMonth();\n});\nexport default month;\nexport var months = month.range;","import interval from \"./interval.js\";\nvar utcMonth = interval(function (date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function (start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function (date) {\n return date.getUTCMonth();\n});\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;","import interval from \"./interval.js\";\nvar year = interval(function (date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function (start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function (date) {\n return date.getFullYear();\n}); // An optimized implementation for this simple case.\n\nyear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;","import interval from \"./interval.js\";\nvar utcYear = interval(function (date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function (start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function (date) {\n return date.getUTCFullYear();\n}); // An optimized implementation for this simple case.\n\nutcYear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;","import { timeDay, timeSunday, timeMonday, timeThursday, timeYear, utcDay, utcSunday, utcMonday, utcThursday, utcYear } from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {\n y: y,\n m: m,\n d: d,\n H: 0,\n M: 0,\n S: 0,\n L: 0\n };\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n }; // These recursive directive definitions must be deferred.\n\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function (date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function (string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week,\n day;\n if (i != string.length) return null; // If a UNIX timestamp is specified, return it.\n\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0)); // If this is utcParse, never use the local timezone.\n\n if (Z && !(\"Z\" in d)) d.Z = 0; // The am-pm flag is 0 for AM, and 1 for PM.\n\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12; // If the month was not specified, inherit from the quarter.\n\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0; // Convert day-of-week and week-of-year to day-of-year.\n\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n } // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n\n\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n } // Otherwise, all fields are in local time.\n\n\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || (j = parse(d, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function format(specifier) {\n var f = newFormat(specifier += \"\", formats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n parse: function parse(specifier) {\n var p = newParse(specifier += \"\", false);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n },\n utcFormat: function utcFormat(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n utcParse: function utcParse(specifier) {\n var p = newParse(specifier += \"\", true);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n }\n };\n}\nvar pads = {\n \"-\": \"\",\n \"_\": \" \",\n \"0\": \"0\"\n},\n numberRe = /^\\s*\\d+/,\n // note: ignores next directive\npercentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {},\n i = -1,\n n = names.length;\n\n while (++i < n) {\n map[names[i].toLowerCase()] = i;\n }\n\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction 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, \"+\")) + pad(z / 60 | 0, \"0\", 2) + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction 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}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}","export default function (x) {\n return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString(\"en\").replace(/,/g, \"\") : x.toString(10);\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].\n\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n\n var i,\n coefficient = x.slice(0, i); // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n\n return [coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, +x.slice(i + 1)];\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport default function (x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function () {\n return this.fill + this.align + this.sign + this.symbol + (this.zero ? \"0\" : \"\") + (this.width === undefined ? \"\" : Math.max(1, this.width | 0)) + (this.comma ? \",\" : \"\") + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0)) + (this.trim ? \"~\" : \"\") + this.type;\n};","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function (s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\":\n i0 = i1 = i;\n break;\n\n case \"0\":\n if (i0 === 0) i0 = i;\n i1 = i;\n break;\n\n default:\n if (!+s[i]) break out;\n if (i0 > 0) i0 = 0;\n break;\n }\n }\n\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport var prefixExponent;\nexport default function (x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join(\"0\") : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i) : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var format;\nexport var formatPrefix;\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport default function (x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\nexport default {\n \"%\": function _(x, p) {\n return (x * 100).toFixed(p);\n },\n \"b\": function b(x) {\n return Math.round(x).toString(2);\n },\n \"c\": function c(x) {\n return x + \"\";\n },\n \"d\": formatDecimal,\n \"e\": function e(x, p) {\n return x.toExponential(p);\n },\n \"f\": function f(x, p) {\n return x.toFixed(p);\n },\n \"g\": function g(x, p) {\n return x.toPrecision(p);\n },\n \"o\": function o(x) {\n return Math.round(x).toString(8);\n },\n \"p\": function p(x, _p) {\n return formatRounded(x * 100, _p);\n },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function X(x) {\n return Math.round(x).toString(16).toUpperCase();\n },\n \"x\": function x(_x) {\n return Math.round(_x).toString(16);\n }\n};","export default function (x) {\n return x;\n}","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport { prefixExponent } from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\nvar map = Array.prototype.map,\n prefixes = [\"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"µ\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\nexport default function (locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type; // The \"n\" type is an alias for \",g\".\n\n if (type === \"n\") comma = true, type = \"g\"; // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\"; // If zero fill is specified, padding goes after sign and before digits.\n\n if (zero || fill === \"0\" && align === \"=\") zero = true, fill = \"0\", align = \"=\"; // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\"; // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type); // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n\n precision = precision === undefined ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i,\n n,\n c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value; // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n\n var valueNegative = value < 0 || 1 / value < 0; // Perform the initial formatting.\n\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision); // Trim insignificant zeros.\n\n if (trim) value = formatTrim(value); // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false; // Compute the prefix and suffix.\n\n valuePrefix = (valueNegative ? sign === \"(\" ? sign : minus : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\"); // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n\n if (maybeSuffix) {\n i = -1, n = value.length;\n\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n } // If the fill character is not \"0\", grouping is applied before padding.\n\n\n if (comma && !zero) value = group(value, Infinity); // Compute the padding.\n\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\"; // If the fill character is \"0\", grouping is applied after padding.\n\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\"; // Reconstruct the final output based on the desired alignment.\n\n switch (align) {\n case \"<\":\n value = valuePrefix + value + valueSuffix + padding;\n break;\n\n case \"=\":\n value = valuePrefix + padding + value + valueSuffix;\n break;\n\n case \"^\":\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n\n default:\n value = padding + valuePrefix + value + valueSuffix;\n break;\n }\n\n return numerals(value);\n }\n\n format.toString = function () {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function (value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}","export default function (grouping, thousands) {\n return function (value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}","export default function (numerals) {\n return function (value) {\n return value.replace(/[0-9]/g, function (i) {\n return numerals[+i];\n });\n };\n}","import React, { memo, useMemo, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { Motion, spring, TransitionMotion } from 'react-motion';\nimport { textPropsByEngine, useTheme, useMotionConfig } from '@nivo/core';\nimport isNumber from 'lodash/isNumber';\nimport { timeMillisecond, utcMillisecond, timeSecond, utcSecond, timeMinute, utcMinute, timeHour, utcHour, timeDay, utcDay, timeWeek, utcWeek, timeSunday, utcSunday, timeMonday, utcMonday, timeTuesday, utcTuesday, timeWednesday, utcWednesday, timeThursday, utcThursday, timeFriday, utcFriday, timeSaturday, utcSaturday, timeMonth, utcMonth, timeYear, utcYear } from 'd3-time';\nimport { timeFormat } from 'd3-time-format';\nimport { format } from 'd3-format';\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar centerScale = function centerScale(scale) {\n var bandwidth = scale.bandwidth();\n if (bandwidth === 0) return scale;\n var offset = bandwidth / 2;\n\n if (scale.round()) {\n offset = Math.round(offset);\n }\n\n return function (d) {\n return scale(d) + offset;\n };\n};\n\nvar timeByType = {\n millisecond: [timeMillisecond, utcMillisecond],\n second: [timeSecond, utcSecond],\n minute: [timeMinute, utcMinute],\n hour: [timeHour, utcHour],\n day: [timeDay, utcDay],\n week: [timeWeek, utcWeek],\n sunday: [timeSunday, utcSunday],\n monday: [timeMonday, utcMonday],\n tuesday: [timeTuesday, utcTuesday],\n wednesday: [timeWednesday, utcWednesday],\n thursday: [timeThursday, utcThursday],\n friday: [timeFriday, utcFriday],\n saturday: [timeSaturday, utcSaturday],\n month: [timeMonth, utcMonth],\n year: [timeYear, utcYear]\n};\nvar timeTypes = Object.keys(timeByType);\nvar timeIntervalRegexp = new RegExp(\"^every\\\\s*(\\\\d+)?\\\\s*(\".concat(timeTypes.join('|'), \")s?$\"), 'i');\n\nvar getScaleTicks = function getScaleTicks(scale, spec) {\n if (Array.isArray(spec)) {\n return spec;\n }\n\n if (scale.ticks) {\n if (spec === undefined) {\n return scale.ticks();\n }\n\n if (isNumber(spec)) {\n return scale.ticks(spec);\n }\n\n if (typeof spec === 'string') {\n var matches = spec.match(timeIntervalRegexp);\n\n if (matches) {\n var timeType = timeByType[matches[2]][scale.useUTC ? 1 : 0];\n\n if (matches[1] === undefined) {\n return scale.ticks(timeType);\n }\n\n return scale.ticks(timeType.every(Number(matches[1])));\n }\n\n throw new Error(\"Invalid tickValues: \".concat(spec));\n }\n }\n\n return scale.domain();\n};\n\nvar computeCartesianTicks = function computeCartesianTicks(_ref) {\n var axis = _ref.axis,\n scale = _ref.scale,\n ticksPosition = _ref.ticksPosition,\n tickValues = _ref.tickValues,\n tickSize = _ref.tickSize,\n tickPadding = _ref.tickPadding,\n tickRotation = _ref.tickRotation,\n _ref$engine = _ref.engine,\n engine = _ref$engine === void 0 ? 'svg' : _ref$engine;\n var values = getScaleTicks(scale, tickValues);\n var textProps = textPropsByEngine[engine];\n var position = scale.bandwidth ? centerScale(scale) : scale;\n var line = {\n lineX: 0,\n lineY: 0\n };\n var text = {\n textX: 0,\n textY: 0\n };\n var translate;\n var textAlign = textProps.align.center;\n var textBaseline = textProps.baseline.center;\n\n if (axis === 'x') {\n translate = function translate(d) {\n return {\n x: position(d),\n y: 0\n };\n };\n\n line.lineY = tickSize * (ticksPosition === 'after' ? 1 : -1);\n text.textY = (tickSize + tickPadding) * (ticksPosition === 'after' ? 1 : -1);\n\n if (ticksPosition === 'after') {\n textBaseline = textProps.baseline.top;\n } else {\n textBaseline = textProps.baseline.bottom;\n }\n\n if (tickRotation === 0) {\n textAlign = textProps.align.center;\n } else if (ticksPosition === 'after' && tickRotation < 0 || ticksPosition === 'before' && tickRotation > 0) {\n textAlign = textProps.align.right;\n textBaseline = textProps.baseline.center;\n } else if (ticksPosition === 'after' && tickRotation > 0 || ticksPosition === 'before' && tickRotation < 0) {\n textAlign = textProps.align.left;\n textBaseline = textProps.baseline.center;\n }\n } else {\n translate = function translate(d) {\n return {\n x: 0,\n y: position(d)\n };\n };\n\n line.lineX = tickSize * (ticksPosition === 'after' ? 1 : -1);\n text.textX = (tickSize + tickPadding) * (ticksPosition === 'after' ? 1 : -1);\n\n if (ticksPosition === 'after') {\n textAlign = textProps.align.left;\n } else {\n textAlign = textProps.align.right;\n }\n }\n\n var ticks = values.map(function (value) {\n return _objectSpread({\n key: value,\n value: value\n }, translate(value), line, text);\n });\n return {\n ticks: ticks,\n textAlign: textAlign,\n textBaseline: textBaseline\n };\n};\n\nvar getFormatter = function getFormatter(format$1, scale) {\n if (!format$1 || typeof format$1 === 'function') return format$1;\n\n if (scale.type === 'time') {\n var f = timeFormat(format$1);\n return function (d) {\n return f(new Date(d));\n };\n }\n\n return format(format$1);\n};\n\nvar computeGridLines = function computeGridLines(_ref2) {\n var width = _ref2.width,\n height = _ref2.height,\n scale = _ref2.scale,\n axis = _ref2.axis,\n _values = _ref2.values;\n var lineValues = Array.isArray(_values) ? _values : undefined;\n var lineCount = isNumber(_values) ? _values : undefined;\n var values = lineValues || getScaleTicks(scale, lineCount);\n var position = scale.bandwidth ? centerScale(scale) : scale;\n var lines;\n\n if (axis === 'x') {\n lines = values.map(function (v) {\n return {\n key: \"\".concat(v),\n x1: position(v),\n x2: position(v),\n y1: 0,\n y2: height\n };\n });\n } else if (axis === 'y') {\n lines = values.map(function (v) {\n return {\n key: \"\".concat(v),\n x1: 0,\n x2: width,\n y1: position(v),\n y2: position(v)\n };\n });\n }\n\n return lines;\n};\n\nvar axisPropTypes = {\n ticksPosition: PropTypes.oneOf(['before', 'after']),\n tickValues: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)])), PropTypes.string]),\n tickSize: PropTypes.number,\n tickPadding: PropTypes.number,\n tickRotation: PropTypes.number,\n format: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n renderTick: PropTypes.func,\n legend: PropTypes.node,\n legendPosition: PropTypes.oneOf(['start', 'middle', 'end']),\n legendOffset: PropTypes.number\n};\nvar axisPropType = PropTypes.shape(axisPropTypes);\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar AxisTick = function AxisTick(_ref) {\n var _value = _ref.value,\n x = _ref.x,\n y = _ref.y,\n opacity = _ref.opacity,\n rotate = _ref.rotate,\n format = _ref.format,\n lineX = _ref.lineX,\n lineY = _ref.lineY,\n _onClick = _ref.onClick,\n textX = _ref.textX,\n textY = _ref.textY,\n textBaseline = _ref.textBaseline,\n textAnchor = _ref.textAnchor;\n var theme = useTheme();\n var value = _value;\n\n if (format !== undefined) {\n value = format(value);\n }\n\n var gStyle = {\n opacity: opacity\n };\n\n if (_onClick) {\n gStyle['cursor'] = 'pointer';\n }\n\n return React.createElement(\"g\", _extends({\n transform: \"translate(\".concat(x, \",\").concat(y, \")\")\n }, _onClick ? {\n onClick: function onClick(e) {\n return _onClick(e, value);\n }\n } : {}, {\n style: gStyle\n }), React.createElement(\"line\", {\n x1: 0,\n x2: lineX,\n y1: 0,\n y2: lineY,\n style: theme.axis.ticks.line\n }), React.createElement(\"text\", {\n dominantBaseline: textBaseline,\n textAnchor: textAnchor,\n transform: \"translate(\".concat(textX, \",\").concat(textY, \") rotate(\").concat(rotate, \")\"),\n style: theme.axis.ticks.text\n }, value));\n};\n\nAxisTick.defaultProps = {\n opacity: 1,\n rotate: 0\n};\nvar AxisTick$1 = memo(AxisTick);\n\nfunction _extends$1() {\n _extends$1 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$1.apply(this, arguments);\n}\n\nfunction _objectSpread$1(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$1(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$1(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar willEnter = function willEnter() {\n return {\n rotate: 0,\n opacity: 0,\n x: 0,\n y: 0\n };\n};\n\nvar willLeave = function willLeave(springConfig) {\n return function (_ref) {\n var _ref$style = _ref.style,\n x = _ref$style.x,\n y = _ref$style.y,\n rotate = _ref$style.rotate;\n return {\n rotate: rotate,\n opacity: spring(0, springConfig),\n x: spring(x.val, springConfig),\n y: spring(y.val, springConfig)\n };\n };\n};\n\nvar defaultTickRenderer = function defaultTickRenderer(props) {\n return React.createElement(AxisTick$1, props);\n};\n\nvar Axis = function Axis(_ref2) {\n var axis = _ref2.axis,\n scale = _ref2.scale,\n x = _ref2.x,\n y = _ref2.y,\n length = _ref2.length,\n ticksPosition = _ref2.ticksPosition,\n tickValues = _ref2.tickValues,\n tickSize = _ref2.tickSize,\n tickPadding = _ref2.tickPadding,\n tickRotation = _ref2.tickRotation,\n format = _ref2.format,\n renderTick = _ref2.renderTick,\n legend = _ref2.legend,\n legendPosition = _ref2.legendPosition,\n legendOffset = _ref2.legendOffset,\n onClick = _ref2.onClick;\n var theme = useTheme();\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n\n var formatValue = useMemo(function () {\n return getFormatter(format, scale);\n }, [format, scale]);\n\n var _computeCartesianTick = computeCartesianTicks({\n axis: axis,\n scale: scale,\n ticksPosition: ticksPosition,\n tickValues: tickValues,\n tickSize: tickSize,\n tickPadding: tickPadding,\n tickRotation: tickRotation\n }),\n ticks = _computeCartesianTick.ticks,\n textAlign = _computeCartesianTick.textAlign,\n textBaseline = _computeCartesianTick.textBaseline;\n\n var legendNode = null;\n\n if (legend !== undefined) {\n var legendX = 0;\n var legendY = 0;\n var legendRotation = 0;\n var textAnchor;\n\n if (axis === 'y') {\n legendRotation = -90;\n legendX = legendOffset;\n\n if (legendPosition === 'start') {\n textAnchor = 'start';\n legendY = length;\n } else if (legendPosition === 'middle') {\n textAnchor = 'middle';\n legendY = length / 2;\n } else if (legendPosition === 'end') {\n textAnchor = 'end';\n }\n } else {\n legendY = legendOffset;\n\n if (legendPosition === 'start') {\n textAnchor = 'start';\n } else if (legendPosition === 'middle') {\n textAnchor = 'middle';\n legendX = length / 2;\n } else if (legendPosition === 'end') {\n textAnchor = 'end';\n legendX = length;\n }\n }\n\n legendNode = React.createElement(\"text\", {\n transform: \"translate(\".concat(legendX, \", \").concat(legendY, \") rotate(\").concat(legendRotation, \")\"),\n textAnchor: textAnchor,\n style: _objectSpread$1({\n dominantBaseline: 'central'\n }, theme.axis.legend.text)\n }, legend);\n }\n\n if (animate !== true) {\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(x, \",\").concat(y, \")\")\n }, ticks.map(function (tick, tickIndex) {\n return React.createElement(renderTick, _objectSpread$1({\n tickIndex: tickIndex,\n format: formatValue,\n rotate: tickRotation,\n textBaseline: textBaseline,\n textAnchor: textAlign\n }, tick, onClick ? {\n onClick: onClick\n } : {}));\n }), React.createElement(\"line\", {\n style: theme.axis.domain.line,\n x1: 0,\n x2: axis === 'x' ? length : 0,\n y1: 0,\n y2: axis === 'x' ? 0 : length\n }), legendNode);\n }\n\n return React.createElement(Motion, {\n style: {\n x: spring(x, springConfig),\n y: spring(y, springConfig)\n }\n }, function (xy) {\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(xy.x, \",\").concat(xy.y, \")\")\n }, React.createElement(TransitionMotion, {\n willEnter: willEnter,\n willLeave: willLeave(springConfig),\n styles: ticks.map(function (tick) {\n return {\n key: \"\".concat(tick.key),\n data: tick,\n style: {\n opacity: spring(1, springConfig),\n x: spring(tick.x, springConfig),\n y: spring(tick.y, springConfig),\n rotate: spring(tickRotation, springConfig)\n }\n };\n })\n }, function (interpolatedStyles) {\n return React.createElement(Fragment, null, interpolatedStyles.map(function (_ref3, tickIndex) {\n var style = _ref3.style,\n tick = _ref3.data;\n return React.createElement(renderTick, _objectSpread$1({\n tickIndex: tickIndex,\n format: formatValue,\n textBaseline: textBaseline,\n textAnchor: textAlign\n }, tick, style, onClick ? {\n onClick: onClick\n } : {}));\n }));\n }), React.createElement(Motion, {\n style: {\n x2: spring(axis === 'x' ? length : 0, springConfig),\n y2: spring(axis === 'x' ? 0 : length, springConfig)\n }\n }, function (values) {\n return React.createElement(\"line\", _extends$1({\n style: theme.axis.domain.line,\n x1: 0,\n y1: 0\n }, values));\n }), legendNode);\n });\n};\n\nAxis.defaultProps = {\n x: 0,\n y: 0,\n tickSize: 5,\n tickPadding: 5,\n tickRotation: 0,\n renderTick: defaultTickRenderer,\n legendPosition: 'end',\n legendOffset: 0\n};\nvar Axis$1 = memo(Axis);\n\nfunction _extends$2() {\n _extends$2 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$2.apply(this, arguments);\n}\n\nvar positions = ['top', 'right', 'bottom', 'left'];\n\nvar Axes = function Axes(_ref) {\n var xScale = _ref.xScale,\n yScale = _ref.yScale,\n width = _ref.width,\n height = _ref.height,\n top = _ref.top,\n right = _ref.right,\n bottom = _ref.bottom,\n left = _ref.left;\n var axes = {\n top: top,\n right: right,\n bottom: bottom,\n left: left\n };\n return positions.map(function (position) {\n var axis = axes[position];\n if (!axis) return null;\n var isXAxis = position === 'top' || position === 'bottom';\n var ticksPosition = position === 'top' || position === 'left' ? 'before' : 'after';\n return React.createElement(Axis$1, _extends$2({\n key: position\n }, axis, {\n axis: isXAxis ? 'x' : 'y',\n x: position === 'right' ? width : 0,\n y: position === 'bottom' ? height : 0,\n scale: isXAxis ? xScale : yScale,\n length: isXAxis ? width : height,\n ticksPosition: ticksPosition\n }));\n });\n};\n\nvar Axes$1 = memo(Axes);\n\nvar GridLine = function GridLine(props) {\n return React.createElement(\"line\", props);\n};\n\nGridLine.defaultProps = {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n};\nvar GridLine$1 = memo(GridLine);\n\nfunction _extends$3() {\n _extends$3 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$3.apply(this, arguments);\n}\n\nvar GridLines = function GridLines(_ref) {\n var type = _ref.type,\n lines = _ref.lines;\n var theme = useTheme();\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n\n var lineWillEnter = useMemo(function () {\n return function (_ref2) {\n var style = _ref2.style;\n return {\n opacity: 0,\n x1: type === 'x' ? 0 : style.x1.val,\n x2: type === 'x' ? 0 : style.x2.val,\n y1: type === 'y' ? 0 : style.y1.val,\n y2: type === 'y' ? 0 : style.y2.val\n };\n };\n }, [type]);\n var lineWillLeave = useMemo(function () {\n return function (_ref3) {\n var style = _ref3.style;\n return {\n opacity: spring(0, springConfig),\n x1: spring(style.x1.val, springConfig),\n x2: spring(style.x2.val, springConfig),\n y1: spring(style.y1.val, springConfig),\n y2: spring(style.y2.val, springConfig)\n };\n };\n }, [springConfig]);\n\n if (!animate) {\n return React.createElement(\"g\", null, lines.map(function (line) {\n return React.createElement(GridLine$1, _extends$3({\n key: line.key\n }, line, theme.grid.line));\n }));\n }\n\n return React.createElement(TransitionMotion, {\n willEnter: lineWillEnter,\n willLeave: lineWillLeave,\n styles: lines.map(function (line) {\n return {\n key: line.key,\n style: {\n opacity: spring(1, springConfig),\n x1: spring(line.x1 || 0, springConfig),\n x2: spring(line.x2 || 0, springConfig),\n y1: spring(line.y1 || 0, springConfig),\n y2: spring(line.y2 || 0, springConfig)\n }\n };\n })\n }, function (interpolatedStyles) {\n return React.createElement(\"g\", null, interpolatedStyles.map(function (interpolatedStyle) {\n var key = interpolatedStyle.key,\n style = interpolatedStyle.style;\n return React.createElement(GridLine$1, _extends$3({\n key: key\n }, theme.grid.line, style));\n }));\n });\n};\n\nvar GridLines$1 = memo(GridLines);\n\nvar Grid = function Grid(_ref) {\n var width = _ref.width,\n height = _ref.height,\n xScale = _ref.xScale,\n yScale = _ref.yScale,\n xValues = _ref.xValues,\n yValues = _ref.yValues;\n var xLines = useMemo(function () {\n if (!xScale) return false;\n return computeGridLines({\n width: width,\n height: height,\n scale: xScale,\n axis: 'x',\n values: xValues\n });\n }, [xScale, xValues]);\n var yLines = yScale ? computeGridLines({\n width: width,\n height: height,\n scale: yScale,\n axis: 'y',\n values: yValues\n }) : false;\n return React.createElement(React.Fragment, null, xLines && React.createElement(GridLines$1, {\n type: \"x\",\n lines: xLines\n }), yLines && React.createElement(GridLines$1, {\n type: \"y\",\n lines: yLines\n }));\n};\n\nvar Grid$1 = memo(Grid);\n\nvar degreesToRadians = function degreesToRadians(degrees) {\n return degrees * Math.PI / 180;\n};\n\nfunction _objectSpread$2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$2(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$2(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar renderAxisToCanvas = function renderAxisToCanvas(ctx, _ref) {\n var axis = _ref.axis,\n scale = _ref.scale,\n _ref$x = _ref.x,\n x = _ref$x === void 0 ? 0 : _ref$x,\n _ref$y = _ref.y,\n y = _ref$y === void 0 ? 0 : _ref$y,\n length = _ref.length,\n ticksPosition = _ref.ticksPosition,\n tickValues = _ref.tickValues,\n _ref$tickSize = _ref.tickSize,\n tickSize = _ref$tickSize === void 0 ? 5 : _ref$tickSize,\n _ref$tickPadding = _ref.tickPadding,\n tickPadding = _ref$tickPadding === void 0 ? 5 : _ref$tickPadding,\n _ref$tickRotation = _ref.tickRotation,\n tickRotation = _ref$tickRotation === void 0 ? 0 : _ref$tickRotation,\n format = _ref.format,\n legend = _ref.legend,\n _ref$legendPosition = _ref.legendPosition,\n legendPosition = _ref$legendPosition === void 0 ? 'end' : _ref$legendPosition,\n _ref$legendOffset = _ref.legendOffset,\n legendOffset = _ref$legendOffset === void 0 ? 0 : _ref$legendOffset,\n theme = _ref.theme;\n\n var _computeCartesianTick = computeCartesianTicks({\n axis: axis,\n scale: scale,\n ticksPosition: ticksPosition,\n tickValues: tickValues,\n tickSize: tickSize,\n tickPadding: tickPadding,\n tickRotation: tickRotation,\n engine: 'canvas'\n }),\n ticks = _computeCartesianTick.ticks,\n textAlign = _computeCartesianTick.textAlign,\n textBaseline = _computeCartesianTick.textBaseline;\n\n ctx.save();\n ctx.translate(x, y);\n ctx.textAlign = textAlign;\n ctx.textBaseline = textBaseline;\n ctx.font = \"\".concat(theme.axis.ticks.text.fontSize, \"px \").concat(theme.axis.ticks.text.fontFamily);\n\n if (theme.axis.domain.line.strokeWidth > 0) {\n ctx.lineWidth = theme.axis.domain.line.strokeWidth;\n ctx.lineCap = 'square';\n ctx.strokeStyle = theme.axis.domain.line.stroke;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(axis === 'x' ? length : 0, axis === 'x' ? 0 : length);\n ctx.stroke();\n }\n\n ticks.forEach(function (tick) {\n if (theme.axis.ticks.line.strokeWidth > 0) {\n ctx.lineWidth = theme.axis.ticks.line.strokeWidth;\n ctx.lineCap = 'square';\n ctx.strokeStyle = theme.axis.ticks.line.stroke;\n ctx.beginPath();\n ctx.moveTo(tick.x, tick.y);\n ctx.lineTo(tick.x + tick.lineX, tick.y + tick.lineY);\n ctx.stroke();\n }\n\n var value = format !== undefined ? format(tick.value) : tick.value;\n ctx.save();\n ctx.translate(tick.x + tick.textX, tick.y + tick.textY);\n ctx.rotate(degreesToRadians(tickRotation));\n ctx.fillStyle = theme.axis.ticks.text.fill;\n ctx.fillText(value, 0, 0);\n ctx.restore();\n });\n\n if (legend !== undefined) {\n var legendX = 0;\n var legendY = 0;\n var legendRotation = 0;\n\n var _textAlign;\n\n if (axis === 'y') {\n legendRotation = -90;\n legendX = legendOffset;\n\n if (legendPosition === 'start') {\n _textAlign = 'start';\n legendY = length;\n } else if (legendPosition === 'middle') {\n _textAlign = 'center';\n legendY = length / 2;\n } else if (legendPosition === 'end') {\n _textAlign = 'end';\n }\n } else {\n legendY = legendOffset;\n\n if (legendPosition === 'start') {\n _textAlign = 'start';\n } else if (legendPosition === 'middle') {\n _textAlign = 'center';\n legendX = length / 2;\n } else if (legendPosition === 'end') {\n _textAlign = 'end';\n legendX = length;\n }\n }\n\n ctx.translate(legendX, legendY);\n ctx.rotate(degreesToRadians(legendRotation));\n ctx.font = \"\".concat(theme.axis.legend.text.fontWeight ? \"\".concat(theme.axis.legend.text.fontWeight, \" \") : '').concat(theme.axis.legend.text.fontSize, \"px \").concat(theme.axis.legend.text.fontFamily);\n ctx.fillStyle = theme.axis.legend.text.fill;\n ctx.textAlign = _textAlign;\n ctx.textBaseline = 'middle';\n ctx.fillText(legend, 0, 0);\n }\n\n ctx.restore();\n};\n\nvar positions$1 = ['top', 'right', 'bottom', 'left'];\n\nvar renderAxesToCanvas = function renderAxesToCanvas(ctx, _ref2) {\n var xScale = _ref2.xScale,\n yScale = _ref2.yScale,\n width = _ref2.width,\n height = _ref2.height,\n top = _ref2.top,\n right = _ref2.right,\n bottom = _ref2.bottom,\n left = _ref2.left,\n theme = _ref2.theme;\n var axes = {\n top: top,\n right: right,\n bottom: bottom,\n left: left\n };\n positions$1.forEach(function (position) {\n var axis = axes[position];\n if (!axis) return null;\n var isXAxis = position === 'top' || position === 'bottom';\n var ticksPosition = position === 'top' || position === 'left' ? 'before' : 'after';\n var scale = isXAxis ? xScale : yScale;\n var format = getFormatter(axis.format, scale);\n renderAxisToCanvas(ctx, _objectSpread$2({}, axis, {\n axis: isXAxis ? 'x' : 'y',\n x: position === 'right' ? width : 0,\n y: position === 'bottom' ? height : 0,\n scale: scale,\n format: format,\n length: isXAxis ? width : height,\n ticksPosition: ticksPosition,\n theme: theme\n }));\n });\n};\n\nvar renderGridLinesToCanvas = function renderGridLinesToCanvas(ctx, _ref3) {\n var width = _ref3.width,\n height = _ref3.height,\n scale = _ref3.scale,\n axis = _ref3.axis,\n values = _ref3.values;\n var lines = computeGridLines({\n width: width,\n height: height,\n scale: scale,\n axis: axis,\n values: values\n });\n lines.forEach(function (line) {\n ctx.beginPath();\n ctx.moveTo(line.x1, line.y1);\n ctx.lineTo(line.x2, line.y2);\n ctx.stroke();\n });\n};\n\nexport { Axes$1 as Axes, Axis$1 as Axis, Grid$1 as Grid, axisPropType, axisPropTypes, renderAxesToCanvas, renderAxisToCanvas, renderGridLinesToCanvas };","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var baseGet = require('./_baseGet'),\n baseSet = require('./_baseSet'),\n castPath = require('./_castPath');\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nmodule.exports = basePickBy;\n","var createCtor = require('./_createCtor'),\n root = require('./_root');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n}\n\nmodule.exports = createBind;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","function _point(that, x, y) {\n that._context.bezierCurveTo((2 * that._x0 + that._x1) / 3, (2 * that._y0 + that._y1) / 3, (that._x0 + 2 * that._x1) / 3, (that._y0 + 2 * that._y1) / 3, (that._x0 + 4 * that._x1 + x) / 6, (that._y0 + 4 * that._y1 + y) / 6);\n}\n\nexport { _point as point };\nexport function Basis(context) {\n this._context = context;\n}\nBasis.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 3:\n _point(this, this._x1, this._y1);\n\n // proceed\n\n case 2:\n this._context.lineTo(this._x1, this._y1);\n\n break;\n }\n\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n\n this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6);\n\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\nexport default function (context) {\n return new Basis(context);\n}","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1,\n t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6;\n}\nexport default function (values) {\n var n = values.length - 1;\n return function (t) {\n var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}","import { rgb as colorRgb } from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, { gamma } from \"./color.js\";\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function (t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function (colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i,\n color;\n\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function (t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);","import { basis } from \"./basis.js\";\nexport default function (values) {\n var n = values.length;\n return function (t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}","import { interpolateRgbBasis } from \"d3-interpolate\";\nexport default function (scheme) {\n return interpolateRgbBasis(scheme[scheme.length - 1]);\n}","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"ffeda0feb24cf03b20\", \"ffffb2fecc5cfd8d3ce31a1c\", \"ffffb2fecc5cfd8d3cf03b20bd0026\", \"ffffb2fed976feb24cfd8d3cf03b20bd0026\", \"ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026\", \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026\", \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026\").map(colors);\nexport default ramp(scheme);","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\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; // stepper will have already taken care of rounding precision errors, so\n // won't have such thing as 0.9999 !=== 1\n\n if (currentStyle[key] !== styleValue) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports['default'];","import \"core-js/modules/es.array.reduce.js\";\nimport React, { Fragment, Component } from 'react';\nimport { TransitionMotion, spring } from 'react-motion';\nimport { defsPropTypes, noop, withTheme, withDimensions, withMotion, getAccessorFor, getLabelGenerator, bindDefs, Container, CartesianMarkers, SvgWrapper, getRelativeCursor, isCursorInRect, ResponsiveWrapper } from '@nivo/core';\nimport { axisPropType, Grid, Axes, renderGridLinesToCanvas, renderAxesToCanvas } from '@nivo/axes';\nimport { LegendPropShape, BoxLegendSvg, renderLegendToCanvas } from '@nivo/legends';\nimport min from 'lodash/min';\nimport max from 'lodash/max';\nimport range from 'lodash/range';\nimport { scaleBand, scaleLinear } from 'd3-scale';\nimport flattenDepth from 'lodash/flattenDepth';\nimport { stack, stackOffsetDiverging } from 'd3-shape';\nimport _uniqBy from 'lodash/uniqBy';\nimport setDisplayName from 'recompose/setDisplayName';\nimport compose from 'recompose/compose';\nimport defaultProps from 'recompose/defaultProps';\nimport withPropsOnChange from 'recompose/withPropsOnChange';\nimport pure from 'recompose/pure';\nimport { inheritedColorPropType, ordinalColorsPropType, colorPropertyAccessorPropType, getOrdinalColorScale, getInheritedColorGenerator } from '@nivo/colors';\nimport PropTypes from 'prop-types';\nimport { BasicTooltip } from '@nivo/tooltip';\nimport { useAnnotations, Annotation } from '@nivo/annotations';\n\nvar getIndexedScale = function getIndexedScale(data, getIndex, range, padding) {\n return scaleBand().rangeRound(range).domain(data.map(getIndex)).padding(padding);\n};\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nvar getGroupedScale = function getGroupedScale(data, keys, _minValue, _maxValue, range) {\n var allValues = data.reduce(function (acc, entry) {\n return [].concat(_toConsumableArray(acc), _toConsumableArray(keys.map(function (k) {\n return entry[k];\n })));\n }, []);\n var maxValue = _maxValue;\n\n if (maxValue === 'auto') {\n maxValue = max(allValues);\n }\n\n var minValue = _minValue;\n\n if (minValue === 'auto') {\n minValue = min(allValues);\n if (minValue > 0) minValue = 0;\n }\n\n return scaleLinear().rangeRound(range).domain([minValue, maxValue]);\n};\n\nvar generateVerticalGroupedBars = function generateVerticalGroupedBars(_ref) {\n var data = _ref.data,\n getIndex = _ref.getIndex,\n keys = _ref.keys,\n minValue = _ref.minValue,\n maxValue = _ref.maxValue,\n reverse = _ref.reverse,\n width = _ref.width,\n height = _ref.height,\n getColor = _ref.getColor,\n _ref$padding = _ref.padding,\n padding = _ref$padding === void 0 ? 0 : _ref$padding,\n _ref$innerPadding = _ref.innerPadding,\n innerPadding = _ref$innerPadding === void 0 ? 0 : _ref$innerPadding;\n var xScale = getIndexedScale(data, getIndex, [0, width], padding);\n var yRange = reverse ? [0, height] : [height, 0];\n var yScale = getGroupedScale(data, keys, minValue, maxValue, yRange);\n var barWidth = (xScale.bandwidth() - innerPadding * (keys.length - 1)) / keys.length;\n var yRef = yScale(0);\n\n var getY = function getY(d) {\n return d > 0 ? yScale(d) : yRef;\n };\n\n var getHeight = function getHeight(d, y) {\n return d > 0 ? yRef - y : yScale(d) - yRef;\n };\n\n if (reverse) {\n getY = function getY(d) {\n return d < 0 ? yScale(d) : yRef;\n };\n\n getHeight = function getHeight(d, y) {\n return d < 0 ? yRef - y : yScale(d) - yRef;\n };\n }\n\n var bars = [];\n\n if (barWidth > 0) {\n keys.forEach(function (key, i) {\n range(xScale.domain().length).forEach(function (index) {\n var x = xScale(getIndex(data[index])) + barWidth * i + innerPadding * i;\n var y = getY(data[index][key]);\n var barHeight = getHeight(data[index][key], y);\n\n if (barWidth > 0 && barHeight > 0) {\n var barData = {\n id: key,\n value: data[index][key],\n index: index,\n indexValue: getIndex(data[index]),\n data: data[index]\n };\n bars.push({\n key: \"\".concat(key, \".\").concat(barData.indexValue),\n data: barData,\n x: x,\n y: y,\n width: barWidth,\n height: barHeight,\n color: getColor(barData)\n });\n }\n });\n });\n }\n\n return {\n xScale: xScale,\n yScale: yScale,\n bars: bars\n };\n};\n\nvar generateHorizontalGroupedBars = function generateHorizontalGroupedBars(_ref2) {\n var data = _ref2.data,\n getIndex = _ref2.getIndex,\n keys = _ref2.keys,\n minValue = _ref2.minValue,\n maxValue = _ref2.maxValue,\n reverse = _ref2.reverse,\n width = _ref2.width,\n height = _ref2.height,\n getColor = _ref2.getColor,\n _ref2$padding = _ref2.padding,\n padding = _ref2$padding === void 0 ? 0 : _ref2$padding,\n _ref2$innerPadding = _ref2.innerPadding,\n innerPadding = _ref2$innerPadding === void 0 ? 0 : _ref2$innerPadding;\n var xRange = reverse ? [width, 0] : [0, width];\n var xScale = getGroupedScale(data, keys, minValue, maxValue, xRange);\n var yScale = getIndexedScale(data, getIndex, [height, 0], padding);\n var barHeight = (yScale.bandwidth() - innerPadding * (keys.length - 1)) / keys.length;\n var xRef = xScale(0);\n\n var getX = function getX(d) {\n return d > 0 ? xRef : xScale(d);\n };\n\n var getWidth = function getWidth(d, x) {\n return d > 0 ? xScale(d) - xRef : xRef - x;\n };\n\n if (reverse) {\n getX = function getX(d) {\n return d < 0 ? xRef : xScale(d);\n };\n\n getWidth = function getWidth(d, x) {\n return d < 0 ? xScale(d) - xRef : xRef - x;\n };\n }\n\n var bars = [];\n\n if (barHeight > 0) {\n keys.forEach(function (key, i) {\n range(yScale.domain().length).forEach(function (index) {\n var x = getX(data[index][key]);\n var y = yScale(getIndex(data[index])) + barHeight * i + innerPadding * i;\n var barWidth = getWidth(data[index][key], x);\n\n if (barWidth > 0) {\n var barData = {\n id: key,\n value: data[index][key],\n index: index,\n indexValue: getIndex(data[index]),\n data: data[index]\n };\n bars.push({\n key: \"\".concat(key, \".\").concat(barData.indexValue),\n data: barData,\n x: x,\n y: y,\n width: barWidth,\n height: barHeight,\n color: getColor(barData)\n });\n }\n });\n });\n }\n\n return {\n xScale: xScale,\n yScale: yScale,\n bars: bars\n };\n};\n\nvar generateGroupedBars = function generateGroupedBars(options) {\n return options.layout === 'vertical' ? generateVerticalGroupedBars(options) : generateHorizontalGroupedBars(options);\n};\n\nvar getStackedScale = function getStackedScale(data, _minValue, _maxValue, range) {\n var allValues = flattenDepth(data, 2);\n var minValue = _minValue;\n\n if (minValue === 'auto') {\n minValue = min(allValues);\n }\n\n var maxValue = _maxValue;\n\n if (maxValue === 'auto') {\n maxValue = max(allValues);\n }\n\n return scaleLinear().rangeRound(range).domain([minValue, maxValue]);\n};\n\nvar generateVerticalStackedBars = function generateVerticalStackedBars(_ref) {\n var data = _ref.data,\n getIndex = _ref.getIndex,\n keys = _ref.keys,\n minValue = _ref.minValue,\n maxValue = _ref.maxValue,\n reverse = _ref.reverse,\n width = _ref.width,\n height = _ref.height,\n getColor = _ref.getColor,\n _ref$padding = _ref.padding,\n padding = _ref$padding === void 0 ? 0 : _ref$padding,\n _ref$innerPadding = _ref.innerPadding,\n innerPadding = _ref$innerPadding === void 0 ? 0 : _ref$innerPadding;\n var stackedData = stack().keys(keys).offset(stackOffsetDiverging)(data);\n var xScale = getIndexedScale(data, getIndex, [0, width], padding);\n var yRange = reverse ? [0, height] : [height, 0];\n var yScale = getStackedScale(stackedData, minValue, maxValue, yRange);\n var bars = [];\n var barWidth = xScale.bandwidth();\n\n var getY = function getY(d) {\n return yScale(d[1]);\n };\n\n var getHeight = function getHeight(d, y) {\n return yScale(d[0]) - y;\n };\n\n if (reverse) {\n getY = function getY(d) {\n return yScale(d[0]);\n };\n\n getHeight = function getHeight(d, y) {\n return yScale(d[1]) - y;\n };\n }\n\n if (barWidth > 0) {\n stackedData.forEach(function (stackedDataItem) {\n xScale.domain().forEach(function (index, i) {\n var d = stackedDataItem[i];\n var x = xScale(getIndex(d.data));\n var y = getY(d);\n var barHeight = getHeight(d, y);\n\n if (innerPadding > 0) {\n y += innerPadding * 0.5;\n barHeight -= innerPadding;\n }\n\n if (barHeight > 0) {\n var barData = {\n id: stackedDataItem.key,\n value: d.data[stackedDataItem.key],\n index: i,\n indexValue: index,\n data: d.data\n };\n bars.push({\n key: \"\".concat(stackedDataItem.key, \".\").concat(index),\n data: barData,\n x: x,\n y: y,\n width: barWidth,\n height: barHeight,\n color: getColor(barData)\n });\n }\n });\n });\n }\n\n return {\n xScale: xScale,\n yScale: yScale,\n bars: bars\n };\n};\n\nvar generateHorizontalStackedBars = function generateHorizontalStackedBars(_ref2) {\n var data = _ref2.data,\n getIndex = _ref2.getIndex,\n keys = _ref2.keys,\n minValue = _ref2.minValue,\n maxValue = _ref2.maxValue,\n reverse = _ref2.reverse,\n width = _ref2.width,\n height = _ref2.height,\n getColor = _ref2.getColor,\n _ref2$padding = _ref2.padding,\n padding = _ref2$padding === void 0 ? 0 : _ref2$padding,\n _ref2$innerPadding = _ref2.innerPadding,\n innerPadding = _ref2$innerPadding === void 0 ? 0 : _ref2$innerPadding;\n var stackedData = stack().keys(keys).offset(stackOffsetDiverging)(data);\n var xRange = reverse ? [width, 0] : [0, width];\n var xScale = getStackedScale(stackedData, minValue, maxValue, xRange);\n var yScale = getIndexedScale(data, getIndex, [height, 0], padding);\n var bars = [];\n var barHeight = yScale.bandwidth();\n\n var getX = function getX(d) {\n return xScale(d[0]);\n };\n\n var getWidth = function getWidth(d, x) {\n return xScale(d[1]) - x;\n };\n\n if (reverse) {\n getX = function getX(d) {\n return xScale(d[1]);\n };\n\n getWidth = function getWidth(d, y) {\n return xScale(d[0]) - y;\n };\n }\n\n if (barHeight > 0) {\n stackedData.forEach(function (stackedDataItem) {\n yScale.domain().forEach(function (index, i) {\n var d = stackedDataItem[i];\n var y = yScale(getIndex(d.data));\n var barData = {\n id: stackedDataItem.key,\n value: d.data[stackedDataItem.key],\n index: i,\n indexValue: index,\n data: d.data\n };\n var x = getX(d);\n var barWidth = getWidth(d, x);\n\n if (innerPadding > 0) {\n x += innerPadding * 0.5;\n barWidth -= innerPadding;\n }\n\n if (barWidth > 0) {\n bars.push({\n key: \"\".concat(stackedDataItem.key, \".\").concat(index),\n data: barData,\n x: x,\n y: y,\n width: barWidth,\n height: barHeight,\n color: getColor(barData)\n });\n }\n });\n });\n }\n\n return {\n xScale: xScale,\n yScale: yScale,\n bars: bars\n };\n};\n\nvar generateStackedBars = function generateStackedBars(options) {\n return options.layout === 'vertical' ? generateVerticalStackedBars(options) : generateHorizontalStackedBars(options);\n};\n\nvar getLegendDataForKeys = function getLegendDataForKeys(bars, layout, direction, groupMode, reverse) {\n var data = _uniqBy(bars.map(function (bar) {\n return {\n id: bar.data.id,\n label: bar.data.id,\n color: bar.color,\n fill: bar.data.fill\n };\n }), function (_ref) {\n var id = _ref.id;\n return id;\n });\n\n if (layout === 'vertical' && groupMode === 'stacked' && direction === 'column' && reverse !== true || layout === 'horizontal' && groupMode === 'stacked' && reverse === true) {\n data.reverse();\n }\n\n return data;\n};\n\nvar getLegendDataForIndexes = function getLegendDataForIndexes(bars) {\n return _uniqBy(bars.map(function (bar) {\n return {\n id: bar.data.indexValue,\n label: bar.data.indexValue,\n color: bar.color,\n fill: bar.data.fill\n };\n }), function (_ref2) {\n var id = _ref2.id;\n return id;\n });\n};\n\nvar getLegendData = function getLegendData(_ref3) {\n var from = _ref3.from,\n bars = _ref3.bars,\n layout = _ref3.layout,\n direction = _ref3.direction,\n groupMode = _ref3.groupMode,\n reverse = _ref3.reverse;\n\n if (from === 'indexes') {\n return getLegendDataForIndexes(bars);\n }\n\n return getLegendDataForKeys(bars, layout, direction, groupMode, reverse);\n};\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar BarItem = function BarItem(_ref) {\n var data = _ref.data,\n x = _ref.x,\n y = _ref.y,\n width = _ref.width,\n height = _ref.height,\n borderRadius = _ref.borderRadius,\n color = _ref.color,\n borderWidth = _ref.borderWidth,\n borderColor = _ref.borderColor,\n label = _ref.label,\n shouldRenderLabel = _ref.shouldRenderLabel,\n labelColor = _ref.labelColor,\n showTooltip = _ref.showTooltip,\n hideTooltip = _ref.hideTooltip,\n onClick = _ref.onClick,\n onMouseEnter = _ref.onMouseEnter,\n onMouseLeave = _ref.onMouseLeave,\n tooltip = _ref.tooltip,\n theme = _ref.theme;\n\n var handleTooltip = function handleTooltip(e) {\n return showTooltip(tooltip, e);\n };\n\n var handleMouseEnter = function handleMouseEnter(e) {\n onMouseEnter(data, e);\n showTooltip(tooltip, e);\n };\n\n var handleMouseLeave = function handleMouseLeave(e) {\n onMouseLeave(data, e);\n hideTooltip(e);\n };\n\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(x, \", \").concat(y, \")\")\n }, React.createElement(\"rect\", {\n width: width,\n height: height,\n rx: borderRadius,\n ry: borderRadius,\n fill: data.fill ? data.fill : color,\n strokeWidth: borderWidth,\n stroke: borderColor,\n onMouseEnter: handleMouseEnter,\n onMouseMove: handleTooltip,\n onMouseLeave: handleMouseLeave,\n onClick: onClick\n }), shouldRenderLabel && React.createElement(\"text\", {\n x: width / 2,\n y: height / 2,\n textAnchor: \"middle\",\n dominantBaseline: \"central\",\n style: _objectSpread({}, theme.labels.text, {\n pointerEvents: 'none',\n fill: labelColor\n })\n }, label));\n};\n\nvar enhance = compose(withPropsOnChange(['data', 'color', 'onClick'], function (_ref2) {\n var data = _ref2.data,\n color = _ref2.color,\n _onClick = _ref2.onClick;\n return {\n onClick: function onClick(event) {\n return _onClick(_objectSpread({\n color: color\n }, data), event);\n }\n };\n}), withPropsOnChange(['data', 'color', 'theme', 'tooltip', 'getTooltipLabel', 'tooltipFormat'], function (_ref3) {\n var data = _ref3.data,\n color = _ref3.color,\n theme = _ref3.theme,\n tooltip = _ref3.tooltip,\n getTooltipLabel = _ref3.getTooltipLabel,\n tooltipFormat = _ref3.tooltipFormat;\n return {\n tooltip: React.createElement(BasicTooltip, {\n id: getTooltipLabel(data),\n value: data.value,\n enableChip: true,\n color: color,\n theme: theme,\n format: tooltipFormat,\n renderContent: typeof tooltip === 'function' ? tooltip.bind(null, _objectSpread({\n color: color,\n theme: theme\n }, data)) : null\n })\n };\n}), pure);\nvar BarItem$1 = enhance(BarItem);\n\nfunction _objectSpread$1(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$1(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$1(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar BarPropTypes = _objectSpread$1({\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\n indexBy: PropTypes.oneOfType([PropTypes.string, PropTypes.func]).isRequired,\n getIndex: PropTypes.func.isRequired,\n keys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])).isRequired,\n layers: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['grid', 'axes', 'bars', 'markers', 'legends', 'annotations']), PropTypes.func])).isRequired,\n groupMode: PropTypes.oneOf(['stacked', 'grouped']).isRequired,\n layout: PropTypes.oneOf(['horizontal', 'vertical']).isRequired,\n reverse: PropTypes.bool.isRequired,\n minValue: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['auto'])]).isRequired,\n maxValue: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['auto'])]).isRequired,\n padding: PropTypes.number.isRequired,\n innerPadding: PropTypes.number.isRequired,\n axisTop: axisPropType,\n axisRight: axisPropType,\n axisBottom: axisPropType,\n axisLeft: axisPropType,\n enableGridX: PropTypes.bool.isRequired,\n enableGridY: PropTypes.bool.isRequired,\n gridXValues: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]))]),\n gridYValues: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]))]),\n barComponent: PropTypes.func.isRequired,\n enableLabel: PropTypes.bool.isRequired,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.func]).isRequired,\n labelFormat: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n getLabel: PropTypes.func.isRequired,\n labelSkipWidth: PropTypes.number.isRequired,\n labelSkipHeight: PropTypes.number.isRequired,\n labelTextColor: inheritedColorPropType.isRequired,\n getLabelTextColor: PropTypes.func.isRequired,\n labelLinkColor: inheritedColorPropType.isRequired,\n getLabelLinkColor: PropTypes.func.isRequired,\n colors: ordinalColorsPropType.isRequired,\n colorBy: colorPropertyAccessorPropType.isRequired,\n borderRadius: PropTypes.number.isRequired,\n getColor: PropTypes.func.isRequired\n}, defsPropTypes, {\n borderWidth: PropTypes.number.isRequired,\n borderColor: inheritedColorPropType.isRequired,\n getBorderColor: PropTypes.func.isRequired,\n isInteractive: PropTypes.bool,\n onClick: PropTypes.func.isRequired,\n onMouseEnter: PropTypes.func.isRequired,\n onMouseLeave: PropTypes.func.isRequired,\n tooltipLabel: PropTypes.func,\n getTooltipLabel: PropTypes.func.isRequired,\n tooltipFormat: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n tooltip: PropTypes.func,\n legends: PropTypes.arrayOf(PropTypes.shape(_objectSpread$1({\n dataFrom: PropTypes.oneOf(['indexes', 'keys']).isRequired\n }, LegendPropShape))).isRequired,\n pixelRatio: PropTypes.number.isRequired\n});\n\nvar BarDefaultProps = {\n indexBy: 'id',\n keys: ['value'],\n layers: ['grid', 'axes', 'bars', 'markers', 'legends', 'annotations'],\n groupMode: 'stacked',\n layout: 'vertical',\n reverse: false,\n minValue: 'auto',\n maxValue: 'auto',\n padding: 0.1,\n innerPadding: 0,\n axisBottom: {},\n axisLeft: {},\n enableGridX: false,\n enableGridY: true,\n barComponent: BarItem$1,\n enableLabel: true,\n label: 'value',\n labelSkipWidth: 0,\n labelSkipHeight: 0,\n labelLinkColor: 'theme',\n labelTextColor: 'theme',\n colors: {\n scheme: 'nivo'\n },\n colorBy: 'id',\n defs: [],\n fill: [],\n borderRadius: 0,\n borderWidth: 0,\n borderColor: {\n from: 'color'\n },\n isInteractive: true,\n onClick: noop,\n onMouseEnter: noop,\n onMouseLeave: noop,\n legends: [],\n annotations: [],\n pixelRatio: global.window && global.window.devicePixelRatio ? global.window.devicePixelRatio : 1\n};\n\nvar enhance$1 = function enhance$1(Component) {\n return compose(defaultProps(BarDefaultProps), withTheme(), withDimensions(), withMotion(), withPropsOnChange(['colors', 'colorBy'], function (_ref) {\n var colors = _ref.colors,\n colorBy = _ref.colorBy;\n return {\n getColor: getOrdinalColorScale(colors, colorBy)\n };\n }), withPropsOnChange(['indexBy'], function (_ref2) {\n var indexBy = _ref2.indexBy;\n return {\n getIndex: getAccessorFor(indexBy)\n };\n }), withPropsOnChange(['labelTextColor', 'theme'], function (_ref3) {\n var labelTextColor = _ref3.labelTextColor,\n theme = _ref3.theme;\n return {\n getLabelTextColor: getInheritedColorGenerator(labelTextColor, theme)\n };\n }), withPropsOnChange(['labelLinkColor', 'theme'], function (_ref4) {\n var labelLinkColor = _ref4.labelLinkColor,\n theme = _ref4.theme;\n return {\n getLabelLinkColor: getInheritedColorGenerator(labelLinkColor, theme)\n };\n }), withPropsOnChange(['label', 'labelFormat'], function (_ref5) {\n var label = _ref5.label,\n labelFormat = _ref5.labelFormat;\n return {\n getLabel: getLabelGenerator(label, labelFormat)\n };\n }), withPropsOnChange(['borderColor', 'theme'], function (_ref6) {\n var borderColor = _ref6.borderColor,\n theme = _ref6.theme;\n return {\n getBorderColor: getInheritedColorGenerator(borderColor, theme)\n };\n }), withPropsOnChange(['tooltipLabel'], function (_ref7) {\n var tooltipLabel = _ref7.tooltipLabel;\n\n var getTooltipLabel = function getTooltipLabel(d) {\n return \"\".concat(d.id, \" - \").concat(d.indexValue);\n };\n\n if (typeof tooltipLabel === 'function') {\n getTooltipLabel = tooltipLabel;\n }\n\n return {\n getTooltipLabel: getTooltipLabel\n };\n }), pure)(Component);\n};\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar BarAnnotations = function BarAnnotations(_ref) {\n var bars = _ref.bars,\n annotations = _ref.annotations,\n animate = _ref.animate,\n motionStiffness = _ref.motionStiffness,\n motionDamping = _ref.motionDamping;\n var boundAnnotations = useAnnotations({\n items: bars,\n annotations: annotations,\n getPosition: function getPosition(bar) {\n return {\n x: bar.x + bar.width / 2,\n y: bar.y + bar.height / 2\n };\n },\n getDimensions: function getDimensions(bar, offset) {\n var width = bar.width + offset * 2;\n var height = bar.height + offset * 2;\n return {\n width: width,\n height: height,\n size: Math.max(width, height)\n };\n }\n });\n return boundAnnotations.map(function (annotation, i) {\n return React.createElement(Annotation, _extends({\n key: i\n }, annotation, {\n containerWidth: innerWidth,\n containerHeight: innerHeight,\n animate: animate,\n motionStiffness: motionStiffness,\n motionDamping: motionDamping\n }));\n });\n};\n\nfunction _extends$1() {\n _extends$1 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$1.apply(this, arguments);\n}\n\nfunction _objectSpread$2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$2(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$2(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar barWillEnterHorizontal = function barWillEnterHorizontal(_ref) {\n var style = _ref.style;\n return {\n x: style.x.val,\n y: style.y.val,\n width: 0,\n height: style.height.val\n };\n};\n\nvar barWillEnterVertical = function barWillEnterVertical(_ref2) {\n var style = _ref2.style;\n return {\n x: style.x.val,\n y: style.y.val + style.height.val,\n width: style.width.val,\n height: 0\n };\n};\n\nvar barWillLeaveHorizontal = function barWillLeaveHorizontal(springConfig) {\n return function (_ref3) {\n var style = _ref3.style;\n return {\n x: style.x,\n y: style.y,\n width: spring(0, springConfig),\n height: style.height\n };\n };\n};\n\nvar barWillLeaveVertical = function barWillLeaveVertical(springConfig) {\n return function (_ref4) {\n var style = _ref4.style;\n return {\n x: style.x,\n y: spring(style.y.val + style.height.val, springConfig),\n width: style.width,\n height: spring(0, springConfig)\n };\n };\n};\n\nvar Bar = function Bar(props) {\n var data = props.data,\n getIndex = props.getIndex,\n keys = props.keys,\n groupMode = props.groupMode,\n layout = props.layout,\n reverse = props.reverse,\n minValue = props.minValue,\n maxValue = props.maxValue,\n margin = props.margin,\n width = props.width,\n height = props.height,\n outerWidth = props.outerWidth,\n outerHeight = props.outerHeight,\n padding = props.padding,\n innerPadding = props.innerPadding,\n axisTop = props.axisTop,\n axisRight = props.axisRight,\n axisBottom = props.axisBottom,\n axisLeft = props.axisLeft,\n enableGridX = props.enableGridX,\n enableGridY = props.enableGridY,\n gridXValues = props.gridXValues,\n gridYValues = props.gridYValues,\n layers = props.layers,\n barComponent = props.barComponent,\n enableLabel = props.enableLabel,\n getLabel = props.getLabel,\n labelSkipWidth = props.labelSkipWidth,\n labelSkipHeight = props.labelSkipHeight,\n getLabelTextColor = props.getLabelTextColor,\n markers = props.markers,\n theme = props.theme,\n getColor = props.getColor,\n defs = props.defs,\n fill = props.fill,\n borderRadius = props.borderRadius,\n borderWidth = props.borderWidth,\n getBorderColor = props.getBorderColor,\n annotations = props.annotations,\n isInteractive = props.isInteractive,\n getTooltipLabel = props.getTooltipLabel,\n tooltipFormat = props.tooltipFormat,\n tooltip = props.tooltip,\n onClick = props.onClick,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n legends = props.legends,\n animate = props.animate,\n motionStiffness = props.motionStiffness,\n motionDamping = props.motionDamping;\n var options = {\n layout: layout,\n reverse: reverse,\n data: data,\n getIndex: getIndex,\n keys: keys,\n minValue: minValue,\n maxValue: maxValue,\n width: width,\n height: height,\n getColor: getColor,\n padding: padding,\n innerPadding: innerPadding\n };\n var result = groupMode === 'grouped' ? generateGroupedBars(options) : generateStackedBars(options);\n var motionProps = {\n animate: animate,\n motionDamping: motionDamping,\n motionStiffness: motionStiffness\n };\n var springConfig = {\n damping: motionDamping,\n stiffness: motionStiffness\n };\n var willEnter = layout === 'vertical' ? barWillEnterVertical : barWillEnterHorizontal;\n var willLeave = layout === 'vertical' ? barWillLeaveVertical(springConfig) : barWillLeaveHorizontal(springConfig);\n\n var shouldRenderLabel = function shouldRenderLabel(_ref5) {\n var width = _ref5.width,\n height = _ref5.height;\n if (!enableLabel) return false;\n if (labelSkipWidth > 0 && width < labelSkipWidth) return false;\n if (labelSkipHeight > 0 && height < labelSkipHeight) return false;\n return true;\n };\n\n var boundDefs = bindDefs(defs, result.bars, fill, {\n dataKey: 'data',\n targetKey: 'data.fill'\n });\n return React.createElement(Container, {\n isInteractive: isInteractive,\n theme: theme,\n animate: animate,\n motionStiffness: motionStiffness,\n motionDamping: motionDamping\n }, function (_ref6) {\n var showTooltip = _ref6.showTooltip,\n hideTooltip = _ref6.hideTooltip;\n var commonProps = {\n borderRadius: borderRadius,\n borderWidth: borderWidth,\n enableLabel: enableLabel,\n labelSkipWidth: labelSkipWidth,\n labelSkipHeight: labelSkipHeight,\n showTooltip: showTooltip,\n hideTooltip: hideTooltip,\n onClick: onClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n theme: theme,\n getTooltipLabel: getTooltipLabel,\n tooltipFormat: tooltipFormat,\n tooltip: tooltip\n };\n var bars;\n\n if (animate === true) {\n bars = React.createElement(TransitionMotion, {\n key: \"bars\",\n willEnter: willEnter,\n willLeave: willLeave,\n styles: result.bars.map(function (bar) {\n return {\n key: bar.key,\n data: bar,\n style: {\n x: spring(bar.x, springConfig),\n y: spring(bar.y, springConfig),\n width: spring(bar.width, springConfig),\n height: spring(bar.height, springConfig)\n }\n };\n })\n }, function (interpolatedStyles) {\n return React.createElement(\"g\", null, interpolatedStyles.map(function (_ref7) {\n var key = _ref7.key,\n style = _ref7.style,\n bar = _ref7.data;\n\n var baseProps = _objectSpread$2({}, bar, style);\n\n return React.createElement(barComponent, _objectSpread$2({\n key: key\n }, baseProps, commonProps, {\n shouldRenderLabel: shouldRenderLabel(baseProps),\n width: Math.max(style.width, 0),\n height: Math.max(style.height, 0),\n label: getLabel(bar.data),\n labelColor: getLabelTextColor(baseProps, theme),\n borderColor: getBorderColor(baseProps),\n theme: theme\n }));\n }));\n });\n } else {\n bars = result.bars.map(function (d) {\n return React.createElement(barComponent, _objectSpread$2({\n key: d.key\n }, d, commonProps, {\n label: getLabel(d.data),\n shouldRenderLabel: shouldRenderLabel(d),\n labelColor: getLabelTextColor(d, theme),\n borderColor: getBorderColor(d),\n theme: theme\n }));\n });\n }\n\n var layerById = {\n grid: React.createElement(Grid, {\n key: \"grid\",\n width: width,\n height: height,\n xScale: enableGridX ? result.xScale : null,\n yScale: enableGridY ? result.yScale : null,\n xValues: gridXValues,\n yValues: gridYValues\n }),\n axes: React.createElement(Axes, {\n key: \"axes\",\n xScale: result.xScale,\n yScale: result.yScale,\n width: width,\n height: height,\n top: axisTop,\n right: axisRight,\n bottom: axisBottom,\n left: axisLeft\n }),\n bars: bars,\n markers: React.createElement(CartesianMarkers, {\n key: \"markers\",\n markers: markers,\n width: width,\n height: height,\n xScale: result.xScale,\n yScale: result.yScale,\n theme: theme\n }),\n legends: legends.map(function (legend, i) {\n var legendData = getLegendData({\n from: legend.dataFrom,\n bars: result.bars,\n layout: layout,\n direction: legend.direction,\n groupMode: groupMode,\n reverse: reverse\n });\n if (legendData === undefined) return null;\n return React.createElement(BoxLegendSvg, _extends$1({\n key: i\n }, legend, {\n containerWidth: width,\n containerHeight: height,\n data: legendData,\n theme: theme\n }));\n }),\n annotations: React.createElement(BarAnnotations, _extends$1({\n key: \"annotations\",\n innerWidth: width,\n innerHeight: height,\n bars: result.bars,\n annotations: annotations\n }, motionProps))\n };\n return React.createElement(SvgWrapper, {\n width: outerWidth,\n height: outerHeight,\n margin: margin,\n defs: boundDefs,\n theme: theme\n }, layers.map(function (layer, i) {\n if (typeof layer === 'function') {\n return React.createElement(Fragment, {\n key: i\n }, layer(_objectSpread$2({}, props, result, {\n showTooltip: showTooltip,\n hideTooltip: hideTooltip\n })));\n }\n\n return layerById[layer];\n }));\n });\n};\n\nvar Bar$1 = setDisplayName('Bar')(enhance$1(Bar));\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _objectSpread$3(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$3(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _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}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty$3(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar findNodeUnderCursor = function findNodeUnderCursor(nodes, margin, x, y) {\n return nodes.find(function (node) {\n return isCursorInRect(node.x + margin.left, node.y + margin.top, node.width, node.height, x, y);\n });\n};\n\nvar BarCanvas = function (_Component) {\n _inherits(BarCanvas, _Component);\n\n function BarCanvas() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, BarCanvas);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(BarCanvas)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty$3(_assertThisInitialized(_this), \"handleMouseHover\", function (showTooltip, hideTooltip) {\n return function (event) {\n if (!_this.bars) return;\n var _this$props = _this.props,\n margin = _this$props.margin,\n theme = _this$props.theme,\n tooltip = _this$props.tooltip,\n getTooltipLabel = _this$props.getTooltipLabel,\n tooltipFormat = _this$props.tooltipFormat;\n\n var _getRelativeCursor = getRelativeCursor(_this.surface, event),\n _getRelativeCursor2 = _slicedToArray(_getRelativeCursor, 2),\n x = _getRelativeCursor2[0],\n y = _getRelativeCursor2[1];\n\n var bar = findNodeUnderCursor(_this.bars, margin, x, y);\n\n if (bar !== undefined) {\n showTooltip(React.createElement(BasicTooltip, {\n id: getTooltipLabel(bar.data),\n value: bar.data.value,\n enableChip: true,\n color: bar.color,\n theme: theme,\n format: tooltipFormat,\n renderContent: typeof tooltip === 'function' ? tooltip.bind(null, _objectSpread$3({\n color: bar.color\n }, bar.data)) : null\n }), event);\n } else {\n hideTooltip();\n }\n };\n });\n\n _defineProperty$3(_assertThisInitialized(_this), \"handleMouseLeave\", function (hideTooltip) {\n return function () {\n hideTooltip();\n };\n });\n\n _defineProperty$3(_assertThisInitialized(_this), \"handleClick\", function (event) {\n if (!_this.bars) return;\n var _this$props2 = _this.props,\n margin = _this$props2.margin,\n onClick = _this$props2.onClick;\n\n var _getRelativeCursor3 = getRelativeCursor(_this.surface, event),\n _getRelativeCursor4 = _slicedToArray(_getRelativeCursor3, 2),\n x = _getRelativeCursor4[0],\n y = _getRelativeCursor4[1];\n\n var node = findNodeUnderCursor(_this.bars, margin, x, y);\n if (node !== undefined) onClick(node.data, event);\n });\n\n return _this;\n }\n\n _createClass(BarCanvas, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.ctx = this.surface.getContext('2d');\n this.draw(this.props);\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(props) {\n if (this.props.outerWidth !== props.outerWidth || this.props.outerHeight !== props.outerHeight || this.props.isInteractive !== props.isInteractive || this.props.theme !== props.theme) {\n return true;\n } else {\n this.draw(props);\n return false;\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.ctx = this.surface.getContext('2d');\n this.draw(this.props);\n }\n }, {\n key: \"draw\",\n value: function draw(props) {\n var _this2 = this;\n\n var data = props.data,\n keys = props.keys,\n getIndex = props.getIndex,\n minValue = props.minValue,\n maxValue = props.maxValue,\n width = props.width,\n height = props.height,\n outerWidth = props.outerWidth,\n outerHeight = props.outerHeight,\n pixelRatio = props.pixelRatio,\n margin = props.margin,\n layout = props.layout,\n reverse = props.reverse,\n groupMode = props.groupMode,\n padding = props.padding,\n innerPadding = props.innerPadding,\n axisTop = props.axisTop,\n axisRight = props.axisRight,\n axisBottom = props.axisBottom,\n axisLeft = props.axisLeft,\n theme = props.theme,\n getColor = props.getColor,\n borderWidth = props.borderWidth,\n getBorderColor = props.getBorderColor,\n legends = props.legends,\n enableGridX = props.enableGridX,\n gridXValues = props.gridXValues,\n enableGridY = props.enableGridY,\n gridYValues = props.gridYValues;\n this.surface.width = outerWidth * pixelRatio;\n this.surface.height = outerHeight * pixelRatio;\n this.ctx.scale(pixelRatio, pixelRatio);\n var options = {\n layout: layout,\n reverse: reverse,\n data: data,\n getIndex: getIndex,\n keys: keys,\n minValue: minValue,\n maxValue: maxValue,\n width: width,\n height: height,\n getColor: getColor,\n padding: padding,\n innerPadding: innerPadding\n };\n var result = groupMode === 'grouped' ? generateGroupedBars(options) : generateStackedBars(options);\n this.bars = result.bars;\n this.ctx.fillStyle = theme.background;\n this.ctx.fillRect(0, 0, outerWidth, outerHeight);\n this.ctx.translate(margin.left, margin.top);\n\n if (theme.grid.line.strokeWidth > 0) {\n this.ctx.lineWidth = theme.grid.line.strokeWidth;\n this.ctx.strokeStyle = theme.grid.line.stroke;\n enableGridX && renderGridLinesToCanvas(this.ctx, {\n width: width,\n height: height,\n scale: result.xScale,\n axis: 'x',\n values: gridXValues\n });\n enableGridY && renderGridLinesToCanvas(this.ctx, {\n width: width,\n height: height,\n scale: result.yScale,\n axis: 'y',\n values: gridYValues\n });\n }\n\n this.ctx.strokeStyle = '#dddddd';\n\n var legendDataForKeys = _uniqBy(result.bars.map(function (bar) {\n return {\n id: bar.data.id,\n label: bar.data.id,\n color: bar.color,\n fill: bar.data.fill\n };\n }).reverse(), function (_ref) {\n var id = _ref.id;\n return id;\n });\n\n var legendDataForIndexes = _uniqBy(result.bars.map(function (bar) {\n return {\n id: bar.data.indexValue,\n label: bar.data.indexValue,\n color: bar.color,\n fill: bar.data.fill\n };\n }), function (_ref2) {\n var id = _ref2.id;\n return id;\n });\n\n legends.forEach(function (legend) {\n var legendData;\n\n if (legend.dataFrom === 'keys') {\n legendData = legendDataForKeys;\n } else if (legend.dataFrom === 'indexes') {\n legendData = legendDataForIndexes;\n }\n\n if (legendData === undefined) return null;\n renderLegendToCanvas(_this2.ctx, _objectSpread$3({}, legend, {\n data: legendData,\n containerWidth: width,\n containerHeight: height,\n itemTextColor: '#999',\n symbolSize: 16,\n theme: theme\n }));\n });\n renderAxesToCanvas(this.ctx, {\n xScale: result.xScale,\n yScale: result.yScale,\n width: width,\n height: height,\n top: axisTop,\n right: axisRight,\n bottom: axisBottom,\n left: axisLeft,\n theme: theme\n });\n result.bars.forEach(function (bar) {\n var x = bar.x,\n y = bar.y,\n color = bar.color,\n width = bar.width,\n height = bar.height;\n _this2.ctx.fillStyle = color;\n\n if (borderWidth > 0) {\n _this2.ctx.strokeStyle = getBorderColor(bar);\n _this2.ctx.lineWidth = borderWidth;\n }\n\n _this2.ctx.beginPath();\n\n _this2.ctx.rect(x, y, width, height);\n\n _this2.ctx.fill();\n\n if (borderWidth > 0) {\n _this2.ctx.stroke();\n }\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var _this$props3 = this.props,\n outerWidth = _this$props3.outerWidth,\n outerHeight = _this$props3.outerHeight,\n pixelRatio = _this$props3.pixelRatio,\n isInteractive = _this$props3.isInteractive,\n theme = _this$props3.theme;\n return React.createElement(Container, {\n isInteractive: isInteractive,\n theme: theme,\n animate: false\n }, function (_ref3) {\n var showTooltip = _ref3.showTooltip,\n hideTooltip = _ref3.hideTooltip;\n return React.createElement(\"canvas\", {\n ref: function ref(surface) {\n _this3.surface = surface;\n },\n width: outerWidth * pixelRatio,\n height: outerHeight * pixelRatio,\n style: {\n width: outerWidth,\n height: outerHeight\n },\n onMouseEnter: _this3.handleMouseHover(showTooltip, hideTooltip),\n onMouseMove: _this3.handleMouseHover(showTooltip, hideTooltip),\n onMouseLeave: _this3.handleMouseLeave(hideTooltip),\n onClick: _this3.handleClick\n });\n });\n }\n }]);\n\n return BarCanvas;\n}(Component);\n\nvar BarCanvas$1 = setDisplayName('BarCanvas')(enhance$1(BarCanvas));\n\nfunction _extends$2() {\n _extends$2 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$2.apply(this, arguments);\n}\n\nvar ResponsiveBar = function ResponsiveBar(props) {\n return React.createElement(ResponsiveWrapper, null, function (_ref) {\n var width = _ref.width,\n height = _ref.height;\n return React.createElement(Bar$1, _extends$2({\n width: width,\n height: height\n }, props));\n });\n};\n\nfunction _extends$3() {\n _extends$3 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$3.apply(this, arguments);\n}\n\nvar ResponsiveBarCanvas = function ResponsiveBarCanvas(props) {\n return React.createElement(ResponsiveWrapper, null, function (_ref) {\n var width = _ref.width,\n height = _ref.height;\n return React.createElement(BarCanvas$1, _extends$3({\n width: width,\n height: height\n }, props));\n });\n};\n\nexport { Bar$1 as Bar, BarCanvas$1 as BarCanvas, BarDefaultProps, BarPropTypes, ResponsiveBar, ResponsiveBarCanvas };","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"e5f5f999d8c92ca25f\", \"edf8fbb2e2e266c2a4238b45\", \"edf8fbb2e2e266c2a42ca25f006d2c\", \"edf8fbccece699d8c966c2a42ca25f006d2c\", \"edf8fbccece699d8c966c2a441ae76238b45005824\", \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824\", \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b\").map(colors);\nexport default ramp(scheme);","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","import { ticks } from \"d3-array\";\nimport { format } from \"d3-format\";\nimport nice from \"./nice.js\";\nimport { copy, transformer } from \"./continuous.js\";\nimport { initRange } from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10 : base === Math.E ? Math.exp : function (x) {\n return Math.pow(base, x);\n };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log : base === 10 && Math.log10 || base === 2 && Math.log2 || (base = Math.log(base), function (x) {\n return Math.log(x) / base;\n });\n}\n\nfunction reflect(f) {\n return function (x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n\n return scale;\n }\n\n scale.base = function (_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function (_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function (count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n if (r = v < u) i = u, u = v, v = i;\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\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 if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function (count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n\n return function (d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function () {\n return domain(nice(domain(), {\n floor: function floor(x) {\n return pows(Math.floor(logs(x)));\n },\n ceil: function ceil(x) {\n return pows(Math.ceil(logs(x)));\n }\n }));\n };\n\n return scale;\n}\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function () {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n return scale;\n}","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","module.exports = require(\"regenerator-runtime\");\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","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport default function (x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _mapToZero = require('./mapToZero');\n\nvar _mapToZero2 = _interopRequireDefault(_mapToZero);\n\nvar _stripStyle = require('./stripStyle');\n\nvar _stripStyle2 = _interopRequireDefault(_stripStyle);\n\nvar _stepper3 = require('./stepper');\n\nvar _stepper4 = _interopRequireDefault(_stepper3);\n\nvar _mergeDiff = require('./mergeDiff');\n\nvar _mergeDiff2 = _interopRequireDefault(_mergeDiff);\n\nvar _performanceNow = require('performance-now');\n\nvar _performanceNow2 = _interopRequireDefault(_performanceNow);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _shouldStopAnimation = require('./shouldStopAnimation');\n\nvar _shouldStopAnimation2 = _interopRequireDefault(_shouldStopAnimation);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar msPerFrame = 1000 / 60; // the children function & (potential) styles function asks as param an\n// Array, where each TransitionPlainStyle is of the format\n// {key: string, data?: any, style: PlainStyle}. However, the way we keep\n// internal states doesn't contain such a data structure (check the state and\n// TransitionMotionState). So when children function and others ask for such\n// data we need to generate them on the fly by combining mergedPropsStyles and\n// currentStyles/lastIdealStyles\n\nfunction rehydrateStyles(mergedPropsStyles, unreadPropStyles, plainStyles) {\n // Copy the value to a `const` so that Flow understands that the const won't\n // change and will be non-nullable in the callback below.\n var cUnreadPropStyles = unreadPropStyles;\n\n if (cUnreadPropStyles == null) {\n return mergedPropsStyles.map(function (mergedPropsStyle, i) {\n return {\n key: mergedPropsStyle.key,\n data: mergedPropsStyle.data,\n style: plainStyles[i]\n };\n });\n }\n\n return mergedPropsStyles.map(function (mergedPropsStyle, i) {\n for (var j = 0; j < cUnreadPropStyles.length; j++) {\n if (cUnreadPropStyles[j].key === mergedPropsStyle.key) {\n return {\n key: cUnreadPropStyles[j].key,\n data: cUnreadPropStyles[j].data,\n style: plainStyles[i]\n };\n }\n }\n\n return {\n key: mergedPropsStyle.key,\n data: mergedPropsStyle.data,\n style: plainStyles[i]\n };\n });\n}\n\nfunction shouldStopAnimationAll(currentStyles, destStyles, currentVelocities, mergedPropsStyles) {\n if (mergedPropsStyles.length !== destStyles.length) {\n return false;\n }\n\n for (var i = 0; i < mergedPropsStyles.length; i++) {\n if (mergedPropsStyles[i].key !== destStyles[i].key) {\n return false;\n }\n } // we have the invariant that mergedPropsStyles and\n // currentStyles/currentVelocities/last* are synced in terms of cells, see\n // mergeAndSync comment for more info\n\n\n for (var i = 0; i < mergedPropsStyles.length; i++) {\n if (!_shouldStopAnimation2['default'](currentStyles[i], destStyles[i].style, currentVelocities[i])) {\n return false;\n }\n }\n\n return true;\n} // core key merging logic\n// things to do: say previously merged style is {a, b}, dest style (prop) is {b,\n// c}, previous current (interpolating) style is {a, b}\n// **invariant**: current[i] corresponds to merged[i] in terms of key\n// steps:\n// turn merged style into {a?, b, c}\n// add c, value of c is destStyles.c\n// maybe remove a, aka call willLeave(a), then merged is either {b, c} or {a, b, c}\n// turn current (interpolating) style from {a, b} into {a?, b, c}\n// maybe remove a\n// certainly add c, value of c is willEnter(c)\n// loop over merged and construct new current\n// dest doesn't change, that's owner's\n\n\nfunction mergeAndSync(willEnter, willLeave, didLeave, oldMergedPropsStyles, destStyles, oldCurrentStyles, oldCurrentVelocities, oldLastIdealStyles, oldLastIdealVelocities) {\n var newMergedPropsStyles = _mergeDiff2['default'](oldMergedPropsStyles, destStyles, function (oldIndex, oldMergedPropsStyle) {\n var leavingStyle = willLeave(oldMergedPropsStyle);\n\n if (leavingStyle == null) {\n didLeave({\n key: oldMergedPropsStyle.key,\n data: oldMergedPropsStyle.data\n });\n return null;\n }\n\n if (_shouldStopAnimation2['default'](oldCurrentStyles[oldIndex], leavingStyle, oldCurrentVelocities[oldIndex])) {\n didLeave({\n key: oldMergedPropsStyle.key,\n data: oldMergedPropsStyle.data\n });\n return null;\n }\n\n return {\n key: oldMergedPropsStyle.key,\n data: oldMergedPropsStyle.data,\n style: leavingStyle\n };\n });\n\n var newCurrentStyles = [];\n var newCurrentVelocities = [];\n var newLastIdealStyles = [];\n var newLastIdealVelocities = [];\n\n for (var i = 0; i < newMergedPropsStyles.length; i++) {\n var newMergedPropsStyleCell = newMergedPropsStyles[i];\n var foundOldIndex = null;\n\n for (var j = 0; j < oldMergedPropsStyles.length; j++) {\n if (oldMergedPropsStyles[j].key === newMergedPropsStyleCell.key) {\n foundOldIndex = j;\n break;\n }\n } // TODO: key search code\n\n\n if (foundOldIndex == null) {\n var plainStyle = willEnter(newMergedPropsStyleCell);\n newCurrentStyles[i] = plainStyle;\n newLastIdealStyles[i] = plainStyle;\n\n var velocity = _mapToZero2['default'](newMergedPropsStyleCell.style);\n\n newCurrentVelocities[i] = velocity;\n newLastIdealVelocities[i] = velocity;\n } else {\n newCurrentStyles[i] = oldCurrentStyles[foundOldIndex];\n newLastIdealStyles[i] = oldLastIdealStyles[foundOldIndex];\n newCurrentVelocities[i] = oldCurrentVelocities[foundOldIndex];\n newLastIdealVelocities[i] = oldLastIdealVelocities[foundOldIndex];\n }\n }\n\n return [newMergedPropsStyles, newCurrentStyles, newCurrentVelocities, newLastIdealStyles, newLastIdealVelocities];\n}\n\nvar TransitionMotion = function (_React$Component) {\n _inherits(TransitionMotion, _React$Component);\n\n _createClass(TransitionMotion, null, [{\n key: 'propTypes',\n value: {\n defaultStyles: _propTypes2['default'].arrayOf(_propTypes2['default'].shape({\n key: _propTypes2['default'].string.isRequired,\n data: _propTypes2['default'].any,\n style: _propTypes2['default'].objectOf(_propTypes2['default'].number).isRequired\n })),\n styles: _propTypes2['default'].oneOfType([_propTypes2['default'].func, _propTypes2['default'].arrayOf(_propTypes2['default'].shape({\n key: _propTypes2['default'].string.isRequired,\n data: _propTypes2['default'].any,\n style: _propTypes2['default'].objectOf(_propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].object])).isRequired\n }))]).isRequired,\n children: _propTypes2['default'].func.isRequired,\n willEnter: _propTypes2['default'].func,\n willLeave: _propTypes2['default'].func,\n didLeave: _propTypes2['default'].func\n },\n enumerable: true\n }, {\n key: 'defaultProps',\n value: {\n willEnter: function willEnter(styleThatEntered) {\n return _stripStyle2['default'](styleThatEntered.style);\n },\n // recall: returning null makes the current unmounting TransitionStyle\n // disappear immediately\n willLeave: function willLeave() {\n return null;\n },\n didLeave: function didLeave() {}\n },\n enumerable: true\n }]);\n\n function TransitionMotion(props) {\n var _this = this;\n\n _classCallCheck(this, TransitionMotion);\n\n _React$Component.call(this, props);\n\n this.unmounting = false;\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n this.unreadPropStyles = null;\n\n this.clearUnreadPropStyle = function (unreadPropStyles) {\n var _mergeAndSync = mergeAndSync(_this.props.willEnter, _this.props.willLeave, _this.props.didLeave, _this.state.mergedPropsStyles, unreadPropStyles, _this.state.currentStyles, _this.state.currentVelocities, _this.state.lastIdealStyles, _this.state.lastIdealVelocities);\n\n var mergedPropsStyles = _mergeAndSync[0];\n var currentStyles = _mergeAndSync[1];\n var currentVelocities = _mergeAndSync[2];\n var lastIdealStyles = _mergeAndSync[3];\n var lastIdealVelocities = _mergeAndSync[4];\n\n for (var i = 0; i < unreadPropStyles.length; i++) {\n var unreadPropStyle = unreadPropStyles[i].style;\n var dirty = false;\n\n for (var key in unreadPropStyle) {\n if (!Object.prototype.hasOwnProperty.call(unreadPropStyle, key)) {\n continue;\n }\n\n var styleValue = unreadPropStyle[key];\n\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n currentStyles[i] = _extends({}, currentStyles[i]);\n currentVelocities[i] = _extends({}, currentVelocities[i]);\n lastIdealStyles[i] = _extends({}, lastIdealStyles[i]);\n lastIdealVelocities[i] = _extends({}, lastIdealVelocities[i]);\n mergedPropsStyles[i] = {\n key: mergedPropsStyles[i].key,\n data: mergedPropsStyles[i].data,\n style: _extends({}, mergedPropsStyles[i].style)\n };\n }\n\n currentStyles[i][key] = styleValue;\n currentVelocities[i][key] = 0;\n lastIdealStyles[i][key] = styleValue;\n lastIdealVelocities[i][key] = 0;\n mergedPropsStyles[i].style[key] = styleValue;\n }\n }\n } // unlike the other 2 components, we can't detect staleness and optionally\n // opt out of setState here. each style object's data might contain new\n // stuff we're not/cannot compare\n\n\n _this.setState({\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n mergedPropsStyles: mergedPropsStyles,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities\n });\n };\n\n this.startAnimationIfNecessary = function () {\n if (_this.unmounting) {\n return;\n } // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n\n\n _this.animationID = _raf2['default'](function (timestamp) {\n // https://github.com/chenglou/react-motion/pull/420\n // > if execution passes the conditional if (this.unmounting), then\n // executes async defaultRaf and after that component unmounts and after\n // that the callback of defaultRaf is called, then setState will be called\n // on unmounted component.\n if (_this.unmounting) {\n return;\n }\n\n var propStyles = _this.props.styles;\n var destStyles = typeof propStyles === 'function' ? propStyles(rehydrateStyles(_this.state.mergedPropsStyles, _this.unreadPropStyles, _this.state.lastIdealStyles)) : propStyles; // check if we need to animate in the first place\n\n if (shouldStopAnimationAll(_this.state.currentStyles, destStyles, _this.state.currentVelocities, _this.state.mergedPropsStyles)) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n _this.accumulatedTime = 0;\n return;\n }\n\n var currentTime = timestamp || _performanceNow2['default']();\n\n var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta; // more than 10 frames? prolly switched browser tab. Restart\n\n if (_this.accumulatedTime > msPerFrame * 10) {\n _this.accumulatedTime = 0;\n }\n\n if (_this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n\n _this.startAnimationIfNecessary();\n\n return;\n }\n\n var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);\n\n var _mergeAndSync2 = mergeAndSync(_this.props.willEnter, _this.props.willLeave, _this.props.didLeave, _this.state.mergedPropsStyles, destStyles, _this.state.currentStyles, _this.state.currentVelocities, _this.state.lastIdealStyles, _this.state.lastIdealVelocities);\n\n var newMergedPropsStyles = _mergeAndSync2[0];\n var newCurrentStyles = _mergeAndSync2[1];\n var newCurrentVelocities = _mergeAndSync2[2];\n var newLastIdealStyles = _mergeAndSync2[3];\n var newLastIdealVelocities = _mergeAndSync2[4];\n\n for (var i = 0; i < newMergedPropsStyles.length; i++) {\n var newMergedPropsStyle = newMergedPropsStyles[i].style;\n var newCurrentStyle = {};\n var newCurrentVelocity = {};\n var newLastIdealStyle = {};\n var newLastIdealVelocity = {};\n\n for (var key in newMergedPropsStyle) {\n if (!Object.prototype.hasOwnProperty.call(newMergedPropsStyle, key)) {\n continue;\n }\n\n var styleValue = newMergedPropsStyle[key];\n\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n var newLastIdealStyleValue = newLastIdealStyles[i][key];\n var newLastIdealVelocityValue = newLastIdealVelocities[i][key];\n\n for (var j = 0; j < framesToCatchUp; j++) {\n var _stepper = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n newLastIdealStyleValue = _stepper[0];\n newLastIdealVelocityValue = _stepper[1];\n }\n\n var _stepper2 = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n var nextIdealX = _stepper2[0];\n var nextIdealV = _stepper2[1];\n newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n newLastIdealStyles[i] = newLastIdealStyle;\n newLastIdealVelocities[i] = newLastIdealVelocity;\n newCurrentStyles[i] = newCurrentStyle;\n newCurrentVelocities[i] = newCurrentVelocity;\n }\n\n _this.animationID = null; // the amount we're looped over above\n\n _this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n _this.setState({\n currentStyles: newCurrentStyles,\n currentVelocities: newCurrentVelocities,\n lastIdealStyles: newLastIdealStyles,\n lastIdealVelocities: newLastIdealVelocities,\n mergedPropsStyles: newMergedPropsStyles\n });\n\n _this.unreadPropStyles = null;\n\n _this.startAnimationIfNecessary();\n });\n };\n\n this.state = this.defaultState();\n }\n\n TransitionMotion.prototype.defaultState = function defaultState() {\n var _props = this.props;\n var defaultStyles = _props.defaultStyles;\n var styles = _props.styles;\n var willEnter = _props.willEnter;\n var willLeave = _props.willLeave;\n var didLeave = _props.didLeave;\n var destStyles = typeof styles === 'function' ? styles(defaultStyles) : styles; // this is special. for the first time around, we don't have a comparison\n // between last (no last) and current merged props. we'll compute last so:\n // say default is {a, b} and styles (dest style) is {b, c}, we'll\n // fabricate last as {a, b}\n\n var oldMergedPropsStyles = undefined;\n\n if (defaultStyles == null) {\n oldMergedPropsStyles = destStyles;\n } else {\n oldMergedPropsStyles = defaultStyles.map(function (defaultStyleCell) {\n // TODO: key search code\n for (var i = 0; i < destStyles.length; i++) {\n if (destStyles[i].key === defaultStyleCell.key) {\n return destStyles[i];\n }\n }\n\n return defaultStyleCell;\n });\n }\n\n var oldCurrentStyles = defaultStyles == null ? destStyles.map(function (s) {\n return _stripStyle2['default'](s.style);\n }) : defaultStyles.map(function (s) {\n return _stripStyle2['default'](s.style);\n });\n var oldCurrentVelocities = defaultStyles == null ? destStyles.map(function (s) {\n return _mapToZero2['default'](s.style);\n }) : defaultStyles.map(function (s) {\n return _mapToZero2['default'](s.style);\n });\n\n var _mergeAndSync3 = mergeAndSync( // Because this is an old-style createReactClass component, Flow doesn't\n // understand that the willEnter and willLeave props have default values\n // and will always be present.\n willEnter, willLeave, didLeave, oldMergedPropsStyles, destStyles, oldCurrentStyles, oldCurrentVelocities, oldCurrentStyles, // oldLastIdealStyles really\n oldCurrentVelocities);\n\n var mergedPropsStyles = _mergeAndSync3[0];\n var currentStyles = _mergeAndSync3[1];\n var currentVelocities = _mergeAndSync3[2];\n var lastIdealStyles = _mergeAndSync3[3];\n var lastIdealVelocities = _mergeAndSync3[4]; // oldLastIdealVelocities really\n\n return {\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities,\n mergedPropsStyles: mergedPropsStyles\n };\n }; // after checking for unreadPropStyles != null, we manually go set the\n // non-interpolating values (those that are a number, without a spring\n // config)\n\n\n TransitionMotion.prototype.componentDidMount = function componentDidMount() {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n };\n\n TransitionMotion.prototype.componentWillReceiveProps = function componentWillReceiveProps(props) {\n if (this.unreadPropStyles) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyles);\n }\n\n var styles = props.styles;\n\n if (typeof styles === 'function') {\n this.unreadPropStyles = styles(rehydrateStyles(this.state.mergedPropsStyles, this.unreadPropStyles, this.state.lastIdealStyles));\n } else {\n this.unreadPropStyles = styles;\n }\n\n if (this.animationID == null) {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n }\n };\n\n TransitionMotion.prototype.componentWillUnmount = function componentWillUnmount() {\n this.unmounting = true;\n\n if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\n\n this.animationID = null;\n }\n };\n\n TransitionMotion.prototype.render = function render() {\n var hydratedStyles = rehydrateStyles(this.state.mergedPropsStyles, this.unreadPropStyles, this.state.currentStyles);\n var renderedChildren = this.props.children(hydratedStyles);\n return renderedChildren && _react2['default'].Children.only(renderedChildren);\n };\n\n return TransitionMotion;\n}(_react2['default'].Component);\n\nexports['default'] = TransitionMotion;\nmodule.exports = exports['default']; // list of styles, each containing interpolating values. Part of what's passed\n// to children function. Notice that this is\n// Array, without the wrapper that is {key: ...,\n// data: ... style: ActualInterpolatingStyleObject}. Only mergedPropsStyles\n// contains the key & data info (so that we only have a single source of truth\n// for these, and to save space). Check the comment for `rehydrateStyles` to\n// see how we regenerate the entirety of what's passed to children function\n// the array that keeps track of currently rendered stuff! Including stuff\n// that you've unmounted but that's still animating. This is where it lives\n// it's possible that currentStyle's value is stale: if props is immediately\n// changed from 0 to 400 to spring(0) again, the async currentStyle is still\n// at 0 (didn't have time to tick and interpolate even once). If we naively\n// compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n// In reality currentStyle should be 400","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","// core keys merging algorithm. If previous render's keys are [a, b], and the\n// next render's [c, b, d], what's the final merged keys and ordering?\n// - c and a must both be before b\n// - b before d\n// - ordering between a and c ambiguous\n// this reduces to merging two partially ordered lists (e.g. lists where not\n// every item has a definite ordering, like comparing a and c above). For the\n// ambiguous ordering we deterministically choose to place the next render's\n// item after the previous'; so c after a\n// this is called a topological sorting. Except the existing algorithms don't\n// work well with js bc of the amount of allocation, and isn't optimized for our\n// current use-case bc the runtime is linear in terms of edges (see wiki for\n// meaning), which is huge when two lists have many common elements\n'use strict';\n\nrequire(\"core-js/modules/es.array.sort.js\");\n\nexports.__esModule = true;\nexports['default'] = mergeDiff;\n\nfunction mergeDiff(prev, next, onRemove) {\n // bookkeeping for easier access of a key's index below. This is 2 allocations +\n // potentially triggering chrome hash map mode for objs (so it might be faster\n var prevKeyIndex = {};\n\n for (var i = 0; i < prev.length; i++) {\n prevKeyIndex[prev[i].key] = i;\n }\n\n var nextKeyIndex = {};\n\n for (var i = 0; i < next.length; i++) {\n nextKeyIndex[next[i].key] = i;\n } // first, an overly elaborate way of merging prev and next, eliminating\n // duplicates (in terms of keys). If there's dupe, keep the item in next).\n // This way of writing it saves allocations\n\n\n var ret = [];\n\n for (var i = 0; i < next.length; i++) {\n ret[i] = next[i];\n }\n\n for (var i = 0; i < prev.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(nextKeyIndex, prev[i].key)) {\n // this is called my TM's `mergeAndSync`, which calls willLeave. We don't\n // merge in keys that the user desires to kill\n var fill = onRemove(i, prev[i]);\n\n if (fill != null) {\n ret.push(fill);\n }\n }\n } // now all the items all present. Core sorting logic to have the right order\n\n\n return ret.sort(function (a, b) {\n var nextOrderA = nextKeyIndex[a.key];\n var nextOrderB = nextKeyIndex[b.key];\n var prevOrderA = prevKeyIndex[a.key];\n var prevOrderB = prevKeyIndex[b.key];\n\n if (nextOrderA != null && nextOrderB != null) {\n // both keys in next\n return nextKeyIndex[a.key] - nextKeyIndex[b.key];\n } else if (prevOrderA != null && prevOrderB != null) {\n // both keys in prev\n return prevKeyIndex[a.key] - prevKeyIndex[b.key];\n } else if (nextOrderA != null) {\n // key a in next, key b in prev\n // how to determine the order between a and b? We find a \"pivot\" (term\n // abuse), a key present in both prev and next, that is sandwiched between\n // a and b. In the context of our above example, if we're comparing a and\n // d, b's (the only) pivot\n for (var i = 0; i < next.length; i++) {\n var pivot = next[i].key;\n\n if (!Object.prototype.hasOwnProperty.call(prevKeyIndex, pivot)) {\n continue;\n }\n\n if (nextOrderA < nextKeyIndex[pivot] && prevOrderB > prevKeyIndex[pivot]) {\n return -1;\n } else if (nextOrderA > nextKeyIndex[pivot] && prevOrderB < prevKeyIndex[pivot]) {\n return 1;\n }\n } // pluggable. default to: next bigger than prev\n\n\n return 1;\n } // prevOrderA, nextOrderB\n\n\n for (var i = 0; i < next.length; i++) {\n var pivot = next[i].key;\n\n if (!Object.prototype.hasOwnProperty.call(prevKeyIndex, pivot)) {\n continue;\n }\n\n if (nextOrderB < nextKeyIndex[pivot] && prevOrderA > prevKeyIndex[pivot]) {\n return 1;\n } else if (nextOrderB > nextKeyIndex[pivot] && prevOrderA < prevKeyIndex[pivot]) {\n return -1;\n }\n } // pluggable. default to: next bigger than prev\n\n\n return -1;\n });\n}\n\nmodule.exports = exports['default']; // to loop through and find a key's index each time), but I no longer care","var copyArray = require('./_copyArray'),\n isIndex = require('./_isIndex');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\nfunction reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n}\n\nmodule.exports = reorder;\n","var composeArgs = require('./_composeArgs'),\n composeArgsRight = require('./_composeArgsRight'),\n replaceHolders = require('./_replaceHolders');\n\n/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\nfunction mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n}\n\nmodule.exports = mergeData;\n","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n identity = require('./identity');\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nmodule.exports = max;\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"f0f0f0bdbdbd636363\", \"f7f7f7cccccc969696525252\", \"f7f7f7cccccc969696636363252525\", \"f7f7f7d9d9d9bdbdbd969696636363252525\", \"f7f7f7d9d9d9bdbdbd969696737373525252252525\", \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525\", \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000\").map(colors);\nexport default ramp(scheme);","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","import colors from \"../colors.js\";\nexport default colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");","// eslint-disable-next-line es-x/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","import \"core-js/modules/es.array.reduce.js\";\nimport PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase(); // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n } // Special case for innerHTML which doesn't work lowercased\n\n\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n }); // Update seen tags with tags from this instance\n\n var keys = Object.keys(instanceSeenTags);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n updateTitle(title, titleAttributes);\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n var addedTags = {};\n var removedTags = {};\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n cb && cb();\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\"); // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps; // assigning into an array to define toString function on it\n\n\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = {\n __html: content\n };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, {\n title: title,\n titleAttributes: titleAttributes\n }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexport { HelmetExport as Helmet };","export default function (x) {\n return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString(\"en\").replace(/,/g, \"\") : x.toString(10);\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].\n\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n\n var i,\n coefficient = x.slice(0, i); // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n\n return [coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, +x.slice(i + 1)];\n}","export default function (series) {\n var n = series.length,\n o = new Array(n);\n\n while (--n >= 0) {\n o[n] = n;\n }\n\n return o;\n}","import colors from \"../colors.js\";\nexport default colors(\"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2\");","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"fee6cefdae6be6550d\", \"feeddefdbe85fd8d3cd94701\", \"feeddefdbe85fd8d3ce6550da63603\", \"feeddefdd0a2fdae6bfd8d3ce6550da63603\", \"feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04\", \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04\", \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704\").map(colors);\nexport default ramp(scheme);","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var identity = require('./identity'),\n metaMap = require('./_metaMap');\n\n/**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n};\n\nmodule.exports = baseSetData;\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 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}","import _slicedToArray from \"/Users/brianmiddleton/dev/2020-rails-survey-site/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\nimport { range as sequence } from \"d3-array\";\nimport { initRange } from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function (i) {\n return start + step * i;\n });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function (_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function (_) {\n var _ref, _ref2;\n\n return arguments.length ? ((_ref = _, _ref2 = _slicedToArray(_ref, 2), r0 = _ref2[0], r1 = _ref2[1], _ref), r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function (_) {\n var _ref3, _ref4;\n\n return (_ref3 = _, _ref4 = _slicedToArray(_ref3, 2), r0 = _ref4[0], r1 = _ref4[1], _ref3), r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function () {\n return bandwidth;\n };\n\n scale.step = function () {\n return step;\n };\n\n scale.round = function (_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function (_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function (_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function (_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function (_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function () {\n return band(domain(), [r0, r1]).round(round).paddingInner(paddingInner).paddingOuter(paddingOuter).align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function () {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar dateTag = '[object Date]';\n\n/**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\nfunction baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n}\n\nmodule.exports = baseIsDate;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","import colors from \"../colors.js\";\nexport default colors(\"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc\");","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"af8dc3f7f7f77fbf7b\", \"7b3294c2a5cfa6dba0008837\", \"7b3294c2a5cff7f7f7a6dba0008837\", \"762a83af8dc3e7d4e8d9f0d37fbf7b1b7837\", \"762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837\", \"762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837\", \"762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837\", \"40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b\", \"40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b\").map(colors);\nexport default ramp(scheme);","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"fc8d59ffffbf91cf60\", \"d7191cfdae61a6d96a1a9641\", \"d7191cfdae61ffffbfa6d96a1a9641\", \"d73027fc8d59fee08bd9ef8b91cf601a9850\", \"d73027fc8d59fee08bffffbfd9ef8b91cf601a9850\", \"d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850\", \"d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850\", \"a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837\", \"a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837\").map(colors);\nexport default ramp(scheme);","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","/**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\nfunction countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n}\n\nmodule.exports = countHolders;\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","var isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","/**\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","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nexports['default'] = spring;\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _presets = require('./presets');\n\nvar _presets2 = _interopRequireDefault(_presets);\n\nvar defaultConfig = _extends({}, _presets2['default'].noWobble, {\n precision: 0.01\n});\n\nfunction spring(val, config) {\n return _extends({}, defaultConfig, config, {\n val: val\n });\n}\n\nmodule.exports = exports['default'];","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","// turn {x: {val: 1, stiffness: 1, damping: 2}, y: 2} generated by\n// `{x: spring(1, {stiffness: 1, damping: 2}), y: 2}` into {x: 1, y: 2}\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = stripStyle;\n\nfunction stripStyle(style) {\n var ret = {};\n\n for (var key in style) {\n if (!Object.prototype.hasOwnProperty.call(style, key)) {\n continue;\n }\n\n ret[key] = typeof style[key] === 'number' ? style[key] : style[key].val;\n }\n\n return ret;\n}\n\nmodule.exports = exports['default'];","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"ece7f2a6bddb2b8cbe\", \"f1eef6bdc9e174a9cf0570b0\", \"f1eef6bdc9e174a9cf2b8cbe045a8d\", \"f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d\", \"f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b\", \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b\", \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858\").map(colors);\nexport default ramp(scheme);","/** Used to match wrap detail comments. */\nvar reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n/**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\nfunction getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n}\n\nmodule.exports = getWrapDetails;\n","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _mapToZero = require('./mapToZero');\n\nvar _mapToZero2 = _interopRequireDefault(_mapToZero);\n\nvar _stripStyle = require('./stripStyle');\n\nvar _stripStyle2 = _interopRequireDefault(_stripStyle);\n\nvar _stepper3 = require('./stepper');\n\nvar _stepper4 = _interopRequireDefault(_stepper3);\n\nvar _performanceNow = require('performance-now');\n\nvar _performanceNow2 = _interopRequireDefault(_performanceNow);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _shouldStopAnimation = require('./shouldStopAnimation');\n\nvar _shouldStopAnimation2 = _interopRequireDefault(_shouldStopAnimation);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar msPerFrame = 1000 / 60;\n\nfunction shouldStopAnimationAll(currentStyles, styles, currentVelocities) {\n for (var i = 0; i < currentStyles.length; i++) {\n if (!_shouldStopAnimation2['default'](currentStyles[i], styles[i], currentVelocities[i])) {\n return false;\n }\n }\n\n return true;\n}\n\nvar StaggeredMotion = function (_React$Component) {\n _inherits(StaggeredMotion, _React$Component);\n\n _createClass(StaggeredMotion, null, [{\n key: 'propTypes',\n value: {\n // TOOD: warn against putting a config in here\n defaultStyles: _propTypes2['default'].arrayOf(_propTypes2['default'].objectOf(_propTypes2['default'].number)),\n styles: _propTypes2['default'].func.isRequired,\n children: _propTypes2['default'].func.isRequired\n },\n enumerable: true\n }]);\n\n function StaggeredMotion(props) {\n var _this = this;\n\n _classCallCheck(this, StaggeredMotion);\n\n _React$Component.call(this, props);\n\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n this.unreadPropStyles = null;\n\n this.clearUnreadPropStyle = function (unreadPropStyles) {\n var _state = _this.state;\n var currentStyles = _state.currentStyles;\n var currentVelocities = _state.currentVelocities;\n var lastIdealStyles = _state.lastIdealStyles;\n var lastIdealVelocities = _state.lastIdealVelocities;\n var someDirty = false;\n\n for (var i = 0; i < unreadPropStyles.length; i++) {\n var unreadPropStyle = unreadPropStyles[i];\n var dirty = false;\n\n for (var key in unreadPropStyle) {\n if (!Object.prototype.hasOwnProperty.call(unreadPropStyle, key)) {\n continue;\n }\n\n var styleValue = unreadPropStyle[key];\n\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n someDirty = true;\n currentStyles[i] = _extends({}, currentStyles[i]);\n currentVelocities[i] = _extends({}, currentVelocities[i]);\n lastIdealStyles[i] = _extends({}, lastIdealStyles[i]);\n lastIdealVelocities[i] = _extends({}, lastIdealVelocities[i]);\n }\n\n currentStyles[i][key] = styleValue;\n currentVelocities[i][key] = 0;\n lastIdealStyles[i][key] = styleValue;\n lastIdealVelocities[i][key] = 0;\n }\n }\n }\n\n if (someDirty) {\n _this.setState({\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities\n });\n }\n };\n\n this.startAnimationIfNecessary = function () {\n // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n _this.animationID = _raf2['default'](function (timestamp) {\n var destStyles = _this.props.styles(_this.state.lastIdealStyles); // check if we need to animate in the first place\n\n\n if (shouldStopAnimationAll(_this.state.currentStyles, destStyles, _this.state.currentVelocities)) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n _this.accumulatedTime = 0;\n return;\n }\n\n var currentTime = timestamp || _performanceNow2['default']();\n\n var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta; // more than 10 frames? prolly switched browser tab. Restart\n\n if (_this.accumulatedTime > msPerFrame * 10) {\n _this.accumulatedTime = 0;\n }\n\n if (_this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n\n _this.startAnimationIfNecessary();\n\n return;\n }\n\n var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);\n var newLastIdealStyles = [];\n var newLastIdealVelocities = [];\n var newCurrentStyles = [];\n var newCurrentVelocities = [];\n\n for (var i = 0; i < destStyles.length; i++) {\n var destStyle = destStyles[i];\n var newCurrentStyle = {};\n var newCurrentVelocity = {};\n var newLastIdealStyle = {};\n var newLastIdealVelocity = {};\n\n for (var key in destStyle) {\n if (!Object.prototype.hasOwnProperty.call(destStyle, key)) {\n continue;\n }\n\n var styleValue = destStyle[key];\n\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n var newLastIdealStyleValue = _this.state.lastIdealStyles[i][key];\n var newLastIdealVelocityValue = _this.state.lastIdealVelocities[i][key];\n\n for (var j = 0; j < framesToCatchUp; j++) {\n var _stepper = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n newLastIdealStyleValue = _stepper[0];\n newLastIdealVelocityValue = _stepper[1];\n }\n\n var _stepper2 = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n var nextIdealX = _stepper2[0];\n var nextIdealV = _stepper2[1];\n newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n newCurrentStyles[i] = newCurrentStyle;\n newCurrentVelocities[i] = newCurrentVelocity;\n newLastIdealStyles[i] = newLastIdealStyle;\n newLastIdealVelocities[i] = newLastIdealVelocity;\n }\n\n _this.animationID = null; // the amount we're looped over above\n\n _this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n _this.setState({\n currentStyles: newCurrentStyles,\n currentVelocities: newCurrentVelocities,\n lastIdealStyles: newLastIdealStyles,\n lastIdealVelocities: newLastIdealVelocities\n });\n\n _this.unreadPropStyles = null;\n\n _this.startAnimationIfNecessary();\n });\n };\n\n this.state = this.defaultState();\n }\n\n StaggeredMotion.prototype.defaultState = function defaultState() {\n var _props = this.props;\n var defaultStyles = _props.defaultStyles;\n var styles = _props.styles;\n var currentStyles = defaultStyles || styles().map(_stripStyle2['default']);\n var currentVelocities = currentStyles.map(function (currentStyle) {\n return _mapToZero2['default'](currentStyle);\n });\n return {\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: currentStyles,\n lastIdealVelocities: currentVelocities\n };\n };\n\n StaggeredMotion.prototype.componentDidMount = function componentDidMount() {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n };\n\n StaggeredMotion.prototype.componentWillReceiveProps = function componentWillReceiveProps(props) {\n if (this.unreadPropStyles != null) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyles);\n }\n\n this.unreadPropStyles = props.styles(this.state.lastIdealStyles);\n\n if (this.animationID == null) {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n }\n };\n\n StaggeredMotion.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\n\n this.animationID = null;\n }\n };\n\n StaggeredMotion.prototype.render = function render() {\n var renderedChildren = this.props.children(this.state.currentStyles);\n return renderedChildren && _react2['default'].Children.only(renderedChildren);\n };\n\n return StaggeredMotion;\n}(_react2['default'].Component);\n\nexports['default'] = StaggeredMotion;\nmodule.exports = exports['default']; // it's possible that currentStyle's value is stale: if props is immediately\n// changed from 0 to 400 to spring(0) again, the async currentStyle is still\n// at 0 (didn't have time to tick and interpolate even once). If we naively\n// compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n// In reality currentStyle should be 400\n// after checking for unreadPropStyles != null, we manually go set the\n// non-interpolating values (those that are a number, without a spring\n// config)","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"e5f5e0a1d99b31a354\", \"edf8e9bae4b374c476238b45\", \"edf8e9bae4b374c47631a354006d2c\", \"edf8e9c7e9c0a1d99b74c47631a354006d2c\", \"edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32\", \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32\", \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b\").map(colors);\nexport default ramp(scheme);","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","import colors from \"../colors.js\";\nexport default colors(\"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928\");","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"fc8d59ffffbf91bfdb\", \"d7191cfdae61abd9e92c7bb6\", \"d7191cfdae61ffffbfabd9e92c7bb6\", \"d73027fc8d59fee090e0f3f891bfdb4575b4\", \"d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4\", \"d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4\", \"d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4\", \"a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695\", \"a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695\").map(colors);\nexport default ramp(scheme);","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","export var slice = Array.prototype.slice;","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\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}","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _setStatic = _interopRequireDefault(require(\"./setStatic\"));\n\nvar setPropTypes = function setPropTypes(propTypes) {\n return (0, _setStatic.default)('propTypes', propTypes);\n};\n\nvar _default = setPropTypes;\nexports.default = _default;","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _mapProps = _interopRequireDefault(require(\"./mapProps\"));\n\nvar withProps = function withProps(input) {\n var hoc = (0, _mapProps.default)(function (props) {\n return (0, _extends2.default)({}, props, typeof input === 'function' ? input(props) : input);\n });\n\n if (process.env.NODE_ENV !== 'production') {\n return function (BaseComponent) {\n return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'withProps'))(hoc(BaseComponent));\n };\n }\n\n return hoc;\n};\n\nvar _default = withProps;\nexports.default = _default;","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _mapToZero = require('./mapToZero');\n\nvar _mapToZero2 = _interopRequireDefault(_mapToZero);\n\nvar _stripStyle = require('./stripStyle');\n\nvar _stripStyle2 = _interopRequireDefault(_stripStyle);\n\nvar _stepper3 = require('./stepper');\n\nvar _stepper4 = _interopRequireDefault(_stepper3);\n\nvar _performanceNow = require('performance-now');\n\nvar _performanceNow2 = _interopRequireDefault(_performanceNow);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _shouldStopAnimation = require('./shouldStopAnimation');\n\nvar _shouldStopAnimation2 = _interopRequireDefault(_shouldStopAnimation);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar msPerFrame = 1000 / 60;\n\nvar Motion = function (_React$Component) {\n _inherits(Motion, _React$Component);\n\n _createClass(Motion, null, [{\n key: 'propTypes',\n value: {\n // TOOD: warn against putting a config in here\n defaultStyle: _propTypes2['default'].objectOf(_propTypes2['default'].number),\n style: _propTypes2['default'].objectOf(_propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].object])).isRequired,\n children: _propTypes2['default'].func.isRequired,\n onRest: _propTypes2['default'].func\n },\n enumerable: true\n }]);\n\n function Motion(props) {\n var _this = this;\n\n _classCallCheck(this, Motion);\n\n _React$Component.call(this, props);\n\n this.wasAnimating = false;\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n this.unreadPropStyle = null;\n\n this.clearUnreadPropStyle = function (destStyle) {\n var dirty = false;\n var _state = _this.state;\n var currentStyle = _state.currentStyle;\n var currentVelocity = _state.currentVelocity;\n var lastIdealStyle = _state.lastIdealStyle;\n var lastIdealVelocity = _state.lastIdealVelocity;\n\n for (var key in destStyle) {\n if (!Object.prototype.hasOwnProperty.call(destStyle, key)) {\n continue;\n }\n\n var styleValue = destStyle[key];\n\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n currentStyle = _extends({}, currentStyle);\n currentVelocity = _extends({}, currentVelocity);\n lastIdealStyle = _extends({}, lastIdealStyle);\n lastIdealVelocity = _extends({}, lastIdealVelocity);\n }\n\n currentStyle[key] = styleValue;\n currentVelocity[key] = 0;\n lastIdealStyle[key] = styleValue;\n lastIdealVelocity[key] = 0;\n }\n }\n\n if (dirty) {\n _this.setState({\n currentStyle: currentStyle,\n currentVelocity: currentVelocity,\n lastIdealStyle: lastIdealStyle,\n lastIdealVelocity: lastIdealVelocity\n });\n }\n };\n\n this.startAnimationIfNecessary = function () {\n // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n _this.animationID = _raf2['default'](function (timestamp) {\n // check if we need to animate in the first place\n var propsStyle = _this.props.style;\n\n if (_shouldStopAnimation2['default'](_this.state.currentStyle, propsStyle, _this.state.currentVelocity)) {\n if (_this.wasAnimating && _this.props.onRest) {\n _this.props.onRest();\n } // no need to cancel animationID here; shouldn't have any in flight\n\n\n _this.animationID = null;\n _this.wasAnimating = false;\n _this.accumulatedTime = 0;\n return;\n }\n\n _this.wasAnimating = true;\n\n var currentTime = timestamp || _performanceNow2['default']();\n\n var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta; // more than 10 frames? prolly switched browser tab. Restart\n\n if (_this.accumulatedTime > msPerFrame * 10) {\n _this.accumulatedTime = 0;\n }\n\n if (_this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n\n _this.startAnimationIfNecessary();\n\n return;\n }\n\n var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);\n var newLastIdealStyle = {};\n var newLastIdealVelocity = {};\n var newCurrentStyle = {};\n var newCurrentVelocity = {};\n\n for (var key in propsStyle) {\n if (!Object.prototype.hasOwnProperty.call(propsStyle, key)) {\n continue;\n }\n\n var styleValue = propsStyle[key];\n\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n var newLastIdealStyleValue = _this.state.lastIdealStyle[key];\n var newLastIdealVelocityValue = _this.state.lastIdealVelocity[key];\n\n for (var i = 0; i < framesToCatchUp; i++) {\n var _stepper = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n newLastIdealStyleValue = _stepper[0];\n newLastIdealVelocityValue = _stepper[1];\n }\n\n var _stepper2 = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n var nextIdealX = _stepper2[0];\n var nextIdealV = _stepper2[1];\n newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n _this.animationID = null; // the amount we're looped over above\n\n _this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n _this.setState({\n currentStyle: newCurrentStyle,\n currentVelocity: newCurrentVelocity,\n lastIdealStyle: newLastIdealStyle,\n lastIdealVelocity: newLastIdealVelocity\n });\n\n _this.unreadPropStyle = null;\n\n _this.startAnimationIfNecessary();\n });\n };\n\n this.state = this.defaultState();\n }\n\n Motion.prototype.defaultState = function defaultState() {\n var _props = this.props;\n var defaultStyle = _props.defaultStyle;\n var style = _props.style;\n\n var currentStyle = defaultStyle || _stripStyle2['default'](style);\n\n var currentVelocity = _mapToZero2['default'](currentStyle);\n\n return {\n currentStyle: currentStyle,\n currentVelocity: currentVelocity,\n lastIdealStyle: currentStyle,\n lastIdealVelocity: currentVelocity\n };\n }; // it's possible that currentStyle's value is stale: if props is immediately\n // changed from 0 to 400 to spring(0) again, the async currentStyle is still\n // at 0 (didn't have time to tick and interpolate even once). If we naively\n // compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n // In reality currentStyle should be 400\n\n\n Motion.prototype.componentDidMount = function componentDidMount() {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n };\n\n Motion.prototype.componentWillReceiveProps = function componentWillReceiveProps(props) {\n if (this.unreadPropStyle != null) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyle);\n }\n\n this.unreadPropStyle = props.style;\n\n if (this.animationID == null) {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n }\n };\n\n Motion.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\n\n this.animationID = null;\n }\n };\n\n Motion.prototype.render = function render() {\n var renderedChildren = this.props.children(this.state.currentStyle);\n return renderedChildren && _react2['default'].Children.only(renderedChildren);\n };\n\n return Motion;\n}(_react2['default'].Component);\n\nexports['default'] = Motion;\nmodule.exports = exports['default']; // after checking for unreadPropStyle != null, we manually go set the\n// non-interpolating values (those that are a number, without a spring\n// config)","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] || root[vendors[i] + 'CancelRequest' + suffix];\n} // Some versions of FF have rAF but not cAF\n\n\nif (!raf || !caf) {\n var last = 0,\n id = 0,\n queue = [],\n frameDuration = 1000 / 60;\n\n raf = function raf(callback) {\n if (queue.length === 0) {\n var _now = now(),\n next = Math.max(0, frameDuration - (_now - last));\n\n last = next + _now;\n setTimeout(function () {\n var cp = queue.slice(0); // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n\n queue.length = 0;\n\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 () {\n throw e;\n }, 0);\n }\n }\n }\n }, Math.round(next));\n }\n\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n });\n return id;\n };\n\n caf = function caf(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};\n\nmodule.exports.cancel = function () {\n caf.apply(root, arguments);\n};\n\nmodule.exports.polyfill = function (object) {\n if (!object) {\n object = root;\n }\n\n object.requestAnimationFrame = raf;\n object.cancelAnimationFrame = caf;\n};","var LazyWrapper = require('./_LazyWrapper'),\n LodashWrapper = require('./_LodashWrapper'),\n copyArray = require('./_copyArray');\n\n/**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\nfunction wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n}\n\nmodule.exports = wrapperClone;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n}\n\nmodule.exports = composeArgs;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n/** Used to stand-in for `undefined` hash values. */\n\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n/** Used as references for various `Number` constants. */\n\nvar INFINITY = 1 / 0;\n/** `Object#toString` result references. */\n\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\n/** Used to match property names within property paths. */\n\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n/** Used to match backslashes in property paths. */\n\nvar reEscapeChar = /\\\\(\\\\)?/g;\n/** Used to detect host constructors (Safari). */\n\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n/** Detect free variable `global` from Node.js. */\n\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n/** Detect free variable `self`. */\n\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\n\n\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n\n return result;\n}\n/** Used for built-in method references. */\n\n\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n/** Used to detect overreaching core-js shims. */\n\nvar coreJsData = root['__core-js_shared__'];\n/** Used to detect methods masquerading as native. */\n\nvar maskSrcKey = function () {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? 'Symbol(src)_1.' + uid : '';\n}();\n/** Used to resolve the decompiled source of functions. */\n\n\nvar funcToString = funcProto.toString;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar objectToString = objectProto.toString;\n/** Used to detect if a method is native. */\n\nvar reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n/** Built-in value references. */\n\nvar Symbol = root.Symbol,\n splice = arrayProto.splice;\n/* Built-in method references that are verified to be native. */\n\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n/** Used to convert symbols to primitives and strings. */\n\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n\n\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n\n\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n\n\nfunction hashGet(key) {\n var data = this.__data__;\n\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n\n\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n\n\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value;\n return this;\n} // Add methods to `Hash`.\n\n\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n\n\nfunction listCacheClear() {\n this.__data__ = [];\n}\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n\n\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n\n var lastIndex = data.length - 1;\n\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n\n return true;\n}\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n\n\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n return index < 0 ? undefined : data[index][1];\n}\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n\n\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n\n\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n\n return this;\n} // Add methods to `ListCache`.\n\n\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n\n\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash(),\n 'map': new (Map || ListCache)(),\n 'string': new Hash()\n };\n}\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n\n\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n\n\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n\n\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n\n\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n} // Add methods to `MapCache`.\n\n\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n\nfunction assocIndexOf(array, key) {\n var length = array.length;\n\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n\n return -1;\n}\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n\n\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n\n return index && index == length ? object : undefined;\n}\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n\n\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n\n var pattern = isFunction(value) || isHostObject(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n\n\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n}\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\n\n\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n\n\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\n}\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n\n\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n\n\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n\n var type = typeof value;\n\n if (type == 'number' || type == 'symbol' || type == 'boolean' || value == null || isSymbol(value)) {\n return true;\n }\n\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);\n}\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n\n\nfunction isKeyable(value) {\n var type = typeof value;\n return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;\n}\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n\n\nfunction isMasked(func) {\n return !!maskSrcKey && maskSrcKey in func;\n}\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n\n\nvar stringToPath = memoize(function (string) {\n string = toString(string);\n var result = [];\n\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n\n string.replace(rePropName, function (match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : number || match);\n });\n return result;\n});\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n}\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\n\n\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n\n try {\n return func + '';\n } catch (e) {}\n }\n\n return '';\n}\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n\n\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || resolver && typeof resolver != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n var memoized = function memoized() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n\n memoized.cache = new (memoize.Cache || MapCache)();\n return memoized;\n} // Assign cache to `_.memoize`.\n\n\nmemoize.Cache = MapCache;\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n\nfunction eq(value, other) {\n return value === other || value !== value && other !== other;\n}\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n\n\nvar isArray = Array.isArray;\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n\n\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n\n\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n\n\nfunction isSymbol(value) {\n return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n}\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n\n\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n\n\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\nexport var scheme = new Array(3).concat(\"fee8c8fdbb84e34a33\", \"fef0d9fdcc8afc8d59d7301f\", \"fef0d9fdcc8afc8d59e34a33b30000\", \"fef0d9fdd49efdbb84fc8d59e34a33b30000\", \"fef0d9fdd49efdbb84fc8d59ef6548d7301f990000\", \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000\", \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000\").map(colors);\nexport default ramp(scheme);","export default function () {}","import noop from \"../noop.js\";\nimport { point as _point } from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 1:\n {\n this._context.moveTo(this._x2, this._y2);\n\n this._context.closePath();\n\n break;\n }\n\n case 2:\n {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n\n this._context.closePath();\n\n break;\n }\n\n case 3:\n {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x2 = x, this._y2 = y;\n break;\n\n case 1:\n this._point = 2;\n this._x3 = x, this._y3 = y;\n break;\n\n case 2:\n this._point = 3;\n this._x4 = x, this._y4 = y;\n\n this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6);\n\n break;\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\nexport default function (context) {\n return new BasisClosed(context);\n}","import { point as _point } from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n var x0 = (this._x0 + 4 * this._x1 + x) / 6,\n y0 = (this._y0 + 4 * this._y1 + y) / 6;\n this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0);\n break;\n\n case 3:\n this._point = 4;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\nexport default function (context) {\n return new BasisOpen(context);\n}","import { Basis } from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function lineStart() {\n this._x = [];\n this._y = [];\n\n this._basis.lineStart();\n },\n lineEnd: function lineEnd() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n\n this._basis.point(this._beta * x[i] + (1 - this._beta) * (x0 + t * dx), this._beta * y[i] + (1 - this._beta) * (y0 + t * dy));\n }\n }\n\n this._x = this._y = null;\n\n this._basis.lineEnd();\n },\n point: function point(x, y) {\n this._x.push(+x);\n\n this._y.push(+y);\n }\n};\nexport default (function custom(beta) {\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function (beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);","function _point(that, x, y) {\n that._context.bezierCurveTo(that._x1 + that._k * (that._x2 - that._x0), that._y1 + that._k * (that._y2 - that._y0), that._x2 + that._k * (that._x1 - x), that._y2 + that._k * (that._y1 - y), that._x2, that._y2);\n}\n\nexport { _point as point };\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\nCardinal.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 2:\n this._context.lineTo(this._x2, this._y2);\n\n break;\n\n case 3:\n _point(this, this._x1, this._y1);\n\n break;\n }\n\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n this._x1 = x, this._y1 = y;\n break;\n\n case 2:\n this._point = 3;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(tension) {\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function (tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);","import noop from \"../noop.js\";\nimport { point as _point } from \"./cardinal.js\";\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 1:\n {\n this._context.moveTo(this._x3, this._y3);\n\n this._context.closePath();\n\n break;\n }\n\n case 2:\n {\n this._context.lineTo(this._x3, this._y3);\n\n this._context.closePath();\n\n break;\n }\n\n case 3:\n {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x3 = x, this._y3 = y;\n break;\n\n case 1:\n this._point = 2;\n\n this._context.moveTo(this._x4 = x, this._y4 = y);\n\n break;\n\n case 2:\n this._point = 3;\n this._x5 = x, this._y5 = y;\n break;\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(tension) {\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function (tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);","import { point as _point } from \"./cardinal.js\";\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\nCardinalOpen.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);\n break;\n\n case 3:\n this._point = 4;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(tension) {\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function (tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);","import { epsilon } from \"../math.js\";\nimport { Cardinal } from \"./cardinal.js\";\n\nfunction _point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nexport { _point as point };\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 2:\n this._context.lineTo(this._x2, this._y2);\n\n break;\n\n case 3:\n this.point(this._x2, this._y2);\n break;\n }\n\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(alpha) {\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function (alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);","import { CardinalClosed } from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport { point as _point } from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 1:\n {\n this._context.moveTo(this._x3, this._y3);\n\n this._context.closePath();\n\n break;\n }\n\n case 2:\n {\n this._context.lineTo(this._x3, this._y3);\n\n this._context.closePath();\n\n break;\n }\n\n case 3:\n {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x3 = x, this._y3 = y;\n break;\n\n case 1:\n this._point = 2;\n\n this._context.moveTo(this._x4 = x, this._y4 = y);\n\n break;\n\n case 2:\n this._point = 3;\n this._x5 = x, this._y5 = y;\n break;\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(alpha) {\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function (alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);","import { CardinalOpen } from \"./cardinalOpen.js\";\nimport { point as _point } from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);\n break;\n\n case 3:\n this._point = 4;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(alpha) {\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function (alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._point) this._context.closePath();\n },\n point: function point(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);else this._point = 1, this._context.moveTo(x, y);\n }\n};\nexport default function (context) {\n return new LinearClosed(context);\n}","function sign(x) {\n return x < 0 ? -1 : 1;\n} // Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\n\n\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n} // Calculate a one-sided slope.\n\n\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n} // According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\n\n\nfunction _point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 2:\n this._context.lineTo(this._x1, this._y1);\n\n break;\n\n case 3:\n _point(this, this._t0, slope2(this, this._t0));\n\n break;\n }\n\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n var t1 = NaN;\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n\n _point(this, slope2(this, t1 = slope3(this, x, y)), t1);\n\n break;\n\n default:\n _point(this, this._t0, t1 = slope3(this, x, y));\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n};\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function (x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function moveTo(x, y) {\n this._context.moveTo(y, x);\n },\n closePath: function closePath() {\n this._context.closePath();\n },\n lineTo: function lineTo(x, y) {\n this._context.lineTo(y, x);\n },\n bezierCurveTo: function bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._context.bezierCurveTo(y1, x1, y2, x2, y, x);\n }\n};\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function lineEnd() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || this._line !== 0 && n === 1) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function point(x, y) {\n this._x.push(+x);\n\n this._y.push(+y);\n }\n}; // See https://www.particleincell.com/2012/bezier-splines/ for derivation.\n\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n\n for (i = 1; i < n - 1; ++i) {\n a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n }\n\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n\n for (i = 1; i < n; ++i) {\n m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n }\n\n a[n - 1] = r[n - 1] / b[n - 1];\n\n for (i = n - 2; i >= 0; --i) {\n a[i] = (r[i] - a[i + 1]) / b[i];\n }\n\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n\n for (i = 0; i < n - 1; ++i) {\n b[i] = 2 * x[i + 1] - a[i + 1];\n }\n\n return [a, b];\n}\n\nexport default function (context) {\n return new Natural(context);\n}","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n // proceed\n\n default:\n {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n\n this._context.lineTo(x1, this._y);\n\n this._context.lineTo(x1, y);\n }\n\n break;\n }\n }\n\n this._x = x, this._y = y;\n }\n};\nexport default function (context) {\n return new Step(context, 0.5);\n}\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\nexport function stepAfter(context) {\n return new Step(context, 1);\n}","import \"core-js/modules/es.array.sort.js\";\nimport none from \"./none.js\";\nexport default function (series) {\n var sums = series.map(sum);\n return none(series).sort(function (a, b) {\n return sums[a] - sums[b];\n });\n}\nexport function sum(series) {\n var s = 0,\n i = -1,\n n = series.length,\n v;\n\n while (++i < n) {\n if (v = +series[i][1]) s += v;\n }\n\n return s;\n}","import \"core-js/modules/es.array.sort.js\";\nimport none from \"./none.js\";\nexport default function (series) {\n var peaks = series.map(peak);\n return none(series).sort(function (a, b) {\n return peaks[a] - peaks[b];\n });\n}\n\nfunction peak(series) {\n var i = -1,\n j = 0,\n n = series.length,\n vi,\n vj = -Infinity;\n\n while (++i < n) {\n if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n }\n\n return j;\n}","import appearance from \"./appearance.js\";\nimport { sum } from \"./ascending.js\";\nexport default function (series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum),\n order = appearance(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}","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}","export default function (parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nexport var phi = (1 + Math.sqrt(5)) / 2;\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx,\n dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0; // Find the next non-empty node.\n\n do {\n sumValue = nodes[i1++].value;\n } while (!sumValue && i1 < n);\n\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue); // Keep adding nodes while the aspect ratio maintains or improves.\n\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n\n if (newRatio > minRatio) {\n sumValue -= nodeValue;\n break;\n }\n\n minRatio = newRatio;\n } // Position and record the row orientation.\n\n\n rows.push(row = {\n value: sumValue,\n dice: dx < dy,\n children: nodes.slice(i0, i1)\n });\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\nexport default (function custom(ratio) {\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function (x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nimport { phi, squarifyRatio } from \"./squarify.js\";\nexport default (function custom(ratio) {\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && rows.ratio === ratio) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n\n while (++j < m) {\n row = rows[j], nodes = row.children;\n\n for (i = row.value = 0, n = nodes.length; i < n; ++i) {\n row.value += nodes[i].value;\n }\n\n if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);else treemapSlice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n\n resquarify.ratio = function (x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return resquarify;\n})(phi);","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;else while (--i >= 0) {\n sum += children[i].value;\n }\n node.value = sum;\n}\n\nexport default function () {\n return this.eachAfter(count);\n}","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nexport default function hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n\n do {\n node.height = height;\n } while ((node = node.parent) && node.height < ++height);\n}\nexport function Node(data) {\n this.data = data;\n this.depth = this.height = 0;\n this.parent = null;\n}\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};","export default function (callback) {\n var node = this,\n current,\n next = [node],\n children,\n i,\n n;\n\n do {\n current = next.reverse(), next = [];\n\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n\n return this;\n}","export default function (callback) {\n var node = this,\n nodes = [node],\n next = [],\n children,\n i,\n n;\n\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n\n while (node = next.pop()) {\n callback(node);\n }\n\n return this;\n}","export default function (callback) {\n var node = this,\n nodes = [node],\n children,\n i;\n\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n\n return this;\n}","export default function (value) {\n return this.eachAfter(function (node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n\n while (--i >= 0) {\n sum += children[i].value;\n }\n\n node.value = sum;\n });\n}","import \"core-js/modules/es.array.sort.js\";\nexport default function (compare) {\n return this.eachBefore(function (node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}","export default function (end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n\n var k = nodes.length;\n\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n\n return c;\n}","export default function () {\n var node = this,\n nodes = [node];\n\n while (node = node.parent) {\n nodes.push(node);\n }\n\n return nodes;\n}","export default function () {\n var nodes = [];\n this.each(function (node) {\n nodes.push(node);\n });\n return nodes;\n}","export default function () {\n var leaves = [];\n this.eachBefore(function (node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}","export default function () {\n var root = this,\n links = [];\n root.each(function (node) {\n if (node !== root) {\n // Don’t include the root’s parent, if any.\n links.push({\n source: node.parent,\n target: node\n });\n }\n });\n return links;\n}","export default function (x) {\n return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString(\"en\").replace(/,/g, \"\") : x.toString(10);\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].\n\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n\n var i,\n coefficient = x.slice(0, i); // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n\n return [coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, +x.slice(i + 1)];\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport default function (x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function () {\n return this.fill + this.align + this.sign + this.symbol + (this.zero ? \"0\" : \"\") + (this.width === undefined ? \"\" : Math.max(1, this.width | 0)) + (this.comma ? \",\" : \"\") + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0)) + (this.trim ? \"~\" : \"\") + this.type;\n};","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function (s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\":\n i0 = i1 = i;\n break;\n\n case \"0\":\n if (i0 === 0) i0 = i;\n i1 = i;\n break;\n\n default:\n if (!+s[i]) break out;\n if (i0 > 0) i0 = 0;\n break;\n }\n }\n\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport var prefixExponent;\nexport default function (x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join(\"0\") : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i) : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var format;\nexport var formatPrefix;\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport default function (x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\nexport default {\n \"%\": function _(x, p) {\n return (x * 100).toFixed(p);\n },\n \"b\": function b(x) {\n return Math.round(x).toString(2);\n },\n \"c\": function c(x) {\n return x + \"\";\n },\n \"d\": formatDecimal,\n \"e\": function e(x, p) {\n return x.toExponential(p);\n },\n \"f\": function f(x, p) {\n return x.toFixed(p);\n },\n \"g\": function g(x, p) {\n return x.toPrecision(p);\n },\n \"o\": function o(x) {\n return Math.round(x).toString(8);\n },\n \"p\": function p(x, _p) {\n return formatRounded(x * 100, _p);\n },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function X(x) {\n return Math.round(x).toString(16).toUpperCase();\n },\n \"x\": function x(_x) {\n return Math.round(_x).toString(16);\n }\n};","export default function (x) {\n return x;\n}","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport { prefixExponent } from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\nvar map = Array.prototype.map,\n prefixes = [\"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"µ\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\nexport default function (locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type; // The \"n\" type is an alias for \",g\".\n\n if (type === \"n\") comma = true, type = \"g\"; // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\"; // If zero fill is specified, padding goes after sign and before digits.\n\n if (zero || fill === \"0\" && align === \"=\") zero = true, fill = \"0\", align = \"=\"; // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\"; // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type); // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n\n precision = precision === undefined ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i,\n n,\n c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value; // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n\n var valueNegative = value < 0 || 1 / value < 0; // Perform the initial formatting.\n\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision); // Trim insignificant zeros.\n\n if (trim) value = formatTrim(value); // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false; // Compute the prefix and suffix.\n\n valuePrefix = (valueNegative ? sign === \"(\" ? sign : minus : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\"); // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n\n if (maybeSuffix) {\n i = -1, n = value.length;\n\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n } // If the fill character is not \"0\", grouping is applied before padding.\n\n\n if (comma && !zero) value = group(value, Infinity); // Compute the padding.\n\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\"; // If the fill character is \"0\", grouping is applied after padding.\n\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\"; // Reconstruct the final output based on the desired alignment.\n\n switch (align) {\n case \"<\":\n value = valuePrefix + value + valueSuffix + padding;\n break;\n\n case \"=\":\n value = valuePrefix + padding + value + valueSuffix;\n break;\n\n case \"^\":\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n\n default:\n value = padding + valuePrefix + value + valueSuffix;\n break;\n }\n\n return numerals(value);\n }\n\n format.toString = function () {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function (value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}","export default function (grouping, thousands) {\n return function (value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}","export default function (numerals) {\n return function (value) {\n return value.replace(/[0-9]/g, function (i) {\n return numerals[+i];\n });\n };\n}","var t0 = new Date(),\n t1 = new Date();\nexport default function newInterval(floori, offseti, count, field) {\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date() : new Date(+date)), date;\n }\n\n interval.floor = function (date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function (date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function (date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function (date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function (start, stop, step) {\n var range = [],\n previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n\n do {\n range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n } while (previous < start && start < stop);\n\n return range;\n };\n\n interval.filter = function (test) {\n return newInterval(function (date) {\n if (date >= date) while (floori(date), !test(date)) {\n date.setTime(date - 1);\n }\n }, function (date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n\n }\n }\n });\n };\n\n if (count) {\n interval.count = function (start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function (step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? function (d) {\n return field(d) % step === 0;\n } : function (d) {\n return interval.count(0, d) % step === 0;\n });\n };\n }\n\n return interval;\n}","import interval from \"./interval.js\";\nimport { durationWeek } from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function (date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function (start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;","import interval from \"./interval.js\";\nimport { durationDay } from \"./duration.js\";\nvar utcDay = interval(function (date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function (start, end) {\n return (end - start) / durationDay;\n}, function (date) {\n return date.getUTCDate() - 1;\n});\nexport default utcDay;\nexport var utcDays = utcDay.range;","import interval from \"./interval.js\";\nimport { durationMinute, durationWeek } from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function (date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;","import interval from \"./interval.js\";\nimport { durationDay, durationMinute } from \"./duration.js\";\nvar day = interval(function (date) {\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setDate(date.getDate() + step);\n}, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function (date) {\n return date.getDate() - 1;\n});\nexport default day;\nexport var days = day.range;","import interval from \"./interval.js\";\nvar year = interval(function (date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function (start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function (date) {\n return date.getFullYear();\n}); // An optimized implementation for this simple case.\n\nyear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;","import interval from \"./interval.js\";\nvar utcYear = interval(function (date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function (start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function (date) {\n return date.getUTCFullYear();\n}); // An optimized implementation for this simple case.\n\nutcYear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;","import { timeDay, timeSunday, timeMonday, timeThursday, timeYear, utcDay, utcSunday, utcMonday, utcThursday, utcYear } from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {\n y: y,\n m: m,\n d: d,\n H: 0,\n M: 0,\n S: 0,\n L: 0\n };\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n }; // These recursive directive definitions must be deferred.\n\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function (date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function (string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week,\n day;\n if (i != string.length) return null; // If a UNIX timestamp is specified, return it.\n\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0)); // If this is utcParse, never use the local timezone.\n\n if (Z && !(\"Z\" in d)) d.Z = 0; // The am-pm flag is 0 for AM, and 1 for PM.\n\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12; // If the month was not specified, inherit from the quarter.\n\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0; // Convert day-of-week and week-of-year to day-of-year.\n\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n } // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n\n\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n } // Otherwise, all fields are in local time.\n\n\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || (j = parse(d, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function format(specifier) {\n var f = newFormat(specifier += \"\", formats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n parse: function parse(specifier) {\n var p = newParse(specifier += \"\", false);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n },\n utcFormat: function utcFormat(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n utcParse: function utcParse(specifier) {\n var p = newParse(specifier += \"\", true);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n }\n };\n}\nvar pads = {\n \"-\": \"\",\n \"_\": \" \",\n \"0\": \"0\"\n},\n numberRe = /^\\s*\\d+/,\n // note: ignores next directive\npercentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {},\n i = -1,\n n = names.length;\n\n while (++i < n) {\n map[names[i].toLowerCase()] = i;\n }\n\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction 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, \"+\")) + pad(z / 60 | 0, \"0\", 2) + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction 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}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1,\n t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6;\n}\nexport default function (values) {\n var n = values.length - 1;\n return function (t) {\n var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}","export default function (x) {\n return function () {\n return x;\n };\n}","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function (t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function (t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function (a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}","import { rgb as colorRgb } from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, { gamma } from \"./color.js\";\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function (t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function (colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i,\n color;\n\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function (t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);","import { basis } from \"./basis.js\";\nexport default function (values) {\n var n = values.length;\n return function (t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}","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) {\n c[i] = a[i] * (1 - t) + b[i] * t;\n }\n\n return c;\n };\n}\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}","import value from \"./value.js\";\nimport numberArray, { isNumberArray } from \"./numberArray.js\";\nexport default function (a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) {\n x[i] = value(a[i], b[i]);\n }\n\n for (; i < nb; ++i) {\n c[i] = b[i];\n }\n\n return function (t) {\n for (i = 0; i < na; ++i) {\n c[i] = x[i](t);\n }\n\n return c;\n };\n}","export default function (a, b) {\n var d = new Date();\n return a = +a, b = +b, function (t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}","export default function (a, b) {\n return a = +a, b = +b, function (t) {\n return a * (1 - t) + b * t;\n };\n}","import value from \"./value.js\";\nexport default function (a, b) {\n var i = {},\n c = {},\n k;\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function (t) {\n for (k in i) {\n c[k] = i[k](t);\n }\n\n return c;\n };\n}","import number from \"./number.js\";\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function () {\n return b;\n };\n}\n\nfunction one(b) {\n return function (t) {\n return b(t) + \"\";\n };\n}\n\nexport default function (a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0,\n // scan index for next number in b\n am,\n // current match in a\n bm,\n // current match in b\n bs,\n // string preceding current number in b, if any\n i = -1,\n // index in s\n s = [],\n // string constants and placeholders\n q = []; // number interpolators\n // Coerce inputs to strings.\n\n a = a + \"\", b = b + \"\"; // Interpolate pairs of numbers in a & b.\n\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n if ((am = am[0]) === (bm = bm[0])) {\n // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else {\n // interpolate non-matching numbers\n s[++i] = null;\n q.push({\n i: i,\n x: number(am, bm)\n });\n }\n\n bi = reB.lastIndex;\n } // Add remains of b.\n\n\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n } // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n\n\n return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function (t) {\n for (var i = 0, o; i < b; ++i) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n });\n}","import { color } from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport { genericArray } from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, { isNumberArray } from \"./numberArray.js\";\nexport default function (a, b) {\n var t = typeof b,\n c;\n return b == null || t === \"boolean\" ? constant(b) : (t === \"number\" ? number : t === \"string\" ? (c = color(b)) ? (b = c, rgb) : string : b instanceof color ? rgb : b instanceof Date ? date : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object : number)(a, b);\n}","import React, { useMemo, createContext, useContext, PureComponent, useRef, useState, useCallback, Component, memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { tooltipContext, useTooltipHandlers, TooltipWrapper } from '@nivo/tooltip';\nimport merge from 'lodash/merge';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\nimport last from 'lodash/last';\nimport isArray from 'lodash/isArray';\nimport isString from 'lodash/isString';\nimport { scaleQuantize, scaleOrdinal, scaleSequential } from 'd3-scale';\nimport { schemeBrBG, schemePRGn, schemePiYG, schemePuOr, schemeRdBu, schemeRdGy, schemeRdYlBu, schemeRdYlGn, schemeSpectral, schemeBlues, schemeGreens, schemeGreys, schemeOranges, schemePurples, schemeReds, schemeBuGn, schemeBuPu, schemeGnBu, schemeOrRd, schemePuBuGn, schemePuBu, schemePuRd, schemeRdPu, schemeYlGnBu, schemeYlGn, schemeYlOrBr, schemeYlOrRd, schemeCategory10, schemeAccent, schemeDark2, schemePaired, schemePastel1, schemePastel2, schemeSet1, schemeSet2, schemeSet3, interpolateBrBG, interpolatePRGn, interpolatePiYG, interpolatePuOr, interpolateRdBu, interpolateRdGy, interpolateRdYlBu, interpolateRdYlGn, interpolateSpectral, interpolateBlues, interpolateGreens, interpolateGreys, interpolateOranges, interpolatePurples, interpolateReds, interpolateViridis, interpolateInferno, interpolateMagma, interpolatePlasma, interpolateWarm, interpolateCool, interpolateCubehelixDefault, interpolateBuGn, interpolateBuPu, interpolateGnBu, interpolateOrRd, interpolatePuBuGn, interpolatePuBu, interpolatePuRd, interpolateRdPu, interpolateYlGnBu, interpolateYlGn, interpolateYlOrBr, interpolateYlOrRd, interpolateRainbow, interpolateSinebow } from 'd3-scale-chromatic';\nimport isFunction from 'lodash/isFunction';\nimport without from 'lodash/without';\nimport { curveBasis, curveBasisClosed, curveBasisOpen, curveBundle, curveCardinal, curveCardinalClosed, curveCardinalOpen, curveCatmullRom, curveCatmullRomClosed, curveCatmullRomOpen, curveLinear, curveLinearClosed, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore, stackOrderAscending, stackOrderDescending, stackOrderInsideOut, stackOrderNone, stackOrderReverse, stackOffsetExpand, stackOffsetDiverging, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle } from 'd3-shape';\nimport { treemapBinary, treemapDice, treemapSlice, treemapSliceDice, treemapSquarify, treemapResquarify, hierarchy } from 'd3-hierarchy';\nimport { format } from 'd3-format';\nimport { timeFormat } from 'd3-time-format';\nimport { spring, Motion } from 'react-motion';\nimport { interpolate } from 'd3-interpolate';\nimport Measure from 'react-measure';\nimport withProps from 'recompose/withProps';\nimport isEqual from 'lodash/isEqual';\nimport compose from 'recompose/compose';\nimport setPropTypes from 'recompose/setPropTypes';\nimport defaultProps from 'recompose/defaultProps';\nimport withPropsOnChange from 'recompose/withPropsOnChange';\nimport partialRight from 'lodash/partialRight';\nimport isPlainObject from 'lodash/isPlainObject';\nimport pick from 'lodash/pick';\n\nvar noop = function noop() {};\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar textProps = {\n fill: PropTypes.string,\n fontSize: PropTypes.number,\n fontFamily: PropTypes.string\n};\nvar axisThemePropType = PropTypes.shape({\n domain: PropTypes.shape({\n line: PropTypes.shape({\n stroke: PropTypes.string.isRequired,\n strokeWidth: PropTypes.number.isRequired,\n strokeDasharray: PropTypes.string\n }).isRequired\n }).isRequired,\n ticks: PropTypes.shape({\n line: PropTypes.shape({\n stroke: PropTypes.string.isRequired,\n strokeWidth: PropTypes.number.isRequired,\n strokeDasharray: PropTypes.string\n }).isRequired,\n text: PropTypes.shape(_objectSpread({}, textProps)).isRequired\n }).isRequired,\n legend: PropTypes.shape({\n text: PropTypes.shape(_objectSpread({}, textProps)).isRequired\n }).isRequired\n});\nvar gridThemePropType = PropTypes.shape({\n line: PropTypes.shape({\n stroke: PropTypes.string.isRequired,\n strokeWidth: PropTypes.number.isRequired,\n strokeDasharray: PropTypes.string\n }).isRequired\n});\nvar legendsThemePropType = PropTypes.shape({\n text: PropTypes.shape(_objectSpread({}, textProps)).isRequired\n});\nvar labelsThemePropType = PropTypes.shape({\n text: PropTypes.shape(_objectSpread({}, textProps)).isRequired\n});\nvar dotsThemePropType = PropTypes.shape({\n text: PropTypes.shape(_objectSpread({}, textProps)).isRequired\n});\nvar markersThemePropType = PropTypes.shape({\n text: PropTypes.shape(_objectSpread({}, textProps)).isRequired\n});\nvar crosshairPropType = PropTypes.shape({\n line: PropTypes.shape({\n stroke: PropTypes.string.isRequired,\n strokeWidth: PropTypes.number.isRequired,\n strokeDasharray: PropTypes.string\n }).isRequired\n});\nvar annotationsPropType = PropTypes.shape({\n text: PropTypes.shape(_objectSpread({}, textProps, {\n outlineWidth: PropTypes.number.isRequired,\n outlineColor: PropTypes.string.isRequired\n })).isRequired,\n link: PropTypes.shape({\n stroke: PropTypes.string.isRequired,\n strokeWidth: PropTypes.number.isRequired,\n outlineWidth: PropTypes.number.isRequired,\n outlineColor: PropTypes.string.isRequired\n }).isRequired,\n outline: PropTypes.shape({\n stroke: PropTypes.string.isRequired,\n strokeWidth: PropTypes.number.isRequired,\n outlineWidth: PropTypes.number.isRequired,\n outlineColor: PropTypes.string.isRequired\n }).isRequired,\n symbol: PropTypes.shape({\n fill: PropTypes.string.isRequired,\n outlineWidth: PropTypes.number.isRequired,\n outlineColor: PropTypes.string.isRequired\n }).isRequired\n});\nvar themePropType = PropTypes.shape({\n background: PropTypes.string.isRequired,\n fontFamily: PropTypes.string.isRequired,\n fontSize: PropTypes.number.isRequired,\n textColor: PropTypes.string.isRequired,\n axis: axisThemePropType.isRequired,\n grid: gridThemePropType.isRequired,\n legends: legendsThemePropType.isRequired,\n labels: labelsThemePropType.isRequired,\n dots: dotsThemePropType.isRequired,\n markers: markersThemePropType,\n crosshair: crosshairPropType.isRequired,\n annotations: annotationsPropType.isRequired\n});\nvar defaultTheme = {\n background: 'transparent',\n fontFamily: 'sans-serif',\n fontSize: 11,\n textColor: '#333333',\n axis: {\n domain: {\n line: {\n stroke: 'transparent',\n strokeWidth: 1\n }\n },\n ticks: {\n line: {\n stroke: '#777777',\n strokeWidth: 1\n },\n text: {}\n },\n legend: {\n text: {\n fontSize: 12\n }\n }\n },\n grid: {\n line: {\n stroke: '#dddddd',\n strokeWidth: 1\n }\n },\n legends: {\n text: {\n fill: '#333333'\n }\n },\n labels: {\n text: {}\n },\n markers: {\n lineColor: '#000000',\n lineStrokeWidth: 1,\n text: {}\n },\n dots: {\n text: {}\n },\n tooltip: {\n container: {\n background: 'white',\n color: 'inherit',\n fontSize: 'inherit',\n borderRadius: '2px',\n boxShadow: '0 1px 2px rgba(0, 0, 0, 0.25)',\n padding: '5px 9px'\n },\n basic: {\n whiteSpace: 'pre',\n display: 'flex',\n alignItems: 'center'\n },\n chip: {\n marginRight: 7\n },\n table: {},\n tableCell: {\n padding: '3px 5px'\n }\n },\n crosshair: {\n line: {\n stroke: '#000000',\n strokeWidth: 1,\n strokeOpacity: 0.75,\n strokeDasharray: '6 6'\n }\n },\n annotations: {\n text: {\n fontSize: 13,\n outlineWidth: 2,\n outlineColor: '#ffffff'\n },\n link: {\n stroke: '#000000',\n strokeWidth: 1,\n outlineWidth: 2,\n outlineColor: '#ffffff'\n },\n outline: {\n fill: 'none',\n stroke: '#000000',\n strokeWidth: 2,\n outlineWidth: 2,\n outlineColor: '#ffffff'\n },\n symbol: {\n fill: '#000000',\n outlineWidth: 2,\n outlineColor: '#ffffff'\n }\n }\n};\nvar fontProps = ['axis.ticks.text', 'axis.legend.text', 'legends.text', 'labels.text', 'dots.text', 'markers.text', 'annotations.text'];\n\nvar extendDefaultTheme = function extendDefaultTheme(defaultTheme, customTheme) {\n var theme = merge({}, defaultTheme, customTheme);\n fontProps.forEach(function (prop) {\n if (get(theme, \"\".concat(prop, \".fontFamily\")) === undefined) {\n set(theme, \"\".concat(prop, \".fontFamily\"), theme.fontFamily);\n }\n\n if (get(theme, \"\".concat(prop, \".fontSize\")) === undefined) {\n set(theme, \"\".concat(prop, \".fontSize\"), theme.fontSize);\n }\n\n if (get(theme, \"\".concat(prop, \".fill\")) === undefined) {\n set(theme, \"\".concat(prop, \".fill\"), theme.textColor);\n }\n });\n return theme;\n};\n\nvar quantizeColorScales = {\n nivo: ['#d76445', '#f47560', '#e8c1a0', '#97e3d5', '#61cdbb', '#00b0a7'],\n BrBG: last(schemeBrBG),\n PRGn: last(schemePRGn),\n PiYG: last(schemePiYG),\n PuOr: last(schemePuOr),\n RdBu: last(schemeRdBu),\n RdGy: last(schemeRdGy),\n RdYlBu: last(schemeRdYlBu),\n RdYlGn: last(schemeRdYlGn),\n spectral: last(schemeSpectral),\n blues: last(schemeBlues),\n greens: last(schemeGreens),\n greys: last(schemeGreys),\n oranges: last(schemeOranges),\n purples: last(schemePurples),\n reds: last(schemeReds),\n BuGn: last(schemeBuGn),\n BuPu: last(schemeBuPu),\n GnBu: last(schemeGnBu),\n OrRd: last(schemeOrRd),\n PuBuGn: last(schemePuBuGn),\n PuBu: last(schemePuBu),\n PuRd: last(schemePuRd),\n RdPu: last(schemeRdPu),\n YlGnBu: last(schemeYlGnBu),\n YlGn: last(schemeYlGn),\n YlOrBr: last(schemeYlOrBr),\n YlOrRd: last(schemeYlOrRd)\n};\nvar quantizeColorScalesKeys = Object.keys(quantizeColorScales);\n\nvar guessQuantizeColorScale = function guessQuantizeColorScale(colors) {\n if (isFunction(colors)) {\n if (!isFunction(colors.domain)) {\n throw new Error(\"Provided colors should be a valid quantize scale providing a 'domain()' function\");\n }\n\n return colors;\n }\n\n if (quantizeColorScales[colors]) {\n return scaleQuantize().range(quantizeColorScales[colors]);\n }\n\n if (isArray(colors)) return scaleQuantize().range(colors);\n throw new Error(\"Unable to guess quantize color scale from '\".concat(colors, \"',\\nmust be a function or one of:\\n'\").concat(quantizeColorScalesKeys.join(\"', '\"), \"'\"));\n};\n\nvar colorSchemes = {\n nivo: ['#e8c1a0', '#f47560', '#f1e15b', '#e8a838', '#61cdbb', '#97e3d5'],\n category10: schemeCategory10,\n accent: schemeAccent,\n dark2: schemeDark2,\n paired: schemePaired,\n pastel1: schemePastel1,\n pastel2: schemePastel2,\n set1: schemeSet1,\n set2: schemeSet2,\n set3: schemeSet3,\n brown_blueGreen: last(schemeBrBG),\n purpleRed_green: last(schemePRGn),\n pink_yellowGreen: last(schemePiYG),\n purple_orange: last(schemePuOr),\n red_blue: last(schemeRdBu),\n red_grey: last(schemeRdGy),\n red_yellow_blue: last(schemeRdYlBu),\n red_yellow_green: last(schemeRdYlGn),\n spectral: last(schemeSpectral),\n blues: last(schemeBlues),\n greens: last(schemeGreens),\n greys: last(schemeGreys),\n oranges: last(schemeOranges),\n purples: last(schemePurples),\n reds: last(schemeReds),\n blue_green: last(schemeBuGn),\n blue_purple: last(schemeBuPu),\n green_blue: last(schemeGnBu),\n orange_red: last(schemeOrRd),\n purple_blue_green: last(schemePuBuGn),\n purple_blue: last(schemePuBu),\n purple_red: last(schemePuRd),\n red_purple: last(schemeRdPu),\n yellow_green_blue: last(schemeYlGnBu),\n yellow_green: last(schemeYlGn),\n yellow_orange_brown: last(schemeYlOrBr),\n yellow_orange_red: last(schemeYlOrRd)\n};\nvar colorSchemeIds = ['nivo', 'category10', 'accent', 'dark2', 'paired', 'pastel1', 'pastel2', 'set1', 'set2', 'set3', 'brown_blueGreen', 'purpleRed_green', 'pink_yellowGreen', 'purple_orange', 'red_blue', 'red_grey', 'red_yellow_blue', 'red_yellow_green', 'spectral', 'blues', 'greens', 'greys', 'oranges', 'purples', 'reds', 'blue_green', 'blue_purple', 'green_blue', 'orange_red', 'purple_blue_green', 'purple_blue', 'purple_red', 'red_purple', 'yellow_green_blue', 'yellow_green', 'yellow_orange_brown', 'yellow_orange_red'];\nvar colorInterpolators = {\n brown_blueGreen: interpolateBrBG,\n purpleRed_green: interpolatePRGn,\n pink_yellowGreen: interpolatePiYG,\n purple_orange: interpolatePuOr,\n red_blue: interpolateRdBu,\n red_grey: interpolateRdGy,\n red_yellow_blue: interpolateRdYlBu,\n red_yellow_green: interpolateRdYlGn,\n spectral: interpolateSpectral,\n blues: interpolateBlues,\n greens: interpolateGreens,\n greys: interpolateGreys,\n oranges: interpolateOranges,\n purples: interpolatePurples,\n reds: interpolateReds,\n viridis: interpolateViridis,\n inferno: interpolateInferno,\n magma: interpolateMagma,\n plasma: interpolatePlasma,\n warm: interpolateWarm,\n cool: interpolateCool,\n cubehelixDefault: interpolateCubehelixDefault,\n blue_green: interpolateBuGn,\n blue_purple: interpolateBuPu,\n green_blue: interpolateGnBu,\n orange_red: interpolateOrRd,\n purple_blue_green: interpolatePuBuGn,\n purple_blue: interpolatePuBu,\n purple_red: interpolatePuRd,\n red_purple: interpolateRdPu,\n yellow_green_blue: interpolateYlGnBu,\n yellow_green: interpolateYlGn,\n yellow_orange_brown: interpolateYlOrBr,\n yellow_orange_red: interpolateYlOrRd,\n rainbow: interpolateRainbow,\n sinebow: interpolateSinebow\n};\nvar colorInterpolatorIds = ['brown_blueGreen', 'purpleRed_green', 'pink_yellowGreen', 'purple_orange', 'red_blue', 'red_grey', 'red_yellow_blue', 'red_yellow_green', 'spectral', 'blues', 'greens', 'greys', 'oranges', 'purples', 'reds', 'viridis', 'inferno', 'magma', 'plasma', 'warm', 'cool', 'cubehelixDefault', 'blue_green', 'blue_purple', 'green_blue', 'orange_red', 'purple_blue_green', 'purple_blue', 'purple_red', 'red_purple', 'yellow_green_blue', 'yellow_green', 'yellow_orange_brown', 'yellow_orange_red', 'rainbow', 'sinebow'];\n\nvar nivoCategoricalColors = function nivoCategoricalColors() {\n return scaleOrdinal(['#e8c1a0', '#f47560', '#f1e15b', '#e8a838', '#61cdbb', '#97e3d5']);\n};\n\nvar getColorScale = function getColorScale(colors, dataScale) {\n if (isString(colors)) {\n var scheme = colorSchemes[colors];\n\n if (scheme !== undefined) {\n var scale = scaleOrdinal(scheme);\n scale.type = 'ordinal';\n return scale;\n }\n\n if (dataScale !== undefined && colors.indexOf('seq:') === 0) {\n var interpolator = colorInterpolators[colors.slice(4)];\n\n if (interpolator !== undefined) {\n var _scale = scaleSequential(interpolator).domain(dataScale.domain());\n\n _scale.type = 'sequential';\n return _scale;\n }\n }\n }\n\n if (isArray(colors)) {\n var _scale2 = scaleOrdinal(colors);\n\n _scale2.type = 'ordinal';\n return _scale2;\n }\n\n return function () {\n return colors;\n };\n};\n\nvar quantizeColorScalePropType = PropTypes.oneOfType([PropTypes.oneOf(quantizeColorScalesKeys), PropTypes.func, PropTypes.arrayOf(PropTypes.string)]);\nvar curvePropMapping = {\n basis: curveBasis,\n basisClosed: curveBasisClosed,\n basisOpen: curveBasisOpen,\n bundle: curveBundle,\n cardinal: curveCardinal,\n cardinalClosed: curveCardinalClosed,\n cardinalOpen: curveCardinalOpen,\n catmullRom: curveCatmullRom,\n catmullRomClosed: curveCatmullRomClosed,\n catmullRomOpen: curveCatmullRomOpen,\n linear: curveLinear,\n linearClosed: curveLinearClosed,\n monotoneX: curveMonotoneX,\n monotoneY: curveMonotoneY,\n natural: curveNatural,\n step: curveStep,\n stepAfter: curveStepAfter,\n stepBefore: curveStepBefore\n};\nvar curvePropKeys = Object.keys(curvePropMapping);\nvar curvePropType = PropTypes.oneOf(curvePropKeys);\nvar closedCurvePropKeys = curvePropKeys.filter(function (c) {\n return c.endsWith('Closed');\n});\nvar closedCurvePropType = PropTypes.oneOf(closedCurvePropKeys);\nvar areaCurvePropKeys = without(curvePropKeys, 'bundle', 'basisClosed', 'basisOpen', 'cardinalClosed', 'cardinalOpen', 'catmullRomClosed', 'catmullRomOpen', 'linearClosed');\nvar areaCurvePropType = PropTypes.oneOf(areaCurvePropKeys);\nvar lineCurvePropKeys = without(curvePropKeys, 'bundle', 'basisClosed', 'basisOpen', 'cardinalClosed', 'cardinalOpen', 'catmullRomClosed', 'catmullRomOpen', 'linearClosed');\nvar lineCurvePropType = PropTypes.oneOf(lineCurvePropKeys);\n\nvar curveFromProp = function curveFromProp(id) {\n var curveInterpolator = curvePropMapping[id];\n\n if (!curveInterpolator) {\n throw new TypeError(\"'\".concat(id, \"', is not a valid curve interpolator identifier.\"));\n }\n\n return curvePropMapping[id];\n};\n\nvar defsPropTypes = {\n defs: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string.isRequired\n })).isRequired,\n fill: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string.isRequired,\n match: PropTypes.oneOfType([PropTypes.oneOf(['*']), PropTypes.object, PropTypes.func]).isRequired\n })).isRequired\n};\nvar stackOrderPropMapping = {\n ascending: stackOrderAscending,\n descending: stackOrderDescending,\n insideOut: stackOrderInsideOut,\n none: stackOrderNone,\n reverse: stackOrderReverse\n};\nvar stackOrderPropKeys = Object.keys(stackOrderPropMapping);\nvar stackOrderPropType = PropTypes.oneOf(stackOrderPropKeys);\n\nvar stackOrderFromProp = function stackOrderFromProp(prop) {\n return stackOrderPropMapping[prop];\n};\n\nvar stackOffsetPropMapping = {\n expand: stackOffsetExpand,\n diverging: stackOffsetDiverging,\n none: stackOffsetNone,\n silhouette: stackOffsetSilhouette,\n wiggle: stackOffsetWiggle\n};\nvar stackOffsetPropKeys = Object.keys(stackOffsetPropMapping);\nvar stackOffsetPropType = PropTypes.oneOf(stackOffsetPropKeys);\n\nvar stackOffsetFromProp = function stackOffsetFromProp(prop) {\n return stackOffsetPropMapping[prop];\n};\n\nvar treeMapTilePropMapping = {\n binary: treemapBinary,\n dice: treemapDice,\n slice: treemapSlice,\n sliceDice: treemapSliceDice,\n squarify: treemapSquarify,\n resquarify: treemapResquarify\n};\nvar treeMapTilePropKeys = Object.keys(treeMapTilePropMapping);\nvar treeMapTilePropType = PropTypes.oneOf(treeMapTilePropKeys);\n\nvar treeMapTileFromProp = function treeMapTileFromProp(prop) {\n return treeMapTilePropMapping[prop];\n};\n\nvar marginPropType = PropTypes.shape({\n top: PropTypes.number,\n right: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number\n}).isRequired;\nvar motionPropTypes = {\n animate: PropTypes.bool.isRequired,\n motionStiffness: PropTypes.number.isRequired,\n motionDamping: PropTypes.number.isRequired\n};\nvar blendModes = ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\nvar blendModePropType = PropTypes.oneOf(blendModes);\n\nvar useCurveInterpolation = function useCurveInterpolation(interpolation) {\n return useMemo(function () {\n return curveFromProp(interpolation);\n }, [interpolation]);\n};\n\nvar defaultAnimate = true;\nvar defaultMotionStiffness = 90;\nvar defaultMotionDamping = 15;\nvar defaultCategoricalColors = nivoCategoricalColors;\nvar defaultColorRange = scaleOrdinal(schemeSet3);\nvar defaultMargin = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\n\nfunction _objectSpread$1(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$1(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$1(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar useDimensions = function useDimensions(width, height) {\n var partialMargin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return useMemo(function () {\n var margin = _objectSpread$1({}, defaultMargin, partialMargin);\n\n return {\n margin: margin,\n innerWidth: width - margin.left - margin.right,\n innerHeight: height - margin.top - margin.bottom,\n outerWidth: width,\n outerHeight: height\n };\n }, [width, height, partialMargin.top, partialMargin.right, partialMargin.bottom, partialMargin.left]);\n};\n\nvar usePartialTheme = function usePartialTheme(partialTheme) {\n return useMemo(function () {\n return extendDefaultTheme(defaultTheme, partialTheme);\n }, [partialTheme]);\n};\n\nvar getValueFormatter = function getValueFormatter(format$1) {\n if (typeof format$1 === 'function') return format$1;\n\n if (typeof format$1 === 'string') {\n if (format$1.indexOf('time:') === 0) {\n return timeFormat(format$1.slice('5'));\n }\n\n return format(format$1);\n }\n\n return function (v) {\n return v;\n };\n};\n\nvar useValueFormatter = function useValueFormatter(format) {\n return useMemo(function () {\n return getValueFormatter(format);\n }, [format]);\n};\n\nvar themeContext = createContext();\nvar defaultPartialTheme = {};\n\nvar ThemeProvider = function ThemeProvider(_ref) {\n var _ref$theme = _ref.theme,\n partialTheme = _ref$theme === void 0 ? defaultPartialTheme : _ref$theme,\n children = _ref.children;\n var theme = usePartialTheme(partialTheme);\n return React.createElement(themeContext.Provider, {\n value: theme\n }, children);\n};\n\nvar useTheme = function useTheme() {\n return useContext(themeContext);\n};\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread$2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$2(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\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}\n\nfunction _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}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _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}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty$2(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar enhancedSpring = function enhancedSpring(value, config) {\n if (typeof value !== 'number') {\n return {\n value: value,\n config: config,\n interpolator: config && config.interpolator ? config.interpolator : interpolate\n };\n }\n\n return spring(value, config);\n};\n\nvar SmartMotion = function (_PureComponent) {\n _inherits(SmartMotion, _PureComponent);\n\n function SmartMotion() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, SmartMotion);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(SmartMotion)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty$2(_assertThisInitialized(_this), \"oldValues\", {});\n\n _defineProperty$2(_assertThisInitialized(_this), \"newInters\", {});\n\n _defineProperty$2(_assertThisInitialized(_this), \"currentStepValues\", {});\n\n _defineProperty$2(_assertThisInitialized(_this), \"stepValues\", {});\n\n _defineProperty$2(_assertThisInitialized(_this), \"stepInterpolators\", {});\n\n return _this;\n }\n\n _createClass(SmartMotion, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n style = _this$props.style,\n children = _this$props.children,\n rest = _objectWithoutProperties(_this$props, [\"style\", \"children\"]);\n\n var resolvedStyle = style(enhancedSpring);\n\n for (var key in resolvedStyle) {\n if (resolvedStyle[key] && resolvedStyle[key].interpolator) {\n this.currentStepValues[key] = this.currentStepValues[key] || 0;\n\n if (typeof this.newInters[key] === 'undefined' || resolvedStyle[key].value !== this.newInters[key].value) {\n this.newInters[key] = resolvedStyle[key];\n this.stepValues[key] = this.currentStepValues[key] + 1;\n this.stepInterpolators[key] = this.newInters[key].interpolator(this.oldValues[key], this.newInters[key].value);\n }\n\n resolvedStyle[key] = spring(this.stepValues[key], this.newInters[key].config);\n }\n }\n\n return React.createElement(Motion, _extends({}, rest, {\n style: resolvedStyle\n }), function (values) {\n var newValues = {};\n\n for (var _key2 in values) {\n if (_this2.stepValues[_key2]) {\n _this2.currentStepValues[_key2] = values[_key2];\n var percentage = _this2.currentStepValues[_key2] - _this2.stepValues[_key2] + 1;\n _this2.oldValues[_key2] = newValues[_key2] = _this2.stepInterpolators[_key2](percentage);\n }\n }\n\n return children(_objectSpread$2({}, values, newValues));\n });\n }\n }]);\n\n return SmartMotion;\n}(PureComponent);\n\n_defineProperty$2(SmartMotion, \"propTypes\", {\n children: PropTypes.func.isRequired,\n style: PropTypes.func.isRequired\n});\n\nvar motionConfigContext = createContext();\n\nvar MotionConfigProvider = function MotionConfigProvider(_ref) {\n var children = _ref.children,\n animate = _ref.animate,\n stiffness = _ref.stiffness,\n damping = _ref.damping;\n var value = useMemo(function () {\n return {\n animate: animate,\n springConfig: {\n stiffness: stiffness,\n damping: damping\n }\n };\n }, [animate, stiffness, damping]);\n return React.createElement(motionConfigContext.Provider, {\n value: value\n }, children);\n};\n\nMotionConfigProvider.defaultProps = {\n animate: true,\n stiffness: 90,\n damping: 15\n};\n\nvar useMotionConfig = function useMotionConfig() {\n return useContext(motionConfigContext);\n};\n\nfunction _objectSpread$3(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$3(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$3(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar containerStyle = {\n position: 'relative'\n};\nvar tooltipStyle = {\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 10\n};\n\nvar Container = function Container(_ref) {\n var children = _ref.children,\n theme = _ref.theme,\n _ref$isInteractive = _ref.isInteractive,\n isInteractive = _ref$isInteractive === void 0 ? true : _ref$isInteractive,\n animate = _ref.animate,\n motionStiffness = _ref.motionStiffness,\n motionDamping = _ref.motionDamping;\n var containerEl = useRef(null);\n\n var _useState = useState({\n isTooltipVisible: false,\n tooltipContent: null,\n position: {}\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var showTooltip = useCallback(function (content, event) {\n if (!containerEl) return;\n var bounds = containerEl.current.getBoundingClientRect();\n var clientX = event.clientX,\n clientY = event.clientY;\n var x = clientX - bounds.left;\n var y = clientY - bounds.top;\n var position = {};\n if (x < bounds.width / 2) position.left = x + 20;else position.right = bounds.width - x + 20;\n if (y < bounds.height / 2) position.top = y - 12;else position.bottom = bounds.height - y - 12;\n setState({\n isTooltipVisible: true,\n tooltipContent: content,\n position: position\n });\n }, [containerEl]);\n var hideTooltip = useCallback(function () {\n setState({\n isTooltipVisible: false,\n tooltipContent: null\n });\n });\n var isTooltipVisible = state.isTooltipVisible,\n tooltipContent = state.tooltipContent,\n position = state.position;\n var content;\n\n if (isInteractive === true) {\n content = React.createElement(\"div\", {\n style: containerStyle,\n ref: containerEl\n }, children({\n showTooltip: isInteractive ? showTooltip : noop,\n hideTooltip: isInteractive ? hideTooltip : noop\n }), isTooltipVisible && React.createElement(\"div\", {\n style: _objectSpread$3({}, tooltipStyle, position, theme.tooltip)\n }, tooltipContent));\n } else {\n content = children({\n showTooltip: isInteractive ? showTooltip : noop,\n hideTooltip: isInteractive ? hideTooltip : noop\n });\n }\n\n return React.createElement(themeContext.Provider, {\n value: theme\n }, React.createElement(MotionConfigProvider, {\n animate: animate,\n stiffness: motionStiffness,\n damping: motionDamping\n }, React.createElement(tooltipContext.Provider, {\n value: [showTooltip, hideTooltip]\n }, content)));\n};\n\nfunction _typeof$1(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof$1 = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof$1 = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof$1(obj);\n}\n\nfunction _classCallCheck$1(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties$1(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass$1(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$1(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$1(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn$1(self, call) {\n if (call && (_typeof$1(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized$1(self);\n}\n\nfunction _getPrototypeOf$1(o) {\n _getPrototypeOf$1 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf$1(o);\n}\n\nfunction _assertThisInitialized$1(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}\n\nfunction _inherits$1(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf$1(subClass, superClass);\n}\n\nfunction _setPrototypeOf$1(o, p) {\n _setPrototypeOf$1 = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf$1(o, p);\n}\n\nfunction _defineProperty$4(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar ResponsiveWrapper = function (_Component) {\n _inherits$1(ResponsiveWrapper, _Component);\n\n function ResponsiveWrapper() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck$1(this, ResponsiveWrapper);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn$1(this, (_getPrototypeOf2 = _getPrototypeOf$1(ResponsiveWrapper)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty$4(_assertThisInitialized$1(_this), \"state\", {\n dimensions: {\n width: -1,\n height: -1\n }\n });\n\n return _this;\n }\n\n _createClass$1(ResponsiveWrapper, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$state$dimension = this.state.dimensions,\n width = _this$state$dimension.width,\n height = _this$state$dimension.height;\n var shouldRender = width > 0 && height > 0;\n return React.createElement(Measure, {\n bounds: true,\n onResize: function onResize(contentRect) {\n _this2.setState({\n dimensions: contentRect.bounds\n });\n }\n }, function (_ref) {\n var measureRef = _ref.measureRef;\n return React.createElement(\"div\", {\n ref: measureRef,\n style: {\n width: '100%',\n height: '100%'\n }\n }, shouldRender && _this2.props.children({\n width: width,\n height: height\n }));\n });\n }\n }]);\n\n return ResponsiveWrapper;\n}(Component);\n\n_defineProperty$4(ResponsiveWrapper, \"propTypes\", {\n children: PropTypes.func.isRequired\n});\n\nfunction _objectSpread$4(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$5(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$5(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar LinearGradient = function LinearGradient(_ref) {\n var id = _ref.id,\n colors = _ref.colors;\n return React.createElement(\"linearGradient\", {\n id: id,\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 1\n }, colors.map(function (_ref2) {\n var offset = _ref2.offset,\n color = _ref2.color,\n opacity = _ref2.opacity;\n return React.createElement(\"stop\", {\n key: offset,\n offset: \"\".concat(offset, \"%\"),\n stopColor: color,\n stopOpacity: opacity !== undefined ? opacity : 1\n });\n }));\n};\n\nvar linearGradientDef = function linearGradientDef(id, colors) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _objectSpread$4({\n id: id,\n type: 'linearGradient',\n colors: colors\n }, options);\n};\n\nvar gradientTypes = {\n linearGradient: LinearGradient\n};\n\nfunction _objectSpread$5(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$6(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$6(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar PatternDots = memo(function (_ref) {\n var id = _ref.id,\n background = _ref.background,\n color = _ref.color,\n size = _ref.size,\n padding = _ref.padding,\n stagger = _ref.stagger;\n var fullSize = size + padding;\n var radius = size / 2;\n var halfPadding = padding / 2;\n\n if (stagger === true) {\n fullSize = size * 2 + padding * 2;\n }\n\n return React.createElement(\"pattern\", {\n id: id,\n width: fullSize,\n height: fullSize,\n patternUnits: \"userSpaceOnUse\"\n }, React.createElement(\"rect\", {\n width: fullSize,\n height: fullSize,\n fill: background\n }), React.createElement(\"circle\", {\n cx: halfPadding + radius,\n cy: halfPadding + radius,\n r: radius,\n fill: color\n }), stagger && React.createElement(\"circle\", {\n cx: padding * 1.5 + size + radius,\n cy: padding * 1.5 + size + radius,\n r: radius,\n fill: color\n }));\n});\nPatternDots.displayName = 'PatternDots';\nPatternDots.defaultProps = {\n color: '#000000',\n background: '#ffffff',\n size: 4,\n padding: 4,\n stagger: false\n};\n\nvar patternDotsDef = function patternDotsDef(id) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _objectSpread$5({\n id: id,\n type: 'patternDots'\n }, options);\n};\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nfunction _slicedToArray$1(arr, i) {\n return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _nonIterableRest$1();\n}\n\nfunction _nonIterableRest$1() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit$1(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles$1(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar TWO_PI = Math.PI * 2;\n\nvar degreesToRadians = function degreesToRadians(degrees) {\n return degrees * Math.PI / 180;\n};\n\nvar radiansToDegrees = function radiansToDegrees(radians) {\n return 180 * radians / Math.PI;\n};\n\nvar midAngle = function midAngle(arc) {\n return arc.startAngle + (arc.endAngle - arc.startAngle) / 2;\n};\n\nvar positionFromAngle = function positionFromAngle(angle, distance) {\n return {\n x: Math.cos(angle) * distance,\n y: Math.sin(angle) * distance\n };\n};\n\nvar absoluteAngleDegrees = function absoluteAngleDegrees(angle) {\n var absAngle = angle % 360;\n\n if (absAngle < 0) {\n absAngle += 360;\n }\n\n return absAngle;\n};\n\nvar absoluteAngleRadians = function absoluteAngleRadians(angle) {\n return angle - TWO_PI * Math.floor((angle + Math.PI) / TWO_PI);\n};\n\nvar computeArcBoundingBox = function computeArcBoundingBox(ox, oy, radius, startAngle, endAngle) {\n var includeCenter = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n var points = [];\n var p0 = positionFromAngle(degreesToRadians(startAngle), radius);\n points.push([p0.x, p0.y]);\n var p1 = positionFromAngle(degreesToRadians(endAngle), radius);\n points.push([p1.x, p1.y]);\n\n for (var angle = Math.round(Math.min(startAngle, endAngle)); angle <= Math.round(Math.max(startAngle, endAngle)); angle++) {\n if (angle % 90 === 0) {\n var p = positionFromAngle(degreesToRadians(angle), radius);\n points.push([p.x, p.y]);\n }\n }\n\n points = points.map(function (_ref) {\n var _ref2 = _slicedToArray$1(_ref, 2),\n x = _ref2[0],\n y = _ref2[1];\n\n return [ox + x, oy + y];\n });\n if (includeCenter === true) points.push([ox, oy]);\n var xs = points.map(function (_ref3) {\n var _ref4 = _slicedToArray$1(_ref3, 1),\n x = _ref4[0];\n\n return x;\n });\n var ys = points.map(function (_ref5) {\n var _ref6 = _slicedToArray$1(_ref5, 2),\n y = _ref6[1];\n\n return y;\n });\n var x0 = Math.min.apply(Math, _toConsumableArray(xs));\n var x1 = Math.max.apply(Math, _toConsumableArray(xs));\n var y0 = Math.min.apply(Math, _toConsumableArray(ys));\n var y1 = Math.max.apply(Math, _toConsumableArray(ys));\n return {\n points: points,\n x: x0,\n y: y0,\n width: x1 - x0,\n height: y1 - y0\n };\n};\n\nvar textPropsByEngine = {\n svg: {\n align: {\n left: 'start',\n center: 'middle',\n right: 'end'\n },\n baseline: {\n top: 'text-before-edge',\n center: 'central',\n bottom: 'alphabetic'\n }\n },\n canvas: {\n align: {\n left: 'left',\n center: 'center',\n right: 'right'\n },\n baseline: {\n top: 'top',\n center: 'middle',\n bottom: 'bottom'\n }\n }\n};\n\nvar getPolarLabelProps = function getPolarLabelProps(radius, angle, rotation) {\n var engine = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'svg';\n var textProps = textPropsByEngine[engine];\n\n var _positionFromAngle = positionFromAngle(angle - Math.PI / 2, radius),\n x = _positionFromAngle.x,\n y = _positionFromAngle.y;\n\n var rotate = radiansToDegrees(angle);\n var align = textProps.align.center;\n var baseline = textProps.baseline.bottom;\n\n if (rotation > 0) {\n align = textProps.align.right;\n baseline = textProps.baseline.center;\n } else if (rotation < 0) {\n align = textProps.align.left;\n baseline = textProps.baseline.center;\n }\n\n if (rotation !== 0 && rotate > 180) {\n rotate -= 180;\n align = align === textProps.align.right ? textProps.align.left : textProps.align.right;\n }\n\n rotate += rotation;\n return {\n x: x,\n y: y,\n rotate: rotate,\n align: align,\n baseline: baseline\n };\n};\n\nfunction _objectSpread$6(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$7(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$7(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar PatternLines = memo(function (_ref) {\n var id = _ref.id,\n _spacing = _ref.spacing,\n _rotation = _ref.rotation,\n background = _ref.background,\n color = _ref.color,\n lineWidth = _ref.lineWidth;\n var rotation = Math.round(_rotation) % 360;\n var spacing = Math.abs(_spacing);\n if (rotation > 180) rotation = rotation - 360;else if (rotation > 90) rotation = rotation - 180;else if (rotation < -180) rotation = rotation + 360;else if (rotation < -90) rotation = rotation + 180;\n var width = spacing;\n var height = spacing;\n var path;\n\n if (rotation === 0) {\n path = \"\\n M 0 0 L \".concat(width, \" 0\\n M 0 \").concat(height, \" L \").concat(width, \" \").concat(height, \"\\n \");\n } else if (rotation === 90) {\n path = \"\\n M 0 0 L 0 \".concat(height, \"\\n M \").concat(width, \" 0 L \").concat(width, \" \").concat(height, \"\\n \");\n } else {\n width = Math.abs(spacing / Math.sin(degreesToRadians(rotation)));\n height = spacing / Math.sin(degreesToRadians(90 - rotation));\n\n if (rotation > 0) {\n path = \"\\n M 0 \".concat(-height, \" L \").concat(width * 2, \" \").concat(height, \"\\n M \").concat(-width, \" \").concat(-height, \" L \").concat(width, \" \").concat(height, \"\\n M \").concat(-width, \" 0 L \").concat(width, \" \").concat(height * 2, \"\\n \");\n } else {\n path = \"\\n M \".concat(-width, \" \").concat(height, \" L \").concat(width, \" \").concat(-height, \"\\n M \").concat(-width, \" \").concat(height * 2, \" L \").concat(width * 2, \" \").concat(-height, \"\\n M 0 \").concat(height * 2, \" L \").concat(width * 2, \" 0\\n \");\n }\n }\n\n return React.createElement(\"pattern\", {\n id: id,\n width: width,\n height: height,\n patternUnits: \"userSpaceOnUse\"\n }, React.createElement(\"rect\", {\n width: width,\n height: height,\n fill: background,\n stroke: \"rgba(255, 0, 0, 0.1)\",\n strokeWidth: 0\n }), React.createElement(\"path\", {\n d: path,\n strokeWidth: lineWidth,\n stroke: color,\n strokeLinecap: \"square\"\n }));\n});\nPatternLines.displayName = 'PatternLines';\nPatternLines.defaultProps = {\n spacing: 5,\n rotation: 0,\n color: '#000000',\n background: '#ffffff',\n lineWidth: 2\n};\n\nvar patternLinesDef = function patternLinesDef(id) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _objectSpread$6({\n id: id,\n type: 'patternLines'\n }, options);\n};\n\nfunction _objectSpread$7(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$8(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$8(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar PatternSquares = memo(function (_ref) {\n var id = _ref.id,\n background = _ref.background,\n color = _ref.color,\n size = _ref.size,\n padding = _ref.padding,\n stagger = _ref.stagger;\n var fullSize = size + padding;\n var halfPadding = padding / 2;\n\n if (stagger === true) {\n fullSize = size * 2 + padding * 2;\n }\n\n return React.createElement(\"pattern\", {\n id: id,\n width: fullSize,\n height: fullSize,\n patternUnits: \"userSpaceOnUse\"\n }, React.createElement(\"rect\", {\n width: fullSize,\n height: fullSize,\n fill: background\n }), React.createElement(\"rect\", {\n x: halfPadding,\n y: halfPadding,\n width: size,\n height: size,\n fill: color\n }), stagger && React.createElement(\"rect\", {\n x: padding * 1.5 + size,\n y: padding * 1.5 + size,\n width: size,\n height: size,\n fill: color\n }));\n});\nPatternSquares.displayName = 'PatternSquares';\nPatternSquares.defaultProps = {\n color: '#000000',\n background: '#ffffff',\n size: 4,\n padding: 4,\n stagger: false\n};\n\nvar patternSquaresDef = function patternSquaresDef(id) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _objectSpread$7({\n id: id,\n type: 'patternSquares'\n }, options);\n};\n\nvar patternTypes = {\n patternDots: PatternDots,\n patternLines: PatternLines,\n patternSquares: PatternSquares\n};\n\nfunction _objectWithoutProperties$1(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose$1(source, excluded);\n\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}\n\nfunction _objectWithoutPropertiesLoose$1(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}\n\nfunction _objectSpread$8(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$9(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$9(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar defsMapping = _objectSpread$8({}, gradientTypes, patternTypes);\n\nvar Defs = function Defs(_ref) {\n var definitions = _ref.defs;\n if (!definitions || definitions.length < 1) return null;\n return React.createElement(\"defs\", null, definitions.map(function (_ref2) {\n var type = _ref2.type,\n def = _objectWithoutProperties$1(_ref2, [\"type\"]);\n\n if (defsMapping[type]) return React.createElement(defsMapping[type], _objectSpread$8({\n key: def.id\n }, def));\n return null;\n }));\n};\n\nvar Defs$1 = memo(Defs);\n\nvar SvgWrapper = function SvgWrapper(_ref) {\n var width = _ref.width,\n height = _ref.height,\n margin = _ref.margin,\n defs = _ref.defs,\n children = _ref.children;\n var theme = useTheme();\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\",\n width: width,\n height: height\n }, React.createElement(Defs$1, {\n defs: defs\n }), React.createElement(\"rect\", {\n width: width,\n height: height,\n fill: theme.background\n }), React.createElement(\"g\", {\n transform: \"translate(\".concat(margin.left, \",\").concat(margin.top, \")\")\n }, children));\n};\n\nvar DotsItemSymbol = function DotsItemSymbol(_ref) {\n var size = _ref.size,\n color = _ref.color,\n borderWidth = _ref.borderWidth,\n borderColor = _ref.borderColor;\n return React.createElement(\"circle\", {\n r: size / 2,\n fill: color,\n stroke: borderColor,\n strokeWidth: borderWidth,\n style: {\n pointerEvents: 'none'\n }\n });\n};\n\nvar DotsItemSymbol$1 = memo(DotsItemSymbol);\n\nvar DotsItem = function DotsItem(_ref) {\n var x = _ref.x,\n y = _ref.y,\n symbol = _ref.symbol,\n size = _ref.size,\n datum = _ref.datum,\n color = _ref.color,\n borderWidth = _ref.borderWidth,\n borderColor = _ref.borderColor,\n label = _ref.label,\n labelTextAnchor = _ref.labelTextAnchor,\n labelYOffset = _ref.labelYOffset,\n theme = _ref.theme;\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(x, \", \").concat(y, \")\"),\n style: {\n pointerEvents: 'none'\n }\n }, React.createElement(symbol, {\n size: size,\n color: color,\n datum: datum,\n borderWidth: borderWidth,\n borderColor: borderColor\n }), label && React.createElement(\"text\", {\n textAnchor: labelTextAnchor,\n y: labelYOffset,\n style: theme.dots.text\n }, label));\n};\n\nvar DotsItemDefaultProps = {\n symbol: DotsItemSymbol$1,\n labelTextAnchor: 'middle',\n labelYOffset: -12\n};\nDotsItem.defaultProps = DotsItemDefaultProps;\nvar DotsItem$1 = memo(DotsItem);\n\nvar computeLabel = function computeLabel(_ref) {\n var axis = _ref.axis,\n width = _ref.width,\n height = _ref.height,\n position = _ref.position,\n offsetX = _ref.offsetX,\n offsetY = _ref.offsetY,\n orientation = _ref.orientation;\n var x = 0;\n var y = 0;\n var rotation = orientation === 'vertical' ? -90 : 0;\n var textAnchor = 'start';\n\n if (axis === 'x') {\n switch (position) {\n case 'top-left':\n x = -offsetX;\n y = offsetY;\n textAnchor = 'end';\n break;\n\n case 'top':\n y = -offsetY;\n\n if (orientation === 'horizontal') {\n textAnchor = 'middle';\n } else {\n textAnchor = 'start';\n }\n\n break;\n\n case 'top-right':\n x = offsetX;\n y = offsetY;\n\n if (orientation === 'horizontal') {\n textAnchor = 'start';\n } else {\n textAnchor = 'end';\n }\n\n break;\n\n case 'right':\n x = offsetX;\n y = height / 2;\n\n if (orientation === 'horizontal') {\n textAnchor = 'start';\n } else {\n textAnchor = 'middle';\n }\n\n break;\n\n case 'bottom-right':\n x = offsetX;\n y = height - offsetY;\n textAnchor = 'start';\n break;\n\n case 'bottom':\n y = height + offsetY;\n\n if (orientation === 'horizontal') {\n textAnchor = 'middle';\n } else {\n textAnchor = 'end';\n }\n\n break;\n\n case 'bottom-left':\n y = height - offsetY;\n x = -offsetX;\n\n if (orientation === 'horizontal') {\n textAnchor = 'end';\n } else {\n textAnchor = 'start';\n }\n\n break;\n\n case 'left':\n x = -offsetX;\n y = height / 2;\n\n if (orientation === 'horizontal') {\n textAnchor = 'end';\n } else {\n textAnchor = 'middle';\n }\n\n break;\n }\n } else {\n switch (position) {\n case 'top-left':\n x = offsetX;\n y = -offsetY;\n textAnchor = 'start';\n break;\n\n case 'top':\n x = width / 2;\n y = -offsetY;\n\n if (orientation === 'horizontal') {\n textAnchor = 'middle';\n } else {\n textAnchor = 'start';\n }\n\n break;\n\n case 'top-right':\n x = width - offsetX;\n y = -offsetY;\n\n if (orientation === 'horizontal') {\n textAnchor = 'end';\n } else {\n textAnchor = 'start';\n }\n\n break;\n\n case 'right':\n x = width + offsetX;\n\n if (orientation === 'horizontal') {\n textAnchor = 'start';\n } else {\n textAnchor = 'middle';\n }\n\n break;\n\n case 'bottom-right':\n x = width - offsetX;\n y = offsetY;\n textAnchor = 'end';\n break;\n\n case 'bottom':\n x = width / 2;\n y = offsetY;\n\n if (orientation === 'horizontal') {\n textAnchor = 'middle';\n } else {\n textAnchor = 'end';\n }\n\n break;\n\n case 'bottom-left':\n x = offsetX;\n y = offsetY;\n\n if (orientation === 'horizontal') {\n textAnchor = 'start';\n } else {\n textAnchor = 'end';\n }\n\n break;\n\n case 'left':\n x = -offsetX;\n\n if (orientation === 'horizontal') {\n textAnchor = 'end';\n } else {\n textAnchor = 'middle';\n }\n\n break;\n }\n }\n\n return {\n x: x,\n y: y,\n rotation: rotation,\n textAnchor: textAnchor\n };\n};\n\nvar CartesianMarkersItem = function CartesianMarkersItem(_ref2) {\n var width = _ref2.width,\n height = _ref2.height,\n axis = _ref2.axis,\n scale = _ref2.scale,\n value = _ref2.value,\n lineStyle = _ref2.lineStyle,\n textStyle = _ref2.textStyle,\n legend = _ref2.legend,\n legendPosition = _ref2.legendPosition,\n legendOffsetX = _ref2.legendOffsetX,\n legendOffsetY = _ref2.legendOffsetY,\n legendOrientation = _ref2.legendOrientation;\n var theme = useTheme();\n var x = 0;\n var x2 = 0;\n var y = 0;\n var y2 = 0;\n\n if (axis === 'y') {\n y = scale(value);\n x2 = width;\n } else {\n x = scale(value);\n y2 = height;\n }\n\n var legendNode = null;\n\n if (legend) {\n var legendProps = computeLabel({\n axis: axis,\n width: width,\n height: height,\n position: legendPosition,\n offsetX: legendOffsetX,\n offsetY: legendOffsetY,\n orientation: legendOrientation\n });\n legendNode = React.createElement(\"text\", {\n transform: \"translate(\".concat(legendProps.x, \", \").concat(legendProps.y, \") rotate(\").concat(legendProps.rotation, \")\"),\n textAnchor: legendProps.textAnchor,\n dominantBaseline: \"central\",\n style: textStyle\n }, legend);\n }\n\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(x, \", \").concat(y, \")\")\n }, React.createElement(\"line\", {\n x1: 0,\n x2: x2,\n y1: 0,\n y2: y2,\n stroke: theme.markers.lineColor,\n strokeWidth: theme.markers.lineStrokeWidth,\n style: lineStyle\n }), legendNode);\n};\n\nCartesianMarkersItem.defaultProps = {\n legendPosition: 'top-right',\n legendOffsetX: 14,\n legendOffsetY: 14,\n legendOrientation: 'horizontal'\n};\nvar CartesianMarkersItem$1 = memo(CartesianMarkersItem);\n\nfunction _extends$1() {\n _extends$1 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$1.apply(this, arguments);\n}\n\nvar CartesianMarkers = function CartesianMarkers(_ref) {\n var markers = _ref.markers,\n width = _ref.width,\n height = _ref.height,\n xScale = _ref.xScale,\n yScale = _ref.yScale;\n if (!markers || markers.length === 0) return null;\n return markers.map(function (marker, i) {\n return React.createElement(CartesianMarkersItem$1, _extends$1({\n key: i\n }, marker, {\n width: width,\n height: height,\n scale: marker.axis === 'y' ? yScale : xScale\n }));\n });\n};\n\nvar CartesianMarkers$1 = memo(CartesianMarkers);\n\nfunction _defineProperty$a(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar withCurve = function withCurve() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$srcKey = _ref.srcKey,\n srcKey = _ref$srcKey === void 0 ? 'curve' : _ref$srcKey,\n _ref$destKey = _ref.destKey,\n destKey = _ref$destKey === void 0 ? 'curveInterpolator' : _ref$destKey;\n\n return withProps(function (props) {\n return _defineProperty$a({}, destKey, curveFromProp(props[srcKey]));\n });\n};\n\nvar withDimensions = function withDimensions() {\n return compose(defaultProps({\n margin: defaultMargin\n }), setPropTypes({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n margin: marginPropType\n }), withPropsOnChange(function (props, nextProps) {\n return props.width !== nextProps.width || props.height !== nextProps.height || !isEqual(props.margin, nextProps.margin);\n }, function (props) {\n var margin = Object.assign({}, defaultMargin, props.margin);\n return {\n margin: margin,\n width: props.width - margin.left - margin.right,\n height: props.height - margin.top - margin.bottom,\n outerWidth: props.width,\n outerHeight: props.height\n };\n }));\n};\n\nvar getLabelGenerator = function getLabelGenerator(_label, labelFormat) {\n var getRawLabel = isFunction(_label) ? _label : function (d) {\n return get(d, _label);\n };\n var formatter;\n\n if (labelFormat) {\n formatter = isFunction(labelFormat) ? labelFormat : format(labelFormat);\n }\n\n if (formatter) return function (d) {\n return formatter(getRawLabel(d));\n };\n return getRawLabel;\n};\n\nvar getAccessorFor = function getAccessorFor(directive) {\n return isFunction(directive) ? directive : function (d) {\n return d[directive];\n };\n};\n\nvar getAccessorOrValue = function getAccessorOrValue(value) {\n return isFunction(value) ? value : function () {\n return value;\n };\n};\n\nfunction _defineProperty$b(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar withHierarchy = function withHierarchy() {\n var _setPropTypes;\n\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$srcKey = _ref.srcKey,\n srcKey = _ref$srcKey === void 0 ? 'root' : _ref$srcKey,\n _ref$destKey = _ref.destKey,\n destKey = _ref$destKey === void 0 ? 'root' : _ref$destKey,\n _ref$valueKey = _ref.valueKey,\n valueKey = _ref$valueKey === void 0 ? 'value' : _ref$valueKey,\n _ref$valueDefault = _ref.valueDefault,\n valueDefault = _ref$valueDefault === void 0 ? 'value' : _ref$valueDefault;\n\n return compose(defaultProps(_defineProperty$b({}, valueKey, valueDefault)), setPropTypes((_setPropTypes = {}, _defineProperty$b(_setPropTypes, srcKey, PropTypes.object.isRequired), _defineProperty$b(_setPropTypes, valueKey, PropTypes.oneOfType([PropTypes.string, PropTypes.func]).isRequired), _setPropTypes)), withPropsOnChange([srcKey, valueKey], function (props) {\n return _defineProperty$b({}, destKey, hierarchy(props[srcKey]).sum(getAccessorFor(props[valueKey])));\n }));\n};\n\nvar withMotion = function withMotion() {\n return compose(setPropTypes(motionPropTypes), defaultProps({\n animate: defaultAnimate,\n motionDamping: defaultMotionDamping,\n motionStiffness: defaultMotionStiffness\n }), withPropsOnChange(['motionDamping', 'motionStiffness'], function (_ref) {\n var motionDamping = _ref.motionDamping,\n motionStiffness = _ref.motionStiffness;\n return {\n boundSpring: partialRight(spring, {\n damping: motionDamping,\n stiffness: motionStiffness\n })\n };\n }));\n};\n\nfunction _defineProperty$c(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar withTheme = function withTheme() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$srcKey = _ref.srcKey,\n srcKey = _ref$srcKey === void 0 ? 'theme' : _ref$srcKey,\n _ref$destKey = _ref.destKey,\n destKey = _ref$destKey === void 0 ? 'theme' : _ref$destKey;\n\n return compose(setPropTypes(_defineProperty$c({}, srcKey, PropTypes.object)), withPropsOnChange([srcKey], function (props) {\n return _defineProperty$c({}, destKey, extendDefaultTheme(defaultTheme, props[srcKey]));\n }));\n};\n\nfunction _typeof$2(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof$2 = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof$2 = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof$2(obj);\n}\n\nfunction _objectWithoutProperties$2(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose$2(source, excluded);\n\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}\n\nfunction _objectWithoutPropertiesLoose$2(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}\n\nfunction _classCallCheck$2(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties$2(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass$2(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$2(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$2(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn$2(self, call) {\n if (call && (_typeof$2(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized$2(self);\n}\n\nfunction _assertThisInitialized$2(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}\n\nfunction _getPrototypeOf$2(o) {\n _getPrototypeOf$2 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf$2(o);\n}\n\nfunction _inherits$2(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf$2(subClass, superClass);\n}\n\nfunction _setPrototypeOf$2(o, p) {\n _setPrototypeOf$2 = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf$2(o, p);\n}\n\nvar containerStyle$1 = {\n position: 'relative'\n};\n\nvar Container$1 = function Container(_ref) {\n var theme = _ref.theme,\n _ref$renderWrapper = _ref.renderWrapper,\n renderWrapper = _ref$renderWrapper === void 0 ? true : _ref$renderWrapper,\n children = _ref.children,\n animate = _ref.animate,\n motionStiffness = _ref.motionStiffness,\n motionDamping = _ref.motionDamping;\n var container = useRef(null);\n\n var _useTooltipHandlers = useTooltipHandlers(container),\n showTooltipAt = _useTooltipHandlers.showTooltipAt,\n showTooltipFromEvent = _useTooltipHandlers.showTooltipFromEvent,\n hideTooltip = _useTooltipHandlers.hideTooltip,\n isTooltipVisible = _useTooltipHandlers.isTooltipVisible,\n tooltipContent = _useTooltipHandlers.tooltipContent,\n tooltipPosition = _useTooltipHandlers.tooltipPosition,\n tooltipAnchor = _useTooltipHandlers.tooltipAnchor;\n\n return React.createElement(ThemeProvider, {\n theme: theme\n }, React.createElement(MotionConfigProvider, {\n animate: animate,\n stiffness: motionStiffness,\n damping: motionDamping\n }, React.createElement(tooltipContext.Provider, {\n value: {\n showTooltipAt: showTooltipAt,\n showTooltipFromEvent: showTooltipFromEvent,\n hideTooltip: hideTooltip\n }\n }, renderWrapper === true && React.createElement(\"div\", {\n style: containerStyle$1,\n ref: container\n }, children, isTooltipVisible && React.createElement(TooltipWrapper, {\n position: tooltipPosition,\n anchor: tooltipAnchor\n }, tooltipContent)), renderWrapper !== true && children)));\n};\n\nvar withContainer = function withContainer(WrappedComponent) {\n return function (_Component) {\n _inherits$2(_class, _Component);\n\n function _class() {\n _classCallCheck$2(this, _class);\n\n return _possibleConstructorReturn$2(this, _getPrototypeOf$2(_class).apply(this, arguments));\n }\n\n _createClass$2(_class, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n theme = _this$props.theme,\n renderWrapper = _this$props.renderWrapper,\n childProps = _objectWithoutProperties$2(_this$props, [\"theme\", \"renderWrapper\"]);\n\n return React.createElement(Container$1, {\n theme: theme,\n renderWrapper: renderWrapper,\n animate: childProps.animate,\n motionStiffness: childProps.motionStiffness,\n motionDamping: childProps.motionDamping\n }, React.createElement(WrappedComponent, childProps));\n }\n }]);\n\n return _class;\n }(Component);\n};\n\nvar boxAlignments = ['center', 'top-left', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left'];\n\nvar alignBox = function alignBox(box, container, alignment) {\n var deltaX = container.width - box.width;\n var deltaY = container.height - box.height;\n var x = 0;\n var y = 0;\n\n if (alignment === 'center') {\n x = deltaX / 2;\n y = deltaY / 2;\n }\n\n if (alignment === 'top') {\n x = deltaX / 2;\n }\n\n if (alignment === 'top-right') {\n x = deltaX;\n }\n\n if (alignment === 'right') {\n x = deltaX;\n y = deltaY / 2;\n }\n\n if (alignment === 'bottom-right') {\n x = deltaX;\n y = deltaY;\n }\n\n if (alignment === 'bottom') {\n x = deltaX / 2;\n y = deltaY;\n }\n\n if (alignment === 'bottom-left') {\n y = deltaY;\n }\n\n if (alignment === 'left') {\n y = deltaY / 2;\n }\n\n return [x, y];\n};\n\nvar getDistance = function getDistance(x1, y1, x2, y2) {\n var deltaX = x2 - x1;\n var deltaY = y2 - y1;\n deltaX *= deltaX;\n deltaY *= deltaY;\n return Math.sqrt(deltaX + deltaY);\n};\n\nvar getAngle = function getAngle(x1, y1, x2, y2) {\n var angle = Math.atan2(y2 - y1, x2 - x1) - Math.PI / 2;\n return angle > 0 ? angle : Math.PI * 2 + angle;\n};\n\nvar isCursorInRect = function isCursorInRect(x, y, width, height, cursorX, cursorY) {\n return x <= cursorX && cursorX <= x + width && y <= cursorY && cursorY <= y + height;\n};\n\nvar isCursorInRing = function isCursorInRing(centerX, centerY, radius, innerRadius, cursorX, cursorY) {\n var distance = getDistance(cursorX, cursorY, centerX, centerY);\n return distance < radius && distance > innerRadius;\n};\n\nvar getHoveredArc = function getHoveredArc(centerX, centerY, radius, innerRadius, arcs, cursorX, cursorY) {\n if (!isCursorInRing(centerX, centerY, radius, innerRadius, cursorX, cursorY)) return null;\n var cursorAngle = getAngle(cursorX, cursorY, centerX, centerY);\n return arcs.find(function (_ref) {\n var startAngle = _ref.startAngle,\n endAngle = _ref.endAngle;\n return cursorAngle >= startAngle && cursorAngle < endAngle;\n });\n};\n\nvar getRelativeCursor = function getRelativeCursor(el, event) {\n var clientX = event.clientX,\n clientY = event.clientY;\n var bounds = el.getBoundingClientRect();\n return [clientX - bounds.left, clientY - bounds.top];\n};\n\nfunction _objectSpread$9(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(Object(source));\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty$d(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty$d(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _toConsumableArray$1(arr) {\n return _arrayWithoutHoles$1(arr) || _iterableToArray$1(arr) || _nonIterableSpread$1();\n}\n\nfunction _nonIterableSpread$1() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _iterableToArray$1(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles$1(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nvar gradientKeys = Object.keys(gradientTypes);\nvar patternKeys = Object.keys(patternTypes);\n\nvar isMatchingDef = function isMatchingDef(predicate, node, dataKey) {\n if (predicate === '*') {\n return true;\n } else if (isFunction(predicate)) {\n return predicate(node);\n } else if (isPlainObject(predicate)) {\n var data = dataKey ? get(node, dataKey) : node;\n return isEqual(pick(data, Object.keys(predicate)), predicate);\n }\n\n return false;\n};\n\nvar bindDefs = function bindDefs(defs, nodes, rules) {\n var _ref = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n dataKey = _ref.dataKey,\n _ref$colorKey = _ref.colorKey,\n colorKey = _ref$colorKey === void 0 ? 'color' : _ref$colorKey,\n _ref$targetKey = _ref.targetKey,\n targetKey = _ref$targetKey === void 0 ? 'fill' : _ref$targetKey;\n\n var boundDefs = [];\n var generatedIds = {};\n\n if (defs.length && nodes.length) {\n boundDefs = _toConsumableArray$1(defs);\n nodes.forEach(function (node) {\n var _loop = function _loop(i) {\n var _rules$i = rules[i],\n id = _rules$i.id,\n match = _rules$i.match;\n\n if (isMatchingDef(match, node, dataKey)) {\n var def = defs.find(function (_ref2) {\n var defId = _ref2.id;\n return defId === id;\n });\n\n if (def) {\n if (patternKeys.includes(def.type)) {\n if (def.background === 'inherit' || def.color === 'inherit') {\n var nodeColor = get(node, colorKey);\n var background = def.background;\n var color = def.color;\n var inheritedId = id;\n\n if (def.background === 'inherit') {\n inheritedId = \"\".concat(inheritedId, \".bg.\").concat(nodeColor);\n background = nodeColor;\n }\n\n if (def.color === 'inherit') {\n inheritedId = \"\".concat(inheritedId, \".fg.\").concat(nodeColor);\n color = nodeColor;\n }\n\n set(node, targetKey, \"url(#\".concat(inheritedId, \")\"));\n\n if (!generatedIds[inheritedId]) {\n boundDefs.push(_objectSpread$9({}, def, {\n id: inheritedId,\n background: background,\n color: color\n }));\n generatedIds[inheritedId] = 1;\n }\n } else {\n set(node, targetKey, \"url(#\".concat(id, \")\"));\n }\n } else if (gradientKeys.includes(def.type)) {\n var allColors = def.colors.map(function (_ref3) {\n var color = _ref3.color;\n return color;\n });\n\n if (allColors.includes('inherit')) {\n var _nodeColor = get(node, colorKey);\n\n var _inheritedId = id;\n\n var inheritedDef = _objectSpread$9({}, def, {\n colors: def.colors.map(function (colorStop, i) {\n if (colorStop.color !== 'inherit') return colorStop;\n _inheritedId = \"\".concat(_inheritedId, \".\").concat(i, \".\").concat(_nodeColor);\n return _objectSpread$9({}, colorStop, {\n color: colorStop.color === 'inherit' ? _nodeColor : colorStop.color\n });\n })\n });\n\n inheritedDef.id = _inheritedId;\n set(node, targetKey, \"url(#\".concat(_inheritedId, \")\"));\n\n if (!generatedIds[_inheritedId]) {\n boundDefs.push(inheritedDef);\n generatedIds[_inheritedId] = 1;\n }\n } else {\n set(node, targetKey, \"url(#\".concat(id, \")\"));\n }\n }\n }\n\n return \"break\";\n }\n };\n\n for (var i = 0; i < rules.length; i++) {\n var _ret = _loop(i);\n\n if (_ret === \"break\") break;\n }\n });\n }\n\n return boundDefs;\n};\n\nexport { CartesianMarkers$1 as CartesianMarkers, CartesianMarkersItem$1 as CartesianMarkersItem, Container, Defs$1 as Defs, DotsItem$1 as DotsItem, DotsItemDefaultProps, LinearGradient, MotionConfigProvider, PatternDots, PatternLines, PatternSquares, ResponsiveWrapper, SmartMotion, SvgWrapper, TWO_PI, ThemeProvider, absoluteAngleDegrees, absoluteAngleRadians, alignBox, annotationsPropType, areaCurvePropKeys, areaCurvePropType, axisThemePropType, bindDefs, blendModePropType, blendModes, boxAlignments, closedCurvePropKeys, closedCurvePropType, colorInterpolatorIds, colorInterpolators, colorSchemeIds, computeArcBoundingBox, crosshairPropType, curveFromProp, curvePropKeys, curvePropMapping, curvePropType, defaultAnimate, defaultCategoricalColors, defaultColorRange, defaultMargin, defaultMotionDamping, defaultMotionStiffness, defaultTheme, defsPropTypes, degreesToRadians, dotsThemePropType, extendDefaultTheme, getAccessorFor, getAccessorOrValue, getAngle, getColorScale, getDistance, getHoveredArc, getLabelGenerator, getPolarLabelProps, getRelativeCursor, getValueFormatter, gradientTypes, gridThemePropType, guessQuantizeColorScale, isCursorInRect, isCursorInRing, isMatchingDef, labelsThemePropType, legendsThemePropType, lineCurvePropKeys, lineCurvePropType, linearGradientDef, marginPropType, markersThemePropType, midAngle, motionConfigContext, motionPropTypes, nivoCategoricalColors, noop, patternDotsDef, patternLinesDef, patternSquaresDef, patternTypes, positionFromAngle, quantizeColorScalePropType, quantizeColorScales, quantizeColorScalesKeys, radiansToDegrees, stackOffsetFromProp, stackOffsetPropKeys, stackOffsetPropMapping, stackOffsetPropType, stackOrderFromProp, stackOrderPropKeys, stackOrderPropMapping, stackOrderPropType, textPropsByEngine, themeContext, themePropType, treeMapTileFromProp, treeMapTilePropKeys, treeMapTilePropMapping, treeMapTilePropType, useCurveInterpolation, useDimensions, useMotionConfig, usePartialTheme, useTheme, useValueFormatter, withContainer, withCurve, withDimensions, withHierarchy, withMotion, withTheme };","import ascending from \"./ascending.js\";\nexport default function (series) {\n return ascending(series).reverse();\n}","import none from \"./none.js\";\nexport default function (series) {\n return none(series).reverse();\n}","import none from \"./none.js\";\nexport default function (series, order) {\n if (!((n = series.length) > 0)) return;\n\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) {\n y += series[i][j][1] || 0;\n }\n\n if (y) for (i = 0; i < n; ++i) {\n series[i][j][1] /= y;\n }\n }\n\n none(series, order);\n}","import none from \"./none.js\";\nexport default function (series, order) {\n if (!((n = series.length) > 0)) return;\n\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) {\n y += series[i][j][1] || 0;\n }\n\n s0[j][1] += s0[j][0] = -y / 2;\n }\n\n none(series, order);\n}","import none from \"./none.js\";\nexport default function (series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n\n s1 += sij0, s2 += s3 * sij0;\n }\n\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}","export default function (parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n i,\n n = nodes.length,\n sum,\n sums = new Array(n + 1);\n\n for (sums[0] = sum = i = 0; i < n; ++i) {\n sums[i + 1] = sum += nodes[i].value;\n }\n\n partition(0, n, parent.value, x0, y0, x1, y1);\n\n function partition(i, j, value, x0, y0, x1, y1) {\n if (i >= j - 1) {\n var node = nodes[i];\n node.x0 = x0, node.y0 = y0;\n node.x1 = x1, node.y1 = y1;\n return;\n }\n\n var valueOffset = sums[i],\n valueTarget = value / 2 + valueOffset,\n k = i + 1,\n hi = j - 1;\n\n while (k < hi) {\n var mid = k + hi >>> 1;\n if (sums[mid] < valueTarget) k = mid + 1;else hi = mid;\n }\n\n if (valueTarget - sums[k - 1] < sums[k] - valueTarget && i + 1 < k) --k;\n var valueLeft = sums[k] - valueOffset,\n valueRight = value - valueLeft;\n\n if (x1 - x0 > y1 - y0) {\n var xk = (x0 * valueRight + x1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, xk, y1);\n partition(k, j, valueRight, xk, y0, x1, y1);\n } else {\n var yk = (y0 * valueRight + y1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, x1, yk);\n partition(k, j, valueRight, x0, yk, x1, y1);\n }\n }\n}","import dice from \"./dice.js\";\nimport slice from \"./slice.js\";\nexport default function (parent, x0, y0, x1, y1) {\n (parent.depth & 1 ? slice : dice)(parent, x0, y0, x1, y1);\n}","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","import { cubehelix as colorCubehelix } from \"d3-color\";\nimport color, { hue } from \"./color.js\";\n\nfunction cubehelix(hue) {\n return function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function (t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n return cubehelix;\n }(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\n\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n\n return result;\n}\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n\n\nfunction overArg(func, transform) {\n return function (arg) {\n return func(transform(arg));\n };\n}\n/** Used for built-in method references. */\n\n\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n/** Used to resolve the decompiled source of functions. */\n\nvar funcToString = funcProto.toString;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/** Used to infer the `Object` constructor. */\n\nvar objectCtorString = funcToString.call(Object);\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar objectToString = objectProto.toString;\n/** Built-in value references. */\n\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n\n\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || objectToString.call(value) != objectTag || isHostObject(value)) {\n return false;\n }\n\n var proto = getPrototype(value);\n\n if (proto === null) {\n return true;\n }\n\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n"],"sourceRoot":""}