{"version":3,"file":"npm-nivo-d834003ab18afa986909.js","mappings":"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","sources":["webpack:///../../../../axes/node_modules/d3-time/src/interval.js","webpack:///../../../../axes/node_modules/d3-time/src/millisecond.js","webpack:///../../../../axes/node_modules/d3-time/src/duration.js","webpack:///../../../../axes/node_modules/d3-time/src/second.js","webpack:///../../../../axes/node_modules/d3-time/src/minute.js","webpack:///../../../../axes/node_modules/d3-time/src/utcMinute.js","webpack:///../../../../axes/node_modules/d3-time/src/hour.js","webpack:///../../../../axes/node_modules/d3-time/src/utcHour.js","webpack:///../../../../axes/node_modules/d3-time/src/day.js","webpack:///../../../../axes/node_modules/d3-time/src/utcDay.js","webpack:///../../../../axes/node_modules/d3-time/src/week.js","webpack:///../../../../axes/node_modules/d3-time/src/utcWeek.js","webpack:///../../../../axes/node_modules/d3-time/src/month.js","webpack:///../../../../axes/node_modules/d3-time/src/utcMonth.js","webpack:///../../../../axes/node_modules/d3-time/src/year.js","webpack:///../../../../axes/node_modules/d3-time/src/utcYear.js","webpack:///../../../../axes/dist/nivo-axes.esm.js","webpack:///../../../../annotations/dist/nivo-annotations.esm.js","webpack:///../../../../bar/dist/nivo-bar.esm.js","webpack:///../../../../colors/dist/nivo-colors.esm.js","webpack:///../../../../core/dist/nivo-core.esm.js","webpack:///../../../../legends/dist/nivo-legends.esm.js","webpack:///../../../../scales/dist/nivo-scales.esm.js","webpack:///../../../../voronoi/dist/nivo-voronoi.esm.js","webpack:///../../../../line/dist/nivo-line.esm.js","webpack:///../../../../tooltip/dist/nivo-tooltip.esm.js"],"sourcesContent":["var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import 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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar centerScale = function centerScale(scale) {\n var bandwidth = scale.bandwidth();\n if (bandwidth === 0) return scale;\n var offset = bandwidth / 2;\n if (scale.round()) {\n offset = Math.round(offset);\n }\n return function (d) {\n return scale(d) + offset;\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');\nvar getScaleTicks = function getScaleTicks(scale, spec) {\n if (Array.isArray(spec)) {\n return spec;\n }\n if (scale.ticks) {\n if (spec === undefined) {\n return scale.ticks();\n }\n if (isNumber(spec)) {\n return scale.ticks(spec);\n }\n if (typeof spec === 'string') {\n var matches = spec.match(timeIntervalRegexp);\n if (matches) {\n var timeType = timeByType[matches[2]][scale.useUTC ? 1 : 0];\n if (matches[1] === undefined) {\n return scale.ticks(timeType);\n }\n return scale.ticks(timeType.every(Number(matches[1])));\n }\n throw new Error(\"Invalid tickValues: \".concat(spec));\n }\n }\n return scale.domain();\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 if (axis === 'x') {\n translate = function translate(d) {\n return {\n x: position(d),\n y: 0\n };\n };\n line.lineY = tickSize * (ticksPosition === 'after' ? 1 : -1);\n text.textY = (tickSize + tickPadding) * (ticksPosition === 'after' ? 1 : -1);\n if (ticksPosition === 'after') {\n textBaseline = textProps.baseline.top;\n } else {\n textBaseline = textProps.baseline.bottom;\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 line.lineX = tickSize * (ticksPosition === 'after' ? 1 : -1);\n text.textX = (tickSize + tickPadding) * (ticksPosition === 'after' ? 1 : -1);\n if (ticksPosition === 'after') {\n textAlign = textProps.align.left;\n } else {\n textAlign = textProps.align.right;\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};\nvar getFormatter = function getFormatter(format$1, scale) {\n if (!format$1 || typeof format$1 === 'function') return format$1;\n if (scale.type === 'time') {\n var f = timeFormat(format$1);\n return function (d) {\n return f(new Date(d));\n };\n }\n return format(format$1);\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 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 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() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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 if (format !== undefined) {\n value = format(value);\n }\n var gStyle = {\n opacity: opacity\n };\n if (_onClick) {\n gStyle['cursor'] = 'pointer';\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};\nAxisTick.propTypes = {\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]).isRequired,\n format: PropTypes.func,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n lineX: PropTypes.number.isRequired,\n lineY: PropTypes.number.isRequired,\n textX: PropTypes.number.isRequired,\n textY: PropTypes.number.isRequired,\n textBaseline: PropTypes.string.isRequired,\n textAnchor: PropTypes.string.isRequired,\n opacity: PropTypes.number.isRequired,\n rotate: PropTypes.number.isRequired,\n onClick: PropTypes.func\n};\nAxisTick.defaultProps = {\n opacity: 1,\n rotate: 0\n};\nvar AxisTick$1 = memo(AxisTick);\n\nfunction _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } return target; }\nfunction _defineProperty$1(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar willEnter = function willEnter() {\n return {\n rotate: 0,\n opacity: 0,\n x: 0,\n y: 0\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};\nvar defaultTickRenderer = function defaultTickRenderer(props) {\n return React.createElement(AxisTick$1, props);\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 var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n var formatValue = useMemo(function () {\n return getFormatter(format, scale);\n }, [format, scale]);\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 var legendNode = null;\n if (legend !== undefined) {\n var legendX = 0;\n var legendY = 0;\n var legendRotation = 0;\n var textAnchor;\n if (axis === 'y') {\n legendRotation = -90;\n legendX = legendOffset;\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 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 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 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 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};\nAxis.propTypes = {\n axis: PropTypes.oneOf(['x', 'y']).isRequired,\n scale: PropTypes.func.isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n length: PropTypes.number.isRequired,\n ticksPosition: PropTypes.oneOf(['before', 'after']).isRequired,\n tickValues: axisPropTypes.tickValues,\n tickSize: PropTypes.number.isRequired,\n tickPadding: PropTypes.number.isRequired,\n tickRotation: PropTypes.number.isRequired,\n format: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n renderTick: PropTypes.func.isRequired,\n legend: PropTypes.node,\n legendPosition: PropTypes.oneOf(['start', 'middle', 'end']).isRequired,\n legendOffset: PropTypes.number.isRequired,\n onClick: PropTypes.func\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() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }\nvar positions = ['top', 'right', 'bottom', 'left'];\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};\nAxes.propTypes = {\n xScale: PropTypes.func,\n yScale: PropTypes.func,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n top: axisPropType,\n right: axisPropType,\n bottom: axisPropType,\n left: axisPropType\n};\nvar Axes$1 = memo(Axes);\n\nvar GridLine = function GridLine(props) {\n return React.createElement(\"line\", props);\n};\nGridLine.propTypes = {\n x1: PropTypes.number.isRequired,\n x2: PropTypes.number.isRequired,\n y1: PropTypes.number.isRequired,\n y2: PropTypes.number.isRequired\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() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }\nvar GridLines = function GridLines(_ref) {\n var type = _ref.type,\n lines = _ref.lines;\n var theme = useTheme();\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\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 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 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};\nGridLines.propTypes = {\n type: PropTypes.oneOf(['x', 'y']).isRequired,\n lines: PropTypes.arrayOf(PropTypes.shape({\n key: PropTypes.string.isRequired,\n x1: PropTypes.number,\n x2: PropTypes.number,\n y1: PropTypes.number,\n y2: PropTypes.number\n })).isRequired\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};\nGrid.propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n xScale: PropTypes.func,\n yScale: PropTypes.func,\n xValues: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]))]),\n yValues: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]))])\n};\nvar Grid$1 = memo(Grid);\n\nvar degreesToRadians = function degreesToRadians(degrees) {\n return degrees * Math.PI / 180;\n};\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } return target; }\nfunction _defineProperty$2(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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 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 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 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 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 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 if (legend !== undefined) {\n var legendX = 0;\n var legendY = 0;\n var legendRotation = 0;\n var _textAlign;\n if (axis === 'y') {\n legendRotation = -90;\n legendX = legendOffset;\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 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 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 ctx.restore();\n};\nvar positions$1 = ['top', 'right', 'bottom', 'left'];\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};\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 };\n","import 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';\n\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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar defaultPositionAccessor = function defaultPositionAccessor(item) {\n return {\n x: item.x,\n y: item.y\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};\nvar getLinkAngle = function getLinkAngle(sourceX, sourceY, targetX, targetY) {\n var angle = Math.atan2(targetY - sourceY, targetX - sourceX);\n return absoluteAngleDegrees(radiansToDegrees(angle));\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 if (isPlainObject(noteX)) {\n if (noteX.abs !== undefined) {\n computedNoteX = noteX.abs;\n }\n } else {\n computedNoteX = x + noteX;\n }\n if (isPlainObject(noteY)) {\n if (noteY.abs !== undefined) {\n computedNoteY = noteY.abs;\n }\n } else {\n computedNoteY = y + noteY;\n }\n var computedX = x;\n var computedY = y;\n var angle = getLinkAngle(x, y, computedNoteX, computedNoteY);\n if (type === 'circle') {\n var position = positionFromAngle(degreesToRadians(angle), size / 2);\n computedX += position.x;\n computedY += position.y;\n }\n if (type === 'rect') {\n var eighth = Math.round((angle + 90) / 45) % 8;\n if (eighth === 0) {\n computedY -= height / 2;\n }\n if (eighth === 1) {\n computedX += width / 2;\n computedY -= height / 2;\n }\n if (eighth === 2) {\n computedX += width / 2;\n }\n if (eighth === 3) {\n computedX += width / 2;\n computedY += height / 2;\n }\n if (eighth === 4) {\n computedY += height / 2;\n }\n if (eighth === 5) {\n computedX -= width / 2;\n computedY += height / 2;\n }\n if (eighth === 6) {\n computedX -= width / 2;\n }\n if (eighth === 7) {\n computedX -= width / 2;\n computedY -= height / 2;\n }\n }\n var textX = computedNoteX;\n var textY = computedNoteY - noteTextOffset;\n var noteLineX = computedNoteX;\n var noteLineY = computedNoteY;\n if ((angle + 90) % 360 > 180) {\n textX -= noteWidth;\n noteLineX -= noteWidth;\n } else {\n noteLineX += noteWidth;\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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } return target; }\nfunction _defineProperty$1(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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};\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};\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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } return target; }\nfunction _defineProperty$2(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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 if (typeof note === 'function') {\n return note({\n x: x,\n y: y,\n datum: datum\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.propTypes = {\n datum: PropTypes.object.isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n note: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired\n};\nAnnotationNote.defaultProps = {};\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$3(target, key, source[key]); }); } return target; }\nfunction _defineProperty$3(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar AnnotationLink = memo(function (_ref) {\n var points = _ref.points,\n isOutline = _ref.isOutline;\n var theme = useTheme();\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n if (isOutline && theme.annotations.link.outlineWidth <= 0) {\n return null;\n }\n var style = _objectSpread$3({}, theme.annotations.link);\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 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 if (!animate) {\n return React.createElement(\"path\", {\n fill: \"none\",\n d: path,\n style: style\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.propTypes = {\n points: PropTypes.arrayOf(PropTypes.array).isRequired,\n isOutline: PropTypes.bool.isRequired\n};\nAnnotationLink.defaultProps = {\n isOutline: false\n};\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$4(target, key, source[key]); }); } return target; }\nfunction _defineProperty$4(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar CircleAnnotationOutline = memo(function (_ref) {\n var x = _ref.x,\n y = _ref.y,\n size = _ref.size;\n var theme = useTheme();\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\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 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';\nCircleAnnotationOutline.propTypes = {\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n size: PropTypes.number.isRequired\n};\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$5(target, key, source[key]); }); } return target; }\nfunction _defineProperty$5(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar DotAnnotationOutline = memo(function (_ref) {\n var x = _ref.x,\n y = _ref.y,\n size = _ref.size;\n var theme = useTheme();\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\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 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.propTypes = {\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n size: PropTypes.number.isRequired\n};\nDotAnnotationOutline.defaultProps = {\n size: 4\n};\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$6(target, key, source[key]); }); } return target; }\nfunction _defineProperty$6(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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 var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\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 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';\nRectAnnotationOutline.propTypes = {\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired\n};\n\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 var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\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.propTypes = {\n datum: PropTypes.object.isRequired,\n type: PropTypes.oneOf(['circle', 'rect', 'dot']).isRequired,\n containerWidth: PropTypes.number.isRequired,\n containerHeight: PropTypes.number.isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n size: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\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.isRequired,\n noteTextOffset: PropTypes.number.isRequired,\n note: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired\n};\nAnnotation.defaultProps = {\n noteWidth: defaultProps.noteWidth,\n noteTextOffset: defaultProps.noteTextOffset\n};\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\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 if (index === 0) {\n ctx.moveTo(x, y);\n } else {\n ctx.lineTo(x, y);\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 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 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 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 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 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 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 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 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 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 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 };\n","import 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) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\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 if (maxValue === 'auto') {\n maxValue = max(allValues);\n }\n var minValue = _minValue;\n if (minValue === 'auto') {\n minValue = min(allValues);\n if (minValue > 0) minValue = 0;\n }\n return scaleLinear().rangeRound(range).domain([minValue, maxValue]);\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 var getY = function getY(d) {\n return d > 0 ? yScale(d) : yRef;\n };\n var getHeight = function getHeight(d, y) {\n return d > 0 ? yRef - y : yScale(d) - yRef;\n };\n if (reverse) {\n getY = function getY(d) {\n return d < 0 ? yScale(d) : yRef;\n };\n getHeight = function getHeight(d, y) {\n return d < 0 ? yRef - y : yScale(d) - yRef;\n };\n }\n var bars = [];\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 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 return {\n xScale: xScale,\n yScale: yScale,\n bars: bars\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 var getX = function getX(d) {\n return d > 0 ? xRef : xScale(d);\n };\n var getWidth = function getWidth(d, x) {\n return d > 0 ? xScale(d) - xRef : xRef - x;\n };\n if (reverse) {\n getX = function getX(d) {\n return d < 0 ? xRef : xScale(d);\n };\n getWidth = function getWidth(d, x) {\n return d < 0 ? xScale(d) - xRef : xRef - x;\n };\n }\n var bars = [];\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 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 return {\n xScale: xScale,\n yScale: yScale,\n bars: bars\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 if (minValue === 'auto') {\n minValue = min(allValues);\n }\n var maxValue = _maxValue;\n if (maxValue === 'auto') {\n maxValue = max(allValues);\n }\n return scaleLinear().rangeRound(range).domain([minValue, maxValue]);\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 var getY = function getY(d) {\n return yScale(d[1]);\n };\n var getHeight = function getHeight(d, y) {\n return yScale(d[0]) - y;\n };\n if (reverse) {\n getY = function getY(d) {\n return yScale(d[0]);\n };\n getHeight = function getHeight(d, y) {\n return yScale(d[1]) - y;\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 if (innerPadding > 0) {\n y += innerPadding * 0.5;\n barHeight -= innerPadding;\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 return {\n xScale: xScale,\n yScale: yScale,\n bars: bars\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 var getX = function getX(d) {\n return xScale(d[0]);\n };\n var getWidth = function getWidth(d, x) {\n return xScale(d[1]) - x;\n };\n if (reverse) {\n getX = function getX(d) {\n return xScale(d[1]);\n };\n getWidth = function getWidth(d, y) {\n return xScale(d[0]) - y;\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 if (innerPadding > 0) {\n x += innerPadding * 0.5;\n barWidth -= innerPadding;\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 return {\n xScale: xScale,\n yScale: yScale,\n bars: bars\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 if (layout === 'vertical' && groupMode === 'stacked' && direction === 'column' && reverse !== true || layout === 'horizontal' && groupMode === 'stacked' && reverse === true) {\n data.reverse();\n }\n return data;\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};\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 if (from === 'indexes') {\n return getLegendDataForIndexes(bars);\n }\n return getLegendDataForKeys(bars, layout, direction, groupMode, reverse);\n};\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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 var handleTooltip = function handleTooltip(e) {\n return showTooltip(tooltip, e);\n };\n var handleMouseEnter = function handleMouseEnter(e) {\n onMouseEnter(data, e);\n showTooltip(tooltip, e);\n };\n var handleMouseLeave = function handleMouseLeave(e) {\n onMouseLeave(data, e);\n hideTooltip(e);\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};\nBarItem.propTypes = {\n data: PropTypes.shape({\n id: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired,\n indexValue: PropTypes.string.isRequired,\n fill: PropTypes.string\n }).isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n color: PropTypes.string.isRequired,\n borderRadius: PropTypes.number.isRequired,\n borderWidth: PropTypes.number.isRequired,\n borderColor: PropTypes.string.isRequired,\n label: PropTypes.node.isRequired,\n shouldRenderLabel: PropTypes.bool.isRequired,\n labelColor: PropTypes.string.isRequired,\n showTooltip: PropTypes.func.isRequired,\n hideTooltip: PropTypes.func.isRequired,\n getTooltipLabel: PropTypes.func.isRequired,\n tooltipFormat: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n onClick: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n tooltip: PropTypes.element.isRequired,\n theme: PropTypes.shape({\n tooltip: PropTypes.shape({}).isRequired,\n labels: PropTypes.shape({\n text: PropTypes.object.isRequired\n }).isRequired\n }).isRequired\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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } return target; }\nfunction _defineProperty$1(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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});\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 (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 var getTooltipLabel = function getTooltipLabel(d) {\n return \"\".concat(d.id, \" - \").concat(d.indexValue);\n };\n if (typeof tooltipLabel === 'function') {\n getTooltipLabel = tooltipLabel;\n }\n return {\n getTooltipLabel: getTooltipLabel\n };\n }), pure)(Component);\n});\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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};\nBarAnnotations.propTypes = {};\n\nfunction _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } return target; }\nfunction _defineProperty$2(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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};\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};\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};\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};\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 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 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 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 var baseProps = _objectSpread$2({}, bar, style);\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 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 return layerById[layer];\n }));\n });\n};\nBar.propTypes = BarPropTypes;\nvar Bar$1 = setDisplayName('Bar')(enhance$1(Bar));\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$3(target, key, source[key]); }); } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty$3(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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};\nvar BarCanvas =\nfunction (_Component) {\n _inherits(BarCanvas, _Component);\n function BarCanvas() {\n var _getPrototypeOf2;\n var _this;\n _classCallCheck(this, BarCanvas);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(BarCanvas)).call.apply(_getPrototypeOf2, [this].concat(args)));\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 var _getRelativeCursor = getRelativeCursor(_this.surface, event),\n _getRelativeCursor2 = _slicedToArray(_getRelativeCursor, 2),\n x = _getRelativeCursor2[0],\n y = _getRelativeCursor2[1];\n var bar = findNodeUnderCursor(_this.bars, margin, x, y);\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 _defineProperty$3(_assertThisInitialized(_this), \"handleMouseLeave\", function (hideTooltip) {\n return function () {\n hideTooltip();\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 var _getRelativeCursor3 = getRelativeCursor(_this.surface, event),\n _getRelativeCursor4 = _slicedToArray(_getRelativeCursor3, 2),\n x = _getRelativeCursor4[0],\n y = _getRelativeCursor4[1];\n var node = findNodeUnderCursor(_this.bars, margin, x, y);\n if (node !== undefined) onClick(node.data, event);\n });\n return _this;\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 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 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 this.ctx.strokeStyle = '#dddddd';\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 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 legends.forEach(function (legend) {\n var legendData;\n if (legend.dataFrom === 'keys') {\n legendData = legendDataForKeys;\n } else if (legend.dataFrom === 'indexes') {\n legendData = legendDataForIndexes;\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 if (borderWidth > 0) {\n _this2.ctx.strokeStyle = getBorderColor(bar);\n _this2.ctx.lineWidth = borderWidth;\n }\n _this2.ctx.beginPath();\n _this2.ctx.rect(x, y, width, height);\n _this2.ctx.fill();\n if (borderWidth > 0) {\n _this2.ctx.stroke();\n }\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\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 return BarCanvas;\n}(Component);\nBarCanvas.propTypes = BarPropTypes;\nvar BarCanvas$1 = setDisplayName('BarCanvas')(enhance$1(BarCanvas));\n\nfunction _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }\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() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }\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","import { 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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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);\nvar isCategoricalColorScheme = function isCategoricalColorScheme(scheme) {\n return categoricalColorSchemeIds.includes(scheme);\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);\nvar isDivergingColorScheme = function isDivergingColorScheme(scheme) {\n return divergingColorSchemeIds.includes(scheme);\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);\nvar isSequentialColorScheme = function isSequentialColorScheme(scheme) {\n return sequentialColorSchemeIds.includes(scheme);\n};\nvar colorSchemes = _objectSpread({}, categoricalColorSchemes, divergingColorSchemes, sequentialColorSchemes);\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 if (Array.isArray(instruction)) {\n var scale = scaleOrdinal(instruction);\n var generator = function generator(d) {\n return scale(getIdentity(d));\n };\n generator.scale = scale;\n return generator;\n }\n if (isPlainObject(instruction)) {\n if (instruction.datum !== undefined) {\n return function (datum) {\n return get(datum, instruction.datum);\n };\n }\n if (instruction.scheme !== undefined) {\n if (isCategoricalColorScheme(instruction.scheme)) {\n var _scale = scaleOrdinal(colorSchemes[instruction.scheme]);\n var _generator = function _generator(d) {\n return _scale(getIdentity(d));\n };\n _generator.scale = _scale;\n return _generator;\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 var _scale2 = scaleOrdinal(colorSchemes[instruction.scheme][instruction.size || 11]);\n var _generator2 = function _generator2(d) {\n return _scale2(getIdentity(d));\n };\n _generator2.scale = _scale2;\n return _generator2;\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 var _scale3 = scaleOrdinal(colorSchemes[instruction.scheme][instruction.size || 9]);\n var _generator3 = function _generator3(d) {\n return _scale3(getIdentity(d));\n };\n _generator3.scale = _scale3;\n return _generator3;\n }\n }\n throw new Error(\"Invalid colors, when using an object, you should either pass a 'datum' or a 'scheme' property\");\n }\n return function () {\n return instruction;\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) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nvar getInheritedColorGenerator = function getInheritedColorGenerator(inheritedColor, theme) {\n if (typeof inheritedColor === 'function') return function (node) {\n return inheritedColor(node);\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 var themeColor = get(theme, inheritedColor.theme);\n if (themeColor === undefined) {\n throw new Error(\"Color from theme is undefined at path: '\".concat(inheritedColor.theme, \"'\"));\n }\n return function () {\n return themeColor;\n };\n }\n if (inheritedColor.from !== undefined) {\n var getColor = function getColor(datum) {\n return get(datum, inheritedColor.from);\n };\n if (Array.isArray(inheritedColor.modifiers)) {\n var modifiers = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n try {\n var _loop = function _loop() {\n var modifier = _step.value;\n var _modifier = _slicedToArray(modifier, 2),\n modifierType = _modifier[0],\n amount = _modifier[1];\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 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 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 return getColor;\n }\n throw new Error(\"Invalid color spec, you should either specify 'theme' or 'from' when using a config object\");\n }\n return function () {\n return inheritedColor;\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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } return target; }\nfunction _defineProperty$1(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar interpolateColor = function interpolateColor(color, springConfig) {\n var colorComponents = rgb(color);\n if (!springConfig) {\n return {\n colorR: colorComponents.r,\n colorG: colorComponents.g,\n colorB: colorComponents.b\n };\n }\n var configWithPrecision = _objectSpread$1({}, springConfig, {\n precision: 1\n });\n return {\n colorR: spring(colorComponents.r, configWithPrecision),\n colorG: spring(colorComponents.g, configWithPrecision),\n colorB: spring(colorComponents.b, configWithPrecision)\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 };\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 () {});\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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});\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};\n\nvar fontProps = ['axis.ticks.text', 'axis.legend.text', 'legends.text', 'labels.text', 'dots.text', 'markers.text', 'annotations.text'];\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 if (get(theme, \"\".concat(prop, \".fontSize\")) === undefined) {\n set(theme, \"\".concat(prop, \".fontSize\"), theme.fontSize);\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);\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 return colors;\n }\n if (quantizeColorScales[colors]) {\n return scaleQuantize().range(quantizeColorScales[colors]);\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',\n'category10', 'accent', 'dark2', 'paired', 'pastel1', 'pastel2', 'set1', 'set2', 'set3',\n'brown_blueGreen', 'purpleRed_green', 'pink_yellowGreen', 'purple_orange', 'red_blue', 'red_grey', 'red_yellow_blue', 'red_yellow_green', 'spectral',\n'blues', 'greens', 'greys', 'oranges', 'purples', 'reds',\n'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 = [\n'brown_blueGreen', 'purpleRed_green', 'pink_yellowGreen', 'purple_orange', 'red_blue', 'red_grey', 'red_yellow_blue', 'red_yellow_green', 'spectral',\n'blues', 'greens', 'greys', 'oranges', 'purples', 'reds',\n'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',\n'rainbow', 'sinebow'];\nvar nivoCategoricalColors = function nivoCategoricalColors() {\n return scaleOrdinal(['#e8c1a0', '#f47560', '#f1e15b', '#e8a838', '#61cdbb', '#97e3d5']);\n};\nvar getColorScale = function getColorScale(colors, dataScale) {\n if (isString(colors)) {\n var scheme = colorSchemes[colors];\n if (scheme !== undefined) {\n var scale = scaleOrdinal(scheme);\n scale.type = 'ordinal';\n return scale;\n }\n if (dataScale !== undefined && colors.indexOf('seq:') === 0) {\n var interpolator = colorInterpolators[colors.slice(4)];\n if (interpolator !== undefined) {\n var _scale = scaleSequential(interpolator).domain(dataScale.domain());\n _scale.type = 'sequential';\n return _scale;\n }\n }\n }\n if (isArray(colors)) {\n var _scale2 = scaleOrdinal(colors);\n _scale2.type = 'ordinal';\n return _scale2;\n }\n return function () {\n return colors;\n };\n};\n\nvar quantizeColorScalePropType = PropTypes.oneOfType([PropTypes.oneOf(quantizeColorScalesKeys), PropTypes.func, PropTypes.arrayOf(PropTypes.string)]);\n\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);\nvar curveFromProp = function curveFromProp(id) {\n var curveInterpolator = curvePropMapping[id];\n if (!curveInterpolator) {\n throw new TypeError(\"'\".concat(id, \"', is not a valid curve interpolator identifier.\"));\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};\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);\nvar stackOrderFromProp = function stackOrderFromProp(prop) {\n return stackOrderPropMapping[prop];\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);\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);\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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } return target; }\nfunction _defineProperty$1(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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 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 if (typeof format$1 === 'string') {\n if (format$1.indexOf('time:') === 0) {\n return timeFormat(format$1.slice('5'));\n }\n return format(format$1);\n }\n return function (v) {\n return v;\n };\n};\nvar useValueFormatter = function useValueFormatter(format) {\n return useMemo(function () {\n return getValueFormatter(format);\n }, [format]);\n};\n\nvar themeContext = createContext();\nvar defaultPartialTheme = {};\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};\nThemeProvider.propTypes = {\n children: PropTypes.node.isRequired,\n theme: PropTypes.object\n};\nvar useTheme = function useTheme() {\n return useContext(themeContext);\n};\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } return target; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty$2(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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 return spring(value, config);\n};\nvar SmartMotion =\nfunction (_PureComponent) {\n _inherits(SmartMotion, _PureComponent);\n function SmartMotion() {\n var _getPrototypeOf2;\n var _this;\n _classCallCheck(this, SmartMotion);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(SmartMotion)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _defineProperty$2(_assertThisInitialized(_this), \"oldValues\", {});\n _defineProperty$2(_assertThisInitialized(_this), \"newInters\", {});\n _defineProperty$2(_assertThisInitialized(_this), \"currentStepValues\", {});\n _defineProperty$2(_assertThisInitialized(_this), \"stepValues\", {});\n _defineProperty$2(_assertThisInitialized(_this), \"stepInterpolators\", {});\n return _this;\n }\n _createClass(SmartMotion, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props = this.props,\n style = _this$props.style,\n children = _this$props.children,\n rest = _objectWithoutProperties(_this$props, [\"style\", \"children\"]);\n var resolvedStyle = style(enhancedSpring);\n for (var key in resolvedStyle) {\n if (\n resolvedStyle[key] && resolvedStyle[key].interpolator) {\n this.currentStepValues[key] = this.currentStepValues[key] || 0;\n if (\n 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 resolvedStyle[key] = spring(this.stepValues[key], this.newInters[key].config);\n }\n }\n return React.createElement(Motion, _extends({}, rest, {\n style: resolvedStyle\n }), function (values) {\n var newValues = {};\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 return children(_objectSpread$2({}, values, newValues));\n });\n }\n }]);\n return SmartMotion;\n}(PureComponent);\n_defineProperty$2(SmartMotion, \"propTypes\", {\n children: PropTypes.func.isRequired,\n style: PropTypes.func.isRequired\n});\n\nvar motionConfigContext = createContext();\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};\nMotionConfigProvider.propTypes = {\n children: PropTypes.node.isRequired,\n animate: PropTypes.bool.isRequired,\n stiffness: PropTypes.number.isRequired,\n damping: PropTypes.number.isRequired\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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$3(target, key, source[key]); }); } return target; }\nfunction _defineProperty$3(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nvar containerStyle = {\n position: 'relative'\n};\nvar tooltipStyle = {\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 10\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 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 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 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 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};\nContainer.propTypes = {\n children: PropTypes.func.isRequired,\n isInteractive: PropTypes.bool,\n theme: PropTypes.object.isRequired,\n animate: PropTypes.bool.isRequired,\n motionStiffness: PropTypes.number,\n motionDamping: PropTypes.number\n};\n\nfunction _typeof$1(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\nfunction _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties$1(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }\nfunction _possibleConstructorReturn$1(self, call) { if (call && (_typeof$1(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized$1(self); }\nfunction _getPrototypeOf$1(o) { _getPrototypeOf$1 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf$1(o); }\nfunction _assertThisInitialized$1(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits$1(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf$1(subClass, superClass); }\nfunction _setPrototypeOf$1(o, p) { _setPrototypeOf$1 = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf$1(o, p); }\nfunction _defineProperty$4(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar ResponsiveWrapper =\nfunction (_Component) {\n _inherits$1(ResponsiveWrapper, _Component);\n function ResponsiveWrapper() {\n var _getPrototypeOf2;\n var _this;\n _classCallCheck$1(this, ResponsiveWrapper);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _possibleConstructorReturn$1(this, (_getPrototypeOf2 = _getPrototypeOf$1(ResponsiveWrapper)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _defineProperty$4(_assertThisInitialized$1(_this), \"state\", {\n dimensions: {\n width: -1,\n height: -1\n }\n });\n return _this;\n }\n _createClass$1(ResponsiveWrapper, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\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 return ResponsiveWrapper;\n}(Component);\n_defineProperty$4(ResponsiveWrapper, \"propTypes\", {\n children: PropTypes.func.isRequired\n});\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$5(target, key, source[key]); }); } return target; }\nfunction _defineProperty$5(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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};\nLinearGradient.propTypes = {\n id: PropTypes.string.isRequired,\n colors: PropTypes.arrayOf(PropTypes.shape({\n offset: PropTypes.number.isRequired,\n color: PropTypes.string.isRequired\n })).isRequired\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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$6(target, key, source[key]); }); } return target; }\nfunction _defineProperty$6(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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 if (stagger === true) {\n fullSize = size * 2 + padding * 2;\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.propTypes = {\n id: PropTypes.string.isRequired,\n color: PropTypes.string.isRequired,\n background: PropTypes.string.isRequired,\n size: PropTypes.number.isRequired,\n padding: PropTypes.number.isRequired,\n stagger: PropTypes.bool.isRequired\n};\nPatternDots.defaultProps = {\n color: '#000000',\n background: '#ffffff',\n size: 4,\n padding: 4,\n stagger: false\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) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\nfunction _slicedToArray$1(arr, i) { return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _nonIterableRest$1(); }\nfunction _nonIterableRest$1() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit$1(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles$1(arr) { if (Array.isArray(arr)) return arr; }\nvar TWO_PI = Math.PI * 2;\nvar degreesToRadians = function degreesToRadians(degrees) {\n return degrees * Math.PI / 180;\n};\nvar radiansToDegrees = function radiansToDegrees(radians) {\n return 180 * radians / Math.PI;\n};\nvar midAngle = function midAngle(arc) {\n return arc.startAngle + (arc.endAngle - arc.startAngle) / 2;\n};\nvar positionFromAngle = function positionFromAngle(angle, distance) {\n return {\n x: Math.cos(angle) * distance,\n y: Math.sin(angle) * distance\n };\n};\nvar absoluteAngleDegrees = function absoluteAngleDegrees(angle) {\n var absAngle = angle % 360;\n if (absAngle < 0) {\n absAngle += 360;\n }\n return absAngle;\n};\nvar absoluteAngleRadians = function absoluteAngleRadians(angle) {\n return angle - TWO_PI * Math.floor((angle + Math.PI) / TWO_PI);\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 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 points = points.map(function (_ref) {\n var _ref2 = _slicedToArray$1(_ref, 2),\n x = _ref2[0],\n y = _ref2[1];\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 return x;\n });\n var ys = points.map(function (_ref5) {\n var _ref6 = _slicedToArray$1(_ref5, 2),\n y = _ref6[1];\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 var _positionFromAngle = positionFromAngle(angle - Math.PI / 2, radius),\n x = _positionFromAngle.x,\n y = _positionFromAngle.y;\n var rotate = radiansToDegrees(angle);\n var align = textProps.align.center;\n var baseline = textProps.baseline.bottom;\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 if (rotation !== 0 && rotate > 180) {\n rotate -= 180;\n align = align === textProps.align.right ? textProps.align.left : textProps.align.right;\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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$7(target, key, source[key]); }); } return target; }\nfunction _defineProperty$7(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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 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 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 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.propTypes = {\n id: PropTypes.string.isRequired,\n spacing: PropTypes.number.isRequired,\n rotation: PropTypes.number.isRequired,\n background: PropTypes.string.isRequired,\n color: PropTypes.string.isRequired,\n lineWidth: PropTypes.number.isRequired\n};\nPatternLines.defaultProps = {\n spacing: 5,\n rotation: 0,\n color: '#000000',\n background: '#ffffff',\n lineWidth: 2\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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$8(target, key, source[key]); }); } return target; }\nfunction _defineProperty$8(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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 if (stagger === true) {\n fullSize = size * 2 + padding * 2;\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.propTypes = {\n id: PropTypes.string.isRequired,\n color: PropTypes.string.isRequired,\n background: PropTypes.string.isRequired,\n size: PropTypes.number.isRequired,\n padding: PropTypes.number.isRequired,\n stagger: PropTypes.bool.isRequired\n};\nPatternSquares.defaultProps = {\n color: '#000000',\n background: '#ffffff',\n size: 4,\n padding: 4,\n stagger: false\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) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$1(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose$1(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$9(target, key, source[key]); }); } return target; }\nfunction _defineProperty$9(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar defsMapping = _objectSpread$8({}, gradientTypes, patternTypes);\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 if (defsMapping[type]) return React.createElement(defsMapping[type], _objectSpread$8({\n key: def.id\n }, def));\n return null;\n }));\n};\nDefs.propTypes = {\n defs: PropTypes.arrayOf(PropTypes.shape({\n type: PropTypes.oneOf(Object.keys(defsMapping)).isRequired,\n id: PropTypes.string.isRequired\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};\nSvgWrapper.propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n margin: PropTypes.shape({\n top: PropTypes.number.isRequired,\n left: PropTypes.number.isRequired\n }).isRequired,\n defs: PropTypes.array,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired\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};\nDotsItemSymbol.propTypes = {\n size: PropTypes.number.isRequired,\n color: PropTypes.string.isRequired,\n borderWidth: PropTypes.number.isRequired,\n borderColor: PropTypes.string.isRequired\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};\nDotsItem.propTypes = {\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n datum: PropTypes.object.isRequired,\n size: PropTypes.number.isRequired,\n color: PropTypes.string.isRequired,\n borderWidth: PropTypes.number.isRequired,\n borderColor: PropTypes.string.isRequired,\n symbol: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n labelTextAnchor: PropTypes.oneOf(['start', 'middle', 'end']),\n labelYOffset: PropTypes.number.isRequired,\n theme: PropTypes.shape({\n dots: dotsThemePropType.isRequired\n }).isRequired\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 if (axis === 'x') {\n switch (position) {\n case 'top-left':\n x = -offsetX;\n y = offsetY;\n textAnchor = 'end';\n break;\n case 'top':\n y = -offsetY;\n if (orientation === 'horizontal') {\n textAnchor = 'middle';\n } else {\n textAnchor = 'start';\n }\n break;\n case 'top-right':\n x = offsetX;\n y = offsetY;\n if (orientation === 'horizontal') {\n textAnchor = 'start';\n } else {\n textAnchor = 'end';\n }\n break;\n case 'right':\n x = offsetX;\n y = height / 2;\n if (orientation === 'horizontal') {\n textAnchor = 'start';\n } else {\n textAnchor = 'middle';\n }\n break;\n case 'bottom-right':\n x = offsetX;\n y = height - offsetY;\n textAnchor = 'start';\n break;\n case 'bottom':\n y = height + offsetY;\n if (orientation === 'horizontal') {\n textAnchor = 'middle';\n } else {\n textAnchor = 'end';\n }\n break;\n case 'bottom-left':\n y = height - offsetY;\n x = -offsetX;\n if (orientation === 'horizontal') {\n textAnchor = 'end';\n } else {\n textAnchor = 'start';\n }\n break;\n case 'left':\n x = -offsetX;\n y = height / 2;\n if (orientation === 'horizontal') {\n textAnchor = 'end';\n } else {\n textAnchor = 'middle';\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 case 'top':\n x = width / 2;\n y = -offsetY;\n if (orientation === 'horizontal') {\n textAnchor = 'middle';\n } else {\n textAnchor = 'start';\n }\n break;\n case 'top-right':\n x = width - offsetX;\n y = -offsetY;\n if (orientation === 'horizontal') {\n textAnchor = 'end';\n } else {\n textAnchor = 'start';\n }\n break;\n case 'right':\n x = width + offsetX;\n if (orientation === 'horizontal') {\n textAnchor = 'start';\n } else {\n textAnchor = 'middle';\n }\n break;\n case 'bottom-right':\n x = width - offsetX;\n y = offsetY;\n textAnchor = 'end';\n break;\n case 'bottom':\n x = width / 2;\n y = offsetY;\n if (orientation === 'horizontal') {\n textAnchor = 'middle';\n } else {\n textAnchor = 'end';\n }\n break;\n case 'bottom-left':\n x = offsetX;\n y = offsetY;\n if (orientation === 'horizontal') {\n textAnchor = 'start';\n } else {\n textAnchor = 'end';\n }\n break;\n case 'left':\n x = -offsetX;\n if (orientation === 'horizontal') {\n textAnchor = 'end';\n } else {\n textAnchor = 'middle';\n }\n break;\n }\n }\n return {\n x: x,\n y: y,\n rotation: rotation,\n textAnchor: textAnchor\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 if (axis === 'y') {\n y = scale(value);\n x2 = width;\n } else {\n x = scale(value);\n y2 = height;\n }\n var legendNode = null;\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 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};\nCartesianMarkersItem.propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n axis: PropTypes.oneOf(['x', 'y']).isRequired,\n scale: PropTypes.func.isRequired,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]).isRequired,\n lineStyle: PropTypes.object,\n textStyle: PropTypes.object,\n legend: PropTypes.string,\n legendPosition: PropTypes.oneOf(['top-left', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left']),\n legendOffsetX: PropTypes.number.isRequired,\n legendOffsetY: PropTypes.number.isRequired,\n legendOrientation: PropTypes.oneOf(['horizontal', 'vertical']).isRequired\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() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }\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};\nCartesianMarkers.propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n xScale: PropTypes.func.isRequired,\n yScale: PropTypes.func.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 lineStyle: PropTypes.object,\n textStyle: PropTypes.object\n }))\n};\nvar CartesianMarkers$1 = memo(CartesianMarkers);\n\nfunction _defineProperty$a(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar withCurve = (function () {\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 return withProps(function (props) {\n return _defineProperty$a({}, destKey, curveFromProp(props[srcKey]));\n });\n});\n\nvar withDimensions = (function () {\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 if (labelFormat) {\n formatter = isFunction(labelFormat) ? labelFormat : format(labelFormat);\n }\n if (formatter) return function (d) {\n return formatter(getRawLabel(d));\n };\n return getRawLabel;\n};\nvar getAccessorFor = function getAccessorFor(directive) {\n return isFunction(directive) ? directive : function (d) {\n return d[directive];\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) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar withHierarchy = (function () {\n var _setPropTypes;\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 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 () {\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) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar withTheme = (function () {\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 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) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\nfunction _objectWithoutProperties$2(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$2(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose$2(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck$2(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties$2(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass$2(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$2(Constructor.prototype, protoProps); if (staticProps) _defineProperties$2(Constructor, staticProps); return Constructor; }\nfunction _possibleConstructorReturn$2(self, call) { if (call && (_typeof$2(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized$2(self); }\nfunction _assertThisInitialized$2(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _getPrototypeOf$2(o) { _getPrototypeOf$2 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf$2(o); }\nfunction _inherits$2(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf$2(subClass, superClass); }\nfunction _setPrototypeOf$2(o, p) { _setPrototypeOf$2 = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf$2(o, p); }\nvar containerStyle$1 = {\n position: 'relative'\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 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 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};\nContainer$1.propTypes = {\n children: PropTypes.node.isRequired,\n theme: PropTypes.object,\n animate: PropTypes.bool,\n motionStiffness: PropTypes.number,\n motionDamping: PropTypes.number,\n renderWrapper: PropTypes.bool\n};\nvar withContainer = function withContainer(WrappedComponent) {\n return (\n function (_Component) {\n _inherits$2(_class, _Component);\n function _class() {\n _classCallCheck$2(this, _class);\n return _possibleConstructorReturn$2(this, _getPrototypeOf$2(_class).apply(this, arguments));\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 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 return _class;\n }(Component)\n );\n};\n\nvar boxAlignments = ['center', 'top-left', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left'];\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 if (alignment === 'center') {\n x = deltaX / 2;\n y = deltaY / 2;\n }\n if (alignment === 'top') {\n x = deltaX / 2;\n }\n if (alignment === 'top-right') {\n x = deltaX;\n }\n if (alignment === 'right') {\n x = deltaX;\n y = deltaY / 2;\n }\n if (alignment === 'bottom-right') {\n x = deltaX;\n y = deltaY;\n }\n if (alignment === 'bottom') {\n x = deltaX / 2;\n y = deltaY;\n }\n if (alignment === 'bottom-left') {\n y = deltaY;\n }\n if (alignment === 'left') {\n y = deltaY / 2;\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};\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};\nvar isCursorInRect = function isCursorInRect(x, y, width, height, cursorX, cursorY) {\n return x <= cursorX && cursorX <= x + width && y <= cursorY && cursorY <= y + height;\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};\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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$d(target, key, source[key]); }); } return target; }\nfunction _defineProperty$d(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toConsumableArray$1(arr) { return _arrayWithoutHoles$1(arr) || _iterableToArray$1(arr) || _nonIterableSpread$1(); }\nfunction _nonIterableSpread$1() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\nfunction _iterableToArray$1(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\nfunction _arrayWithoutHoles$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\nvar gradientKeys = Object.keys(gradientTypes);\nvar patternKeys = Object.keys(patternTypes);\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 return false;\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 var boundDefs = [];\n var generatedIds = {};\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 if (isMatchingDef(match, node, dataKey)) {\n var def = defs.find(function (_ref2) {\n var defId = _ref2.id;\n return defId === id;\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 if (def.background === 'inherit') {\n inheritedId = \"\".concat(inheritedId, \".bg.\").concat(nodeColor);\n background = nodeColor;\n }\n if (def.color === 'inherit') {\n inheritedId = \"\".concat(inheritedId, \".fg.\").concat(nodeColor);\n color = nodeColor;\n }\n set(node, targetKey, \"url(#\".concat(inheritedId, \")\"));\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 if (allColors.includes('inherit')) {\n var _nodeColor = get(node, colorKey);\n var _inheritedId = id;\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 inheritedDef.id = _inheritedId;\n set(node, targetKey, \"url(#\".concat(_inheritedId, \")\"));\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 return \"break\";\n }\n };\n for (var i = 0; i < rules.length; i++) {\n var _ret = _loop(i);\n if (_ret === \"break\") break;\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 };\n","import 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';\n\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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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});\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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } return target; }\nfunction _defineProperty$1(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar zeroPadding = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\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 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 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 if (direction === DIRECTION_ROW) {\n width = itemWidth * itemCount + spacing + horizontalPadding;\n } else if (direction === DIRECTION_COLUMN) {\n height = itemHeight * itemCount + spacing + verticalPadding;\n }\n return {\n width: width,\n height: height,\n padding: padding\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 switch (anchor) {\n case ANCHOR_TOP:\n x += (containerWidth - width) / 2;\n break;\n case ANCHOR_TOP_RIGHT:\n x += containerWidth - width;\n break;\n case ANCHOR_RIGHT:\n x += containerWidth - width;\n y += (containerHeight - height) / 2;\n break;\n case ANCHOR_BOTTOM_RIGHT:\n x += containerWidth - width;\n y += containerHeight - height;\n break;\n case ANCHOR_BOTTOM:\n x += (containerWidth - width) / 2;\n y += containerHeight - height;\n break;\n case ANCHOR_BOTTOM_LEFT:\n y += containerHeight - height;\n break;\n case ANCHOR_LEFT:\n y += (containerHeight - height) / 2;\n break;\n case ANCHOR_CENTER:\n x += (containerWidth - width) / 2;\n y += (containerHeight - height) / 2;\n break;\n }\n return {\n x: x,\n y: y\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 switch (direction) {\n case DIRECTION_LEFT_TO_RIGHT:\n symbolX = 0;\n symbolY = (height - symbolSize) / 2;\n labelY = height / 2;\n labelAlignment = 'central';\n if (justify === true) {\n labelX = width;\n labelAnchor = 'end';\n } else {\n labelX = symbolSize + symbolSpacing;\n labelAnchor = 'start';\n }\n break;\n case DIRECTION_RIGHT_TO_LEFT:\n symbolX = width - symbolSize;\n symbolY = (height - symbolSize) / 2;\n labelY = height / 2;\n labelAlignment = 'central';\n if (justify === true) {\n labelX = 0;\n labelAnchor = 'start';\n } else {\n labelX = width - symbolSize - symbolSpacing;\n labelAnchor = 'end';\n }\n break;\n case DIRECTION_TOP_TO_BOTTOM:\n symbolX = (width - symbolSize) / 2;\n symbolY = 0;\n labelX = width / 2;\n labelAnchor = 'middle';\n if (justify === true) {\n labelY = height;\n labelAlignment = 'alphabetic';\n } else {\n labelY = symbolSize + symbolSpacing;\n labelAlignment = 'text-before-edge';\n }\n break;\n case DIRECTION_BOTTOM_TO_TOP:\n symbolX = (width - symbolSize) / 2;\n symbolY = height - symbolSize;\n labelX = width / 2;\n labelAnchor = 'middle';\n if (justify === true) {\n labelY = 0;\n labelAlignment = 'text-before-edge';\n } else {\n labelY = height - symbolSize - symbolSpacing;\n labelAlignment = 'alphabetic';\n }\n break;\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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } return target; }\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty$2(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar SymbolCircle =\nfunction (_PureComponent) {\n _inherits(SymbolCircle, _PureComponent);\n function SymbolCircle() {\n _classCallCheck(this, SymbolCircle);\n return _possibleConstructorReturn(this, _getPrototypeOf(SymbolCircle).apply(this, arguments));\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 return SymbolCircle;\n}(PureComponent);\n_defineProperty$2(SymbolCircle, \"propTypes\", _objectSpread$2({}, symbolPropTypes$1));\n_defineProperty$2(SymbolCircle, \"defaultProps\", _objectSpread$2({}, symbolDefaultProps));\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$3(target, key, source[key]); }); } return target; }\nfunction _typeof$1(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\nfunction _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties$1(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }\nfunction _possibleConstructorReturn$1(self, call) { if (call && (_typeof$1(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized$1(self); }\nfunction _assertThisInitialized$1(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _getPrototypeOf$1(o) { _getPrototypeOf$1 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf$1(o); }\nfunction _inherits$1(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf$1(subClass, superClass); }\nfunction _setPrototypeOf$1(o, p) { _setPrototypeOf$1 = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf$1(o, p); }\nfunction _defineProperty$3(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar SymbolDiamond =\nfunction (_PureComponent) {\n _inherits$1(SymbolDiamond, _PureComponent);\n function SymbolDiamond() {\n _classCallCheck$1(this, SymbolDiamond);\n return _possibleConstructorReturn$1(this, _getPrototypeOf$1(SymbolDiamond).apply(this, arguments));\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 return SymbolDiamond;\n}(PureComponent);\n_defineProperty$3(SymbolDiamond, \"propTypes\", _objectSpread$3({}, symbolPropTypes$1));\n_defineProperty$3(SymbolDiamond, \"defaultProps\", _objectSpread$3({}, symbolDefaultProps));\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$4(target, key, source[key]); }); } return target; }\nfunction _typeof$2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\nfunction _classCallCheck$2(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties$2(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass$2(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$2(Constructor.prototype, protoProps); if (staticProps) _defineProperties$2(Constructor, staticProps); return Constructor; }\nfunction _possibleConstructorReturn$2(self, call) { if (call && (_typeof$2(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized$2(self); }\nfunction _assertThisInitialized$2(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _getPrototypeOf$2(o) { _getPrototypeOf$2 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf$2(o); }\nfunction _inherits$2(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf$2(subClass, superClass); }\nfunction _setPrototypeOf$2(o, p) { _setPrototypeOf$2 = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf$2(o, p); }\nfunction _defineProperty$4(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar SymbolSquare =\nfunction (_PureComponent) {\n _inherits$2(SymbolSquare, _PureComponent);\n function SymbolSquare() {\n _classCallCheck$2(this, SymbolSquare);\n return _possibleConstructorReturn$2(this, _getPrototypeOf$2(SymbolSquare).apply(this, arguments));\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 return SymbolSquare;\n}(PureComponent);\n_defineProperty$4(SymbolSquare, \"propTypes\", _objectSpread$4({}, symbolPropTypes$1));\n_defineProperty$4(SymbolSquare, \"defaultProps\", _objectSpread$4({}, symbolDefaultProps));\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$5(target, key, source[key]); }); } return target; }\nfunction _typeof$3(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\nfunction _classCallCheck$3(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties$3(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass$3(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$3(Constructor.prototype, protoProps); if (staticProps) _defineProperties$3(Constructor, staticProps); return Constructor; }\nfunction _possibleConstructorReturn$3(self, call) { if (call && (_typeof$3(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized$3(self); }\nfunction _assertThisInitialized$3(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _getPrototypeOf$3(o) { _getPrototypeOf$3 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf$3(o); }\nfunction _inherits$3(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf$3(subClass, superClass); }\nfunction _setPrototypeOf$3(o, p) { _setPrototypeOf$3 = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf$3(o, p); }\nfunction _defineProperty$5(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar SymbolTriangle =\nfunction (_PureComponent) {\n _inherits$3(SymbolTriangle, _PureComponent);\n function SymbolTriangle() {\n _classCallCheck$3(this, SymbolTriangle);\n return _possibleConstructorReturn$3(this, _getPrototypeOf$3(SymbolTriangle).apply(this, arguments));\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 return SymbolTriangle;\n}(PureComponent);\n_defineProperty$5(SymbolTriangle, \"propTypes\", _objectSpread$5({}, symbolPropTypes$1));\n_defineProperty$5(SymbolTriangle, \"defaultProps\", _objectSpread$5({}, symbolDefaultProps));\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$6(target, key, source[key]); }); } return target; }\nfunction _defineProperty$6(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nvar symbolByShape = {\n circle: SymbolCircle,\n diamond: SymbolDiamond,\n square: SymbolSquare,\n triangle: SymbolTriangle\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 var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n style = _useState2[0],\n setStyle = _useState2[1];\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 var _style = applyEffects.reduce(function (acc, effect) {\n return _objectSpread$6({}, acc, effect.style);\n }, {});\n setStyle(_style);\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 var _style2 = applyEffects.reduce(function (acc, effect) {\n return _objectSpread$6({}, acc, effect.style);\n }, {});\n setStyle(_style2);\n }\n if (onMouseLeave === undefined) return;\n onMouseLeave(data, event);\n }, [onMouseLeave, data, effects]);\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 var isInteractive = [onClick, onMouseEnter, onMouseLeave].some(function (handler) {\n return handler !== undefined;\n });\n var _Symbol;\n if (isFunction(symbolShape)) {\n _Symbol = symbolShape;\n } else {\n _Symbol = symbolByShape[symbolShape];\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};\nLegendSvgItem.displayName = 'LegendSvgItem';\nLegendSvgItem.propTypes = _objectSpread$6({\n data: datumPropType.isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n textColor: PropTypes.string,\n background: PropTypes.string,\n opacity: PropTypes.number,\n direction: PropTypes.oneOf(['left-to-right', 'right-to-left', 'top-to-bottom', 'bottom-to-top']).isRequired,\n justify: PropTypes.bool.isRequired\n}, symbolPropTypes, interactivityPropTypes);\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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$7(target, key, source[key]); }); } return target; }\nfunction _defineProperty$7(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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 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 var xStep = 0;\n var yStep = 0;\n if (direction === 'row') {\n xStep = itemWidth + itemsSpacing;\n } else if (direction === 'column') {\n yStep = itemHeight + itemsSpacing;\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};\nLegendSvg.propTypes = _objectSpread$7({\n data: PropTypes.arrayOf(datumPropType).isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n direction: PropTypes.oneOf(['row', 'column']).isRequired,\n padding: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n top: PropTypes.number,\n right: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number\n })]).isRequired,\n justify: PropTypes.bool.isRequired,\n itemsSpacing: PropTypes.number.isRequired,\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]).isRequired,\n itemTextColor: PropTypes.string.isRequired,\n itemBackground: PropTypes.string.isRequired,\n itemOpacity: PropTypes.number.isRequired\n}, symbolPropTypes, interactivityPropTypes);\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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$8(target, key, source[key]); }); } return target; }\nfunction _defineProperty$8(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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 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 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 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};\nBoxLegendSvg.propTypes = _objectSpread$8({\n data: PropTypes.arrayOf(datumPropType).isRequired,\n containerWidth: PropTypes.number.isRequired,\n containerHeight: PropTypes.number.isRequired,\n translateX: PropTypes.number.isRequired,\n translateY: PropTypes.number.isRequired,\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 direction: PropTypes.oneOf([DIRECTION_ROW, DIRECTION_COLUMN]).isRequired,\n padding: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n top: PropTypes.number,\n right: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number\n })]).isRequired,\n justify: PropTypes.bool,\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 itemsSpacing: PropTypes.number.isRequired,\n itemTextColor: PropTypes.string,\n itemBackground: PropTypes.string,\n itemOpacity: PropTypes.number\n}, symbolPropTypes, interactivityPropTypes);\nBoxLegendSvg.defaultProps = {\n translateX: 0,\n translateY: 0,\n itemsSpacing: LegendSvg.defaultProps.itemsSpacing,\n padding: LegendSvg.defaultProps.padding\n};\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};\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 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 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 var xStep = 0;\n var yStep = 0;\n if (direction === DIRECTION_ROW) {\n xStep = itemWidth + itemsSpacing;\n } else if (direction === DIRECTION_COLUMN) {\n yStep = itemHeight + itemsSpacing;\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 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 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) { return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _nonIterableRest$1(); }\nfunction _nonIterableRest$1() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit$1(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles$1(arr) { if (Array.isArray(arr)) return arr; }\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 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 };\n","import 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 if (min === 'auto') {\n minValue = stacked === true ? values.minStacked : values.min;\n }\n var maxValue = max;\n if (max === 'auto') {\n maxValue = stacked === true ? values.maxStacked : values.max;\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};\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 if (sign === undefined) {\n sign = Math.sign(v);\n } else if (Math.sign(v) !== sign) {\n hasMixedSign = true;\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 var minValue = min;\n if (min === 'auto') {\n minValue = values.min;\n }\n var maxValue = max;\n if (max === 'auto') {\n maxValue = values.max;\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};\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};\nvar pointScalePropTypes = {\n type: PropTypes.oneOf(['point']).isRequired\n};\n\nvar _precisionCutOffsByTy;\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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);\nvar createPrecisionMethod = function createPrecisionMethod(precision) {\n return function (date) {\n precisionCutOffsByType[precision].forEach(function (cutOff) {\n cutOff(date);\n });\n return date;\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 if (min === 'auto') {\n minValue = values.min;\n } else if (format !== 'native') {\n minValue = normalize(min);\n }\n var maxValue = max;\n if (max === 'auto') {\n maxValue = values.max;\n } else if (format !== 'native') {\n maxValue = normalize(max);\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};\nvar timeScalePropTypes = {\n type: PropTypes.oneOf(['time']).isRequired,\n format: PropTypes.string,\n precision: PropTypes.oneOf(timePrecisions)\n};\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } return target; }\nfunction _defineProperty$1(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar getOtherAxis = function getOtherAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n};\nvar compareValues = function compareValues(a, b) {\n return a === b;\n};\nvar compareDateValues = function compareDateValues(a, b) {\n return a.getTime() === b.getTime();\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 var xy = generateSeriesXY(series, xScaleSpec, yScaleSpec);\n if (xScaleSpec.stacked === true) {\n stackX(yScaleSpec.type, xy, series);\n }\n if (yScaleSpec.stacked === true) {\n stackY(xScaleSpec.type, xy, series);\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};\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};\nvar generateSeriesXY = function generateSeriesXY(series, xScaleSpec, yScaleSpec) {\n return {\n x: generateSeriesAxis(series, 'x', xScaleSpec),\n y: generateSeriesAxis(series, 'y', yScaleSpec)\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 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 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 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 return {\n all: all,\n min: min,\n max: max\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 if (datum !== undefined) {\n value = datum.data[axis];\n if (value !== null) {\n var head = last(stack);\n if (head === undefined) {\n stackValue = value;\n } else if (head !== null) {\n stackValue = head + value;\n }\n }\n datum.data[\"\".concat(axis, \"Stacked\")] = stackValue;\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};\nvar stackX = function stackX(xy, otherType, series) {\n return stackAxis('x', xy, otherType, series);\n};\nvar stackY = function stackY(xy, otherType, series) {\n return stackAxis('y', xy, otherType, series);\n};\nvar computeAxisSlices = function computeAxisSlices(axis, data) {\n var otherAxis = getOtherAxis(axis);\n return data[otherAxis].all.map(function (v) {\n var _slice;\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 if (datum !== undefined) {\n slice.data.push(_objectSpread({}, datum, {\n serie: serie\n }));\n }\n });\n slice.data.reverse();\n return slice;\n });\n};\nvar computeXSlices = function computeXSlices(data) {\n return computeAxisSlices('x', data);\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)]);\n\nexport { compareDateValues, compareValues, computeAxisSlices, computeScale, computeXSlices, computeXYScalesForSeries, computeYSlices, generateSeriesAxis, generateSeriesXY, getOtherAxis, linearScale, linearScalePropTypes, logScale, logScalePropTypes, pointScale, pointScalePropTypes, scalePropType, stackAxis, stackX, stackY, timeScale, timeScalePropTypes };\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';\n\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 (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 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 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 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 return React.createElement(Container, {\n isInteractive: false,\n theme: theme,\n animate: false\n }, function () {\n return (\n 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 return layerById[layer];\n }))\n );\n });\n};\nVoronoi.propTypes = VoronoiPropTypes;\nvar Voronoi$1 = enhance(Voronoi);\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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};\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};\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) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\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 var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n currentIndex = _useState2[0],\n setCurrentIndex = _useState2[1];\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 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 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 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 if (currentIndex !== index) setCurrentIndex(index);\n node && onMouseMove && onMouseMove(node, event);\n }, [getIndexAndNodeFromEvent, setCurrentIndex]);\n var handleMouseLeave = useCallback(function (event) {\n setCurrentIndex(null);\n if (onMouseLeave) {\n var previousNode;\n if (currentIndex !== undefined && currentIndex !== null) {\n previousNode = nodes[currentIndex];\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 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};\nMesh.propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n nodes: PropTypes.array.isRequired,\n x: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n y: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n onMouseEnter: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onClick: PropTypes.func,\n debug: PropTypes.bool.isRequired\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};\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 };\n","import 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};\nLinePointTooltip.propTypes = {\n point: PropTypes.object.isRequired\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};\nChip.propTypes = {\n color: PropTypes.string.isRequired\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};\nSliceTooltip.propTypes = {\n slice: PropTypes.object.isRequired,\n axis: PropTypes.oneOf(['x', 'y']).isRequired\n};\nvar SliceTooltip$1 = memo(SliceTooltip);\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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};\nvar LinePropTypes = _objectSpread({}, commonPropTypes, {\n enablePointLabel: PropTypes.bool.isRequired,\n useMesh: PropTypes.bool.isRequired\n}, motionPropTypes, defsPropTypes);\nvar LineCanvasPropTypes = _objectSpread({\n pixelRatio: PropTypes.number.isRequired\n}, commonPropTypes);\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};\nvar LineDefaultProps = _objectSpread({}, commonDefaultProps, {\n enablePointLabel: false,\n useMesh: false,\n animate: true,\n motionStiffness: 90,\n motionDamping: 15,\n defs: [],\n fill: []\n});\nvar LineCanvasDefaultProps = _objectSpread({}, commonDefaultProps, {\n pixelRatio: global.window && global.window.devicePixelRatio ? global.window.devicePixelRatio : 1\n});\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } return target; }\nfunction _defineProperty$1(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\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};\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};\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};\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 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 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 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 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};\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 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 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 var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\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 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};\nAreas.propTypes = {\n areaGenerator: PropTypes.func.isRequired,\n areaOpacity: PropTypes.number.isRequired,\n areaBlendMode: blendModePropType.isRequired,\n lines: PropTypes.arrayOf(PropTypes.object).isRequired\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 var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\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 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};\nLinesItem.propTypes = {\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n points: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n y: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n })),\n lineGenerator: PropTypes.func.isRequired,\n color: PropTypes.string.isRequired,\n thickness: PropTypes.number.isRequired\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};\nLines.propTypes = {\n lines: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n color: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(PropTypes.shape({\n data: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.instanceOf(Date)]),\n y: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.instanceOf(Date)])\n }).isRequired,\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }).isRequired\n })).isRequired\n })).isRequired,\n lineWidth: PropTypes.number.isRequired,\n lineGenerator: PropTypes.func.isRequired\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 var _useTooltip = useTooltip(),\n showTooltipFromEvent = _useTooltip.showTooltipFromEvent,\n hideTooltip = _useTooltip.hideTooltip;\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};\nSlicesItem.propTypes = {\n slice: PropTypes.object.isRequired,\n axis: PropTypes.oneOf(['x', 'y']).isRequired,\n debug: PropTypes.bool.isRequired,\n height: PropTypes.number.isRequired,\n tooltip: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n isCurrent: PropTypes.bool.isRequired,\n setCurrent: PropTypes.func.isRequired\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};\nSlices.propTypes = {\n slices: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]).isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n points: PropTypes.arrayOf(PropTypes.object).isRequired\n })).isRequired,\n axis: PropTypes.oneOf(['x', 'y']).isRequired,\n debug: PropTypes.bool.isRequired,\n height: PropTypes.number.isRequired,\n tooltip: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired,\n current: PropTypes.object,\n setCurrent: PropTypes.func.isRequired\n};\nvar Slices$1 = memo(Slices);\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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 var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\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 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 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};\nPoints.propTypes = {\n points: PropTypes.arrayOf(PropTypes.object),\n symbol: PropTypes.func,\n size: PropTypes.number.isRequired,\n color: PropTypes.func.isRequired,\n borderWidth: PropTypes.number.isRequired,\n borderColor: PropTypes.func.isRequired,\n enableLabel: PropTypes.bool.isRequired,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.func]).isRequired,\n labelYOffset: PropTypes.number\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 var _useTooltip = useTooltip(),\n showTooltipAt = _useTooltip.showTooltipAt,\n hideTooltip = _useTooltip.hideTooltip;\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};\nMesh.propTypes = {\n points: PropTypes.arrayOf(PropTypes.object).isRequired,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n margin: PropTypes.object.isRequired,\n setCurrent: PropTypes.func.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 debug: PropTypes.bool.isRequired\n};\nvar Mesh$1 = memo(Mesh);\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } return target; }\nfunction _defineProperty$2(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }\nfunction _slicedToArray$1(arr, i) { return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _nonIterableRest$1(); }\nfunction _nonIterableRest$1() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit$1(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles$1(arr) { if (Array.isArray(arr)) return arr; }\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 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 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 var theme = useTheme();\n var getPointColor = useInheritedColor(pointColor, theme);\n var getPointBorderColor = useInheritedColor(pointBorderColor, theme);\n var _useState = useState(null),\n _useState2 = _slicedToArray$1(_useState, 2),\n currentPoint = _useState2[0],\n setCurrentPoint = _useState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray$1(_useState3, 2),\n currentSlice = _useState4[0],\n setCurrentSlice = _useState4[1];\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 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 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 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 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 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 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 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 return layerById[layer];\n }));\n};\nLine.propTypes = LinePropTypes;\nLine.defaultProps = LineDefaultProps;\nvar Line$1 = withContainer(Line);\n\nfunction _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }\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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$3(target, key, source[key]); }); } return target; }\nfunction _defineProperty$3(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _slicedToArray$2(arr, i) { return _arrayWithHoles$2(arr) || _iterableToArrayLimit$2(arr, i) || _nonIterableRest$2(); }\nfunction _nonIterableRest$2() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit$2(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles$2(arr) { if (Array.isArray(arr)) return arr; }\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 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 var theme = useTheme();\n var _useState = useState(null),\n _useState2 = _slicedToArray$2(_useState, 2),\n currentPoint = _useState2[0],\n setCurrentPoint = _useState2[1];\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 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 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 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 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 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 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 if (pointBorderWidth > 0) {\n ctx.strokeStyle = point.borderColor;\n ctx.lineWidth = pointBorderWidth;\n ctx.stroke();\n }\n });\n }\n if (layer === 'mesh' && debugMesh === true) {\n renderVoronoiToCanvas(ctx, voronoi);\n if (currentPoint) {\n renderVoronoiCellToCanvas(ctx, voronoi, currentPoint.index);\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 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 var _useTooltip = useTooltip(),\n showTooltipFromEvent = _useTooltip.showTooltipFromEvent,\n hideTooltip = _useTooltip.hideTooltip;\n var handleMouseHover = useCallback(function (event) {\n var point = getPointFromMouseEvent(event);\n setCurrentPoint(point);\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};\nLineCanvas.propTypes = LineCanvasPropTypes;\nLineCanvas.defaultProps = LineCanvasDefaultProps;\nvar LineCanvas$1 = withContainer(LineCanvas);\n\nfunction _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }\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 };\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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\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 var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n dimensions = _useState2[0],\n setDimensions = _useState2[1];\n var theme = useTheme();\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n var x = Math.round(position[0]);\n var y = Math.round(position[1]);\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 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 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 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.propTypes = {\n position: PropTypes.array.isRequired,\n anchor: PropTypes.oneOf(['top', 'right', 'bottom', 'left', 'center']).isRequired,\n children: PropTypes.node.isRequired\n};\nTooltipWrapper.defaultProps = {\n anchor: 'top'\n};\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } return target; }\nfunction _defineProperty$1(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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.propTypes = {\n size: PropTypes.number.isRequired,\n color: PropTypes.string.isRequired,\n style: PropTypes.object.isRequired\n};\nChip.defaultProps = {\n size: 12,\n style: {}\n};\nChip.displayName = 'Chip';\n\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 if (typeof renderContent === 'function') {\n content = renderContent();\n } else {\n var value = _value;\n if (formatValue !== undefined && value !== undefined) {\n value = formatValue(value);\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 return React.createElement(\"div\", {\n style: theme.tooltip.container\n }, content);\n});\nBasicTooltip.displayName = 'BasicTooltip';\nBasicTooltip.propTypes = {\n id: PropTypes.node.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n enableChip: PropTypes.bool.isRequired,\n color: PropTypes.string,\n format: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n renderContent: PropTypes.func\n};\nBasicTooltip.defaultProps = {\n enableChip: false\n};\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } return target; }\nfunction _defineProperty$2(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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 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 return React.createElement(\"div\", {\n style: theme.tooltip.container\n }, content);\n});\nTableTooltip.propTypes = {\n title: PropTypes.node,\n rows: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.node)).isRequired,\n renderContent: PropTypes.func\n};\nTableTooltip.displayName = 'TableTooltip';\n\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) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$3(target, key, source[key]); }); } return target; }\nfunction _defineProperty$3(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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 var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n var style = useMemo(function () {\n return _objectSpread$3({}, theme.crosshair.line, {\n pointerEvents: 'none'\n });\n }, [theme.crosshair.line]);\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 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';\nCrosshairLine.propTypes = {\n x0: PropTypes.number.isRequired,\n x1: PropTypes.number.isRequired,\n y0: PropTypes.number.isRequired,\n y1: PropTypes.number.isRequired\n};\n\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 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 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.propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n type: crosshairPropTypes.type.isRequired\n};\nCrosshair.defaultProps = {\n type: 'cross'\n};\n\nvar tooltipContext = createContext();\n\nfunction _slicedToArray$1(arr, i) { return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _nonIterableRest$1(); }\nfunction _nonIterableRest$1() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit$1(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles$1(arr) { if (Array.isArray(arr)) return arr; }\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 var showTooltipAt = useCallback(function (content, _ref, anchor) {\n var _ref2 = _slicedToArray$1(_ref, 2),\n x = _ref2[0],\n y = _ref2[1];\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 if (anchor === 'left' || anchor === 'right') {\n if (x < bounds.width / 2) anchor = 'right';else anchor = 'left';\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};\nvar useTooltip = function useTooltip() {\n return useContext(tooltipContext);\n};\n\nexport { BasicTooltip, Chip, Crosshair, TableTooltip, TooltipWrapper, crosshairPropTypes, crosshairTypes, tooltipContext, useTooltip, useTooltipHandlers };\n"],"names":["t0","Date","t1","newInterval","floori","offseti","count","field","interval","date","arguments","length","floor","ceil","round","d0","d1","offset","step","Math","range","start","stop","previous","push","filter","test","setTime","end","every","isFinite","d","millisecond","k","durationSecond","durationMinute","durationHour","durationDay","durationWeek","second","getMilliseconds","getUTCSeconds","minute","getSeconds","getMinutes","utcMinute","setUTCSeconds","getUTCMinutes","hour","getHours","utcHour","setUTCMinutes","getUTCHours","day","setHours","setDate","getDate","getTimezoneOffset","utcDay","setUTCHours","setUTCDate","getUTCDate","weekday","i","getDay","sunday","monday","tuesday","wednesday","thursday","friday","saturday","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","month","setMonth","getMonth","getFullYear","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","year","setFullYear","utcYear","setUTCFullYear","_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","centerScale","scale","bandwidth","timeByType","timeMillisecond","utcMillisecond","timeSecond","utcSecond","timeMinute","timeHour","timeDay","week","timeWeek","utcWeek","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","timeMonth","timeYear","timeTypes","keys","timeIntervalRegexp","RegExp","concat","join","getScaleTicks","spec","Array","isArray","ticks","undefined","isNumber","matches","match","timeType","useUTC","Number","Error","domain","computeCartesianTicks","_ref","translate","axis","ticksPosition","tickValues","tickSize","tickPadding","tickRotation","_ref$engine","engine","values","textProps","textPropsByEngine","position","line","lineX","lineY","text","textX","textY","textAlign","align","center","textBaseline","baseline","x","y","top","bottom","right","left","map","target","source","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","forEach","_objectSpread","getFormatter","format$1","type","f","timeFormat","format","computeGridLines","_ref2","lines","width","height","_values","lineValues","lineCount","v","x1","x2","y1","y2","axisPropTypes","PropTypes","renderTick","legend","legendPosition","legendOffset","axisPropType","_extends","assign","prototype","hasOwnProperty","call","apply","this","AxisTick","_value","opacity","rotate","_onClick","onClick","textAnchor","theme","useTheme","gStyle","React","transform","e","style","dominantBaseline","propTypes","isRequired","defaultProps","AxisTick$1","memo","_extends$1","_objectSpread$1","_defineProperty$1","willEnter","willLeave","springConfig","_ref$style","spring","val","Axis","_useMotionConfig","useMotionConfig","animate","formatValue","useMemo","_computeCartesianTick","legendNode","legendX","legendY","legendRotation","tick","tickIndex","Motion","xy","TransitionMotion","styles","data","interpolatedStyles","Fragment","_ref3","props","Axis$1","_extends$2","positions","Axes","xScale","yScale","axes","isXAxis","Axes$1","GridLine","GridLine$1","_extends$3","GridLines","lineWillEnter","lineWillLeave","interpolatedStyle","grid","GridLines$1","Grid","xValues","yValues","xLines","yLines","Grid$1","degreesToRadians","degrees","PI","_defineProperty$2","positions$1","renderAxesToCanvas","ctx","_ref$x","_ref$y","_ref$tickSize","_ref$tickPadding","_ref$tickRotation","_ref$legendPosition","_ref$legendOffset","save","font","fontSize","fontFamily","strokeWidth","lineWidth","lineCap","strokeStyle","stroke","beginPath","moveTo","lineTo","fillStyle","fill","fillText","restore","_textAlign","fontWeight","renderAxisToCanvas","_objectSpread$2","renderGridLinesToCanvas","noteX","abs","noteY","noteWidth","noteTextOffset","note","defaultPositionAccessor","item","AnnotationNote","datum","annotations","outlineWidth","strokeLinejoin","outlineColor","omit","_defineProperty$3","displayName","AnnotationLink","points","isOutline","link","_objectSpread$3","strokeLinecap","path","slice","point","SmartMotion","interpolated","_objectSpread$4","_defineProperty$4","CircleAnnotationOutline","size","outline","cx","cy","r","_objectSpread$5","_defineProperty$5","DotAnnotationOutline","symbol","_objectSpread$6","_defineProperty$6","RectAnnotationOutline","Annotation","containerWidth","containerHeight","computed","computedNoteX","computedNoteY","_ref2$noteWidth","_ref2$noteTextOffset","isPlainObject","computedX","computedY","angle","sourceX","sourceY","targetX","targetY","atan2","absoluteAngleDegrees","radiansToDegrees","getLinkAngle","positionFromAngle","eighth","noteLineX","computeAnnotation","useComputedAnnotation","getIndexedScale","getIndex","padding","scaleBand","rangeRound","_toConsumableArray","arr","arr2","_arrayWithoutHoles","iter","Symbol","iterator","toString","from","_iterableToArray","TypeError","_nonIterableSpread","getGroupedScale","_minValue","_maxValue","allValues","reduce","acc","entry","maxValue","max","minValue","min","scaleLinear","generateGroupedBars","options","layout","reverse","getColor","_ref$padding","_ref$innerPadding","innerPadding","barWidth","yRef","getY","getHeight","bars","index","barHeight","barData","id","indexValue","color","generateVerticalGroupedBars","_ref2$padding","_ref2$innerPadding","xRef","getX","getWidth","generateHorizontalGroupedBars","getStackedScale","flattenDepth","generateStackedBars","stackedData","stack","stackOffsetDiverging","stackedDataItem","generateHorizontalStackedBars","BarItem","borderRadius","borderWidth","borderColor","label","shouldRenderLabel","labelColor","showTooltip","hideTooltip","onMouseEnter","onMouseLeave","tooltip","rx","ry","onMouseMove","labels","pointerEvents","getTooltipLabel","tooltipFormat","BarItem$1","compose","withPropsOnChange","event","BasicTooltip","enableChip","renderContent","bind","pure","enhance","BarPropTypes","indexBy","layers","groupMode","axisTop","axisRight","axisBottom","axisLeft","enableGridX","enableGridY","gridXValues","gridYValues","barComponent","enableLabel","labelFormat","getLabel","labelSkipWidth","labelSkipHeight","labelTextColor","inheritedColorPropType","getLabelTextColor","labelLinkColor","getLabelLinkColor","colors","ordinalColorsPropType","colorBy","colorPropertyAccessorPropType","defsPropTypes","getBorderColor","isInteractive","tooltipLabel","legends","dataFrom","LegendPropShape","pixelRatio","BarDefaultProps","scheme","defs","noop","global","window","devicePixelRatio","enhance$1","Component","withTheme","withDimensions","withMotion","getOrdinalColorScale","getAccessorFor","getInheritedColorGenerator","_ref4","_ref5","getLabelGenerator","_ref6","_ref7","BarAnnotations","motionStiffness","motionDamping","boundAnnotations","items","getPosition","getDimensions","_ref$getPosition","annotation","dimensions","bindAnnotations","useAnnotations","bar","innerWidth","innerHeight","barWillEnterHorizontal","barWillEnterVertical","Bar","margin","outerWidth","outerHeight","markers","result","motionProps","damping","stiffness","barWillLeaveVertical","barWillLeaveHorizontal","boundDefs","bindDefs","dataKey","targetKey","Container","commonProps","baseProps","layerById","CartesianMarkers","legendData","direction","_uniqBy","getLegendDataForIndexes","getLegendDataForKeys","getLegendData","BoxLegendSvg","SvgWrapper","layer","Bar$1","setDisplayName","_typeof","constructor","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","next","done","err","_iterableToArrayLimit","_nonIterableRest","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_possibleConstructorReturn","self","_assertThisInitialized","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","ReferenceError","_setPrototypeOf","p","findNodeUnderCursor","nodes","find","node","isCursorInRect","BarCanvas","_Component","_getPrototypeOf2","_this","_len","args","_key","_this$props","_getRelativeCursor2","getRelativeCursor","surface","_this$props2","_getRelativeCursor4","protoProps","subClass","superClass","create","_inherits","getContext","draw","_this2","background","fillRect","legendDataForKeys","legendDataForIndexes","renderLegendToCanvas","itemTextColor","symbolSize","rect","_this3","_this$props3","ref","handleMouseHover","handleMouseLeave","handleClick","ResponsiveBar","ResponsiveWrapper","categoricalColorSchemes","nivo","category10","schemeCategory10","accent","schemeAccent","dark2","schemeDark2","paired","schemePaired","pastel1","schemePastel1","pastel2","schemePastel2","set1","schemeSet1","set2","schemeSet2","set3","schemeSet3","categoricalColorSchemeIds","divergingColorSchemes","brown_blueGreen","schemeBrBG","purpleRed_green","schemePRGn","pink_yellowGreen","schemePiYG","purple_orange","schemePuOr","red_blue","schemeRdBu","red_grey","schemeRdGy","red_yellow_blue","schemeRdYlBu","red_yellow_green","schemeRdYlGn","spectral","schemeSpectral","divergingColorSchemeIds","sequentialColorSchemes","blues","schemeBlues","greens","schemeGreens","greys","schemeGreys","oranges","schemeOranges","purples","schemePurples","reds","schemeReds","blue_green","schemeBuGn","blue_purple","schemeBuPu","green_blue","schemeGnBu","orange_red","schemeOrRd","purple_blue_green","schemePuBuGn","purple_blue","schemePuBu","purple_red","schemePuRd","red_purple","schemeRdPu","yellow_green_blue","schemeYlGnBu","yellow_green","schemeYlGn","yellow_orange_brown","schemeYlOrBr","yellow_orange_red","schemeYlOrRd","sequentialColorSchemeIds","colorSchemes","colorSchemeIds","colorInterpolators","interpolateBrBG","interpolatePRGn","interpolatePiYG","interpolatePuOr","interpolateRdBu","interpolateRdGy","interpolateRdYlBu","interpolateRdYlGn","interpolateSpectral","interpolateBlues","interpolateGreens","interpolateGreys","interpolateOranges","interpolatePurples","interpolateReds","viridis","interpolateViridis","inferno","interpolateInferno","magma","interpolateMagma","plasma","interpolatePlasma","warm","interpolateWarm","cool","interpolateCool","cubehelixDefault","interpolateCubehelixDefault","interpolateBuGn","interpolateBuPu","interpolateGnBu","interpolateOrRd","interpolatePuBuGn","interpolatePuBu","interpolatePuRd","interpolateRdPu","interpolateYlGnBu","interpolateYlGn","interpolateYlOrBr","interpolateYlOrRd","rainbow","interpolateRainbow","sinebow","interpolateSinebow","instruction","identity","getIdentity","get","scaleOrdinal","generator","includes","_scale","_generator","isDivergingColorScheme","_scale2","_generator2","isSequentialColorScheme","_scale3","_generator3","useOrdinalColorScale","inheritedColor","themeColor","modifiers","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_loop","_modifier","modifierType","amount","brighter","darker","_iterator","return","modify","rgb","useInheritedColor","parentColor","axisThemePropType","strokeDasharray","gridThemePropType","legendsThemePropType","labelsThemePropType","dotsThemePropType","markersThemePropType","crosshairPropType","annotationsPropType","defaultTheme","textColor","dots","crosshair","lineColor","lineStrokeWidth","container","boxShadow","basic","whiteSpace","display","alignItems","chip","marginRight","table","tableCell","strokeOpacity","fontProps","extendDefaultTheme","customTheme","merge","prop","set","quantizeColorScales","BrBG","last","PRGn","PiYG","PuOr","RdBu","RdGy","RdYlBu","RdYlGn","BuGn","BuPu","GnBu","OrRd","PuBuGn","PuBu","PuRd","RdPu","YlGnBu","YlGn","YlOrBr","YlOrRd","quantizeColorScalesKeys","curvePropMapping","basis","curveBasis","basisClosed","curveBasisClosed","basisOpen","curveBasisOpen","bundle","curveBundle","cardinal","curveCardinal","cardinalClosed","curveCardinalClosed","cardinalOpen","curveCardinalOpen","catmullRom","curveCatmullRom","catmullRomClosed","curveCatmullRomClosed","catmullRomOpen","curveCatmullRomOpen","linear","curveLinear","linearClosed","curveLinearClosed","monotoneX","curveMonotoneX","monotoneY","curveMonotoneY","natural","curveNatural","curveStep","stepAfter","curveStepAfter","stepBefore","curveStepBefore","curvePropKeys","closedCurvePropKeys","c","endsWith","areaCurvePropKeys","without","lineCurvePropKeys","lineCurvePropType","curveFromProp","stackOrderPropMapping","ascending","stackOrderAscending","descending","stackOrderDescending","insideOut","stackOrderInsideOut","none","stackOrderNone","stackOrderReverse","stackOrderPropKeys","stackOffsetPropMapping","expand","stackOffsetExpand","diverging","stackOffsetNone","silhouette","stackOffsetSilhouette","wiggle","stackOffsetWiggle","stackOffsetPropKeys","treeMapTilePropMapping","binary","treemapBinary","dice","treemapDice","treemapSlice","sliceDice","treemapSliceDice","squarify","treemapSquarify","resquarify","treemapResquarify","treeMapTilePropKeys","marginPropType","motionPropTypes","blendModePropType","defaultMargin","useDimensions","partialMargin","useValueFormatter","indexOf","themeContext","createContext","defaultPartialTheme","ThemeProvider","_ref$theme","partialTheme","children","usePartialTheme","Provider","useContext","enhancedSpring","config","interpolator","interpolate","_PureComponent","rest","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","resolvedStyle","currentStepValues","newInters","stepValues","stepInterpolators","oldValues","newValues","_key2","percentage","PureComponent","motionConfigContext","MotionConfigProvider","containerStyle","tooltipStyle","zIndex","content","_ref$isInteractive","containerEl","useRef","_useState2","useState","isTooltipVisible","tooltipContent","state","setState","useCallback","bounds","current","getBoundingClientRect","clientX","clientY","tooltipContext","_typeof$1","_classCallCheck$1","_defineProperties$1","_possibleConstructorReturn$1","_assertThisInitialized$1","_getPrototypeOf$1","_setPrototypeOf$1","_inherits$1","_this$state$dimension","shouldRender","Measure","onResize","contentRect","measureRef","LinearGradient","stopColor","stopOpacity","gradientTypes","linearGradient","PatternDots","stagger","fullSize","radius","halfPadding","patternUnits","radians","distance","cos","sin","absAngle","svg","canvas","PatternLines","_spacing","spacing","_rotation","rotation","PatternSquares","patternTypes","patternDots","patternLines","patternSquares","_objectSpread$8","_defineProperty$9","defsMapping","Defs","definitions","def","_objectWithoutPropertiesLoose$1","_objectWithoutProperties$1","Defs$1","xmlns","role","DotsItemSymbol","DotsItemSymbol$1","DotsItem","labelTextAnchor","labelYOffset","DotsItem$1","CartesianMarkersItem","lineStyle","textStyle","legendOffsetX","legendOffsetY","legendOrientation","legendProps","offsetX","offsetY","orientation","computeLabel","CartesianMarkersItem$1","marker","CartesianMarkers$1","setPropTypes","nextProps","isEqual","_label","formatter","getRawLabel","isFunction","directive","boundSpring","partialRight","_defineProperty$c","_ref$srcKey","srcKey","_ref$destKey","destKey","_typeof$2","_classCallCheck$2","_defineProperties$2","_possibleConstructorReturn$2","_assertThisInitialized$2","_getPrototypeOf$2","_setPrototypeOf$2","containerStyle$1","Container$1","_ref$renderWrapper","renderWrapper","_useTooltipHandlers","useTooltipHandlers","showTooltipAt","showTooltipFromEvent","tooltipPosition","tooltipAnchor","TooltipWrapper","anchor","withContainer","WrappedComponent","_class","_inherits$2","childProps","_objectWithoutPropertiesLoose$2","_objectWithoutProperties$2","cursorX","cursorY","el","_objectSpread$9","_defineProperty$d","_toConsumableArray$1","_arrayWithoutHoles$1","_iterableToArray$1","_nonIterableSpread$1","gradientKeys","patternKeys","isMatchingDef","predicate","pick","rules","_ref$colorKey","colorKey","_ref$targetKey","generatedIds","_rules$i","nodeColor","inheritedId","_nodeColor","_inheritedId","inheritedDef","colorStop","DIRECTION_ROW","DIRECTION_COLUMN","ANCHOR_TOP","ANCHOR_TOP_RIGHT","ANCHOR_RIGHT","ANCHOR_BOTTOM_RIGHT","ANCHOR_BOTTOM","ANCHOR_BOTTOM_LEFT","ANCHOR_LEFT","ANCHOR_TOP_LEFT","ANCHOR_CENTER","DIRECTION_LEFT_TO_RIGHT","DIRECTION_RIGHT_TO_LEFT","DIRECTION_TOP_TO_BOTTOM","DIRECTION_BOTTOM_TO_TOP","legendEffectPropType","on","itemBackground","itemOpacity","symbolBorderWidth","symbolBorderColor","symbolPropTypes","symbolShape","symbolSpacing","interactivityPropTypes","datumPropType","translateX","translateY","itemsSpacing","itemWidth","itemHeight","itemDirection","effects","zeroPadding","computeDimensions","_padding","itemCount","horizontalPadding","verticalPadding","computePositionFromAnchor","computeItemLayout","symbolX","symbolY","labelX","labelY","labelAnchor","labelAlignment","justify","symbolPropTypes$1","symbolDefaultProps","SymbolCircle","SymbolDiamond","SymbolSquare","_typeof$3","_classCallCheck$3","_defineProperties$3","_possibleConstructorReturn$3","_assertThisInitialized$3","_getPrototypeOf$3","_setPrototypeOf$3","SymbolTriangle","_inherits$3","symbolByShape","circle","diamond","square","triangle","LegendSvgItem","_Symbol","setStyle","handleMouseEnter","_style","effect","_style2","_computeItemLayout","some","handler","cursor","userSelect","_defineProperty$7","LegendSvg","xStep","yStep","_defineProperty$8","_objectSpread$7","_computeDimensions","_computePositionFromA","textPropsMapping","middle","hanging","central","_ref$translateX","_ref$translateY","_ref$justify","_ref$itemsSpacing","_ref$itemDirection","_ref$itemTextColor","_ref$symbolSize","_ref$symbolSpacing","itemX","itemY","_precisionCutOffsByTy","linearScalePropTypes","stacked","logScalePropTypes","base","pointScalePropTypes","TIME_PRECISION_MILLISECOND","TIME_PRECISION_SECOND","TIME_PRECISION_MINUTE","TIME_PRECISION_HOUR","TIME_PRECISION_MONTH","TIME_PRECISION_YEAR","timePrecisions","precisionCutOffs","setMilliseconds","setSeconds","setMinutes","precisionCutOffsByType","createDateNormalizer","_ref$format","_ref$precision","precision","_ref$useUTC","precisionFn","cutOff","createPrecisionMethod","parseTime","utcParse","timeParse","timeScalePropTypes","compareValues","a","b","compareDateValues","getTime","computeScale","_ref$min","_ref$max","_ref$stacked","_ref$reverse","minStacked","maxStacked","linearScale","scalePoint","all","pointScale","normalize","scaleUtc","scaleTime","timeScale","sign","_ref$base","hasZero","hasMixedSign","scaleLog","nice","logScale","generateSeriesAxis","series","scaleSpec","_ref$getValue","getValue","_ref$setValue","setValue","serie","parseFloat","uniq","sortBy","uniqBy","sort","stackAxis","otherType","otherAxis","getOtherAxis","compare","isDate","stackValue","head","scalePropType","VoronoiPropTypes","xDomain","yDomain","enableLinks","linkLineWidth","linkLineColor","enableCells","cellLineWidth","cellLineColor","enablePoints","pointSize","pointColor","delaunay","voronoi","Voronoi","context","renderBounds","links","render","cells","renderPoints","scaledPoints","Delaunay","getAccessor","useVoronoiMesh","debug","points2d","computeMeshPoints","computeMesh","Mesh","elementRef","currentIndex","setCurrentIndex","_useVoronoiMesh","voronoiPath","getIndexAndNodeFromEvent","_getIndexAndNodeFromE2","handleMouseMove","_getIndexAndNodeFromE4","previousNode","_getIndexAndNodeFromE6","renderCell","LinePointTooltip","xFormatted","yFormatted","serieColor","PointTooltip","Chip","SliceTooltip","TableTooltip","rows","serieId","SliceTooltip$1","commonPropTypes","xFormat","yFormat","curve","pointSymbol","pointBorderWidth","pointBorderColor","enableArea","areaOpacity","areaBlendMode","areaBaselineValue","debugMesh","enableSlices","debugSlices","sliceTooltip","enableCrosshair","crosshairType","crosshairPropTypes","LinePropTypes","enablePointLabel","useMesh","LineCanvasPropTypes","commonDefaultProps","LineDefaultProps","LineCanvasDefaultProps","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","_series","generateSeriesXY","stackX","stackY","xStacked","yStacked","computeXYScalesForSeries","rawSeries","usePoints","slices","Map","has","entries","x0","slicePoints","prevSlice","nextSlice","y0","_map","sliceHeight","_ref8","useSlices","lineGenerator","defined","useLineGenerator","areaGenerator","area","useAreaGenerator","Areas","areaColor","fillOpacity","mixBlendMode","Areas$1","LinesItem","thickness","LinesItem$1","Lines","Lines$1","SlicesItem","isCurrent","setCurrent","_useTooltip","useTooltip","SlicesItem$1","Slices","Slices$1","Points","mappedPoints","Points$1","Mesh$2","Mesh$1","_slicedToArray$1","_arrayWithHoles$1","_iterableToArrayLimit$1","_nonIterableRest$1","Line","pointLabel","pointLabelFormat","pointLabelYOffset","_useDimensions","_useLine","currentPoint","setCurrentPoint","_useState4","currentSlice","setCurrentSlice","areas","mesh","Crosshair","Line$1","ResponsiveLine","_slicedToArray$2","_arrayWithHoles$2","_iterableToArrayLimit$2","_nonIterableRest$2","LineCanvas","canvasEl","useEffect","globalAlpha","arc","renderVoronoiToCanvas","renderVoronoiCellToCanvas","getPointFromMouseEvent","pointIndex","setDimensions","client","animatedPosition","isNaN","String","tableStyle","borderCollapse","title","row","column","j","CrosshairLine","xLine","yLine","isVisible"],"sourceRoot":""}