{"version":3,"file":"LineChart-DiBufR9L.cjs","sources":["../node_modules/recharts/es6/shape/Dot.js","../node_modules/recharts/es6/component/ActivePoints.js","../node_modules/recharts/es6/state/selectors/lineSelectors.js","../node_modules/recharts/es6/cartesian/Line.js","../node_modules/recharts/es6/chart/LineChart.js"],"sourcesContent":["function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/**\n * @fileOverview Dot\n */\nimport * as React from 'react';\nimport { clsx } from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nexport var Dot = props => {\n  var {\n    cx,\n    cy,\n    r,\n    className\n  } = props;\n  var layerClass = clsx('recharts-dot', className);\n  if (cx === +cx && cy === +cy && r === +r) {\n    return /*#__PURE__*/React.createElement(\"circle\", _extends({}, filterProps(props, false), adaptEventHandlers(props), {\n      className: layerClass,\n      cx: cx,\n      cy: cy,\n      r: r\n    }));\n  }\n  return null;\n};","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport * as React from 'react';\nimport { cloneElement, isValidElement } from 'react';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { Dot } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { useTooltipAxis } from '../context/useTooltipAxis';\nimport { findEntryInArray, isNullish } from '../util/DataUtils';\nimport { useAppSelector } from '../state/hooks';\nimport { selectActiveLabel, selectActiveTooltipIndex } from '../state/selectors/tooltipSelectors';\nvar renderActivePoint = _ref => {\n  var {\n    point,\n    childIndex,\n    mainColor,\n    activeDot,\n    dataKey\n  } = _ref;\n  if (activeDot === false || point.x == null || point.y == null) {\n    return null;\n  }\n  var dotProps = _objectSpread(_objectSpread({\n    index: childIndex,\n    dataKey,\n    cx: point.x,\n    cy: point.y,\n    r: 4,\n    fill: mainColor !== null && mainColor !== void 0 ? mainColor : 'none',\n    strokeWidth: 2,\n    stroke: '#fff',\n    payload: point.payload,\n    value: point.value\n  }, filterProps(activeDot, false)), adaptEventHandlers(activeDot));\n  var dot;\n  if (/*#__PURE__*/isValidElement(activeDot)) {\n    // @ts-expect-error element cloning does not have types\n    dot = /*#__PURE__*/cloneElement(activeDot, dotProps);\n  } else if (typeof activeDot === 'function') {\n    dot = activeDot(dotProps);\n  } else {\n    dot = /*#__PURE__*/React.createElement(Dot, dotProps);\n  }\n  return /*#__PURE__*/React.createElement(Layer, {\n    className: \"recharts-active-dot\"\n  }, dot);\n};\nexport function ActivePoints(_ref2) {\n  var {\n    points,\n    mainColor,\n    activeDot,\n    itemDataKey\n  } = _ref2;\n  var tooltipAxis = useTooltipAxis();\n  var activeTooltipIndex = useAppSelector(selectActiveTooltipIndex);\n  var activeLabel = useAppSelector(selectActiveLabel);\n  if (!activeTooltipIndex) {\n    return null;\n  }\n  var activePoint;\n  var tooltipAxisDataKey = tooltipAxis.dataKey;\n  if (tooltipAxisDataKey && !tooltipAxis.allowDuplicatedCategory) {\n    var specifiedKey = typeof tooltipAxisDataKey === 'function' ? point => tooltipAxisDataKey(point.payload) : \"payload.\".concat(tooltipAxisDataKey);\n    activePoint = findEntryInArray(points, specifiedKey, activeLabel);\n  } else {\n    activePoint = points === null || points === void 0 ? void 0 : points[Number(activeTooltipIndex)];\n  }\n  if (isNullish(activePoint)) {\n    return null;\n  }\n  return renderActivePoint({\n    point: activePoint,\n    childIndex: Number(activeTooltipIndex),\n    mainColor,\n    dataKey: itemDataKey,\n    activeDot\n  });\n}","import { createSelector } from 'reselect';\nimport { computeLinePoints } from '../../cartesian/Line';\nimport { selectChartDataWithIndexesIfNotInPanorama } from './dataSelectors';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { selectAxisWithScale, selectTicksOfGraphicalItem, selectUnfilteredCartesianItems } from './axisSelectors';\nimport { getBandSizeOfAxis, isCategoricalAxis } from '../../util/ChartUtils';\nvar selectXAxisWithScale = (state, xAxisId, _yAxisId, isPanorama) => selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\nvar selectXAxisTicks = (state, xAxisId, _yAxisId, isPanorama) => selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\nvar selectYAxisWithScale = (state, _xAxisId, yAxisId, isPanorama) => selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\nvar selectYAxisTicks = (state, _xAxisId, yAxisId, isPanorama) => selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\nvar selectBandSize = createSelector([selectChartLayout, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks], (layout, xAxis, yAxis, xAxisTicks, yAxisTicks) => {\n  if (isCategoricalAxis(layout, 'xAxis')) {\n    return getBandSizeOfAxis(xAxis, xAxisTicks, false);\n  }\n  return getBandSizeOfAxis(yAxis, yAxisTicks, false);\n});\nvar pickLineSettings = (_state, _xAxisId, _yAxisId, _isPanorama, lineSettings) => lineSettings;\n\n/*\n * There is a race condition problem because we read some data from props and some from the state.\n * The state is updated through a dispatch and is one render behind,\n * and so we have this weird one tick render where the displayedData in one selector have the old dataKey\n * but the new dataKey in another selector.\n *\n * A proper fix is to either move everything into the state, or read the dataKey always from props\n * - but this is a smaller change.\n */\nvar selectSynchronisedLineSettings = createSelector([selectUnfilteredCartesianItems, pickLineSettings], (graphicalItems, lineSettingsFromProps) => {\n  if (graphicalItems.some(cgis => cgis.type === 'line' && lineSettingsFromProps.dataKey === cgis.dataKey && lineSettingsFromProps.data === cgis.data)) {\n    /*\n     * now, at least one of the lines has the same dataKey as the one in props.\n     * Is this a perfect match? Maybe not because we could theoretically have two different Lines with the same dataKey\n     * and the same stackId and the same data but still different lines, yes,\n     * but the chances of that happening are ... lowish.\n     *\n     * A proper fix would be to store the lineSettings in a state too, and compare references directly instead of enumerating the properties.\n     */\n    return lineSettingsFromProps;\n  }\n  return undefined;\n});\nexport var selectLinePoints = createSelector([selectChartLayout, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks, selectSynchronisedLineSettings, selectBandSize, selectChartDataWithIndexesIfNotInPanorama], (layout, xAxis, yAxis, xAxisTicks, yAxisTicks, lineSettings, bandSize, _ref) => {\n  var {\n    chartData,\n    dataStartIndex,\n    dataEndIndex\n  } = _ref;\n  if (lineSettings == null || xAxis == null || yAxis == null || xAxisTicks == null || yAxisTicks == null || xAxisTicks.length === 0 || yAxisTicks.length === 0 || bandSize == null) {\n    return undefined;\n  }\n  var {\n    dataKey,\n    data\n  } = lineSettings;\n  var displayedData;\n  if (data != null && data.length > 0) {\n    displayedData = data;\n  } else {\n    displayedData = chartData === null || chartData === void 0 ? void 0 : chartData.slice(dataStartIndex, dataEndIndex + 1);\n  }\n  if (displayedData == null) {\n    return undefined;\n  }\n  return computeLinePoints({\n    layout,\n    xAxis,\n    yAxis,\n    xAxisTicks,\n    yAxisTicks,\n    dataKey,\n    bandSize,\n    displayedData\n  });\n});","var _excluded = [\"type\", \"layout\", \"connectNulls\", \"needClip\"],\n  _excluded2 = [\"activeDot\", \"animateNewValues\", \"animationBegin\", \"animationDuration\", \"animationEasing\", \"connectNulls\", \"dot\", \"hide\", \"isAnimationActive\", \"label\", \"legendType\", \"xAxisId\", \"yAxisId\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n// eslint-disable-next-line max-classes-per-file\nimport * as React from 'react';\nimport { Component, PureComponent, useCallback, useMemo, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { Curve } from '../shape/Curve';\nimport { Dot } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { LabelList } from '../component/LabelList';\nimport { SetErrorBarPreferredDirection } from './ErrorBar';\nimport { interpolateNumber, isNullish, uniqueId } from '../util/DataUtils';\nimport { filterProps, isClipDot } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfLine, getTooltipNameProp, getValueByDataKey } from '../util/ChartUtils';\nimport { ActivePoints } from '../component/ActivePoints';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { CartesianGraphicalItemContext, SetErrorBarContext } from '../context/CartesianGraphicalItemContext';\nimport { GraphicalItemClipPath, useNeedsClip } from './GraphicalItemClipPath';\nimport { useChartLayout, useOffset } from '../context/chartLayoutContext';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { selectLinePoints } from '../state/selectors/lineSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { SetLegendPayload } from '../state/SetLegendPayload';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { Animate } from '../animation/Animate';\n\n/**\n * Internal props, combination of external props + defaultProps + private Recharts state\n */\n\n/**\n * External props, intended for end users to fill in\n */\n\n/**\n * Because of naming conflict, we are forced to ignore certain (valid) SVG attributes.\n */\n\nvar computeLegendPayloadFromAreaData = props => {\n  var {\n    dataKey,\n    name,\n    stroke,\n    legendType,\n    hide\n  } = props;\n  return [{\n    inactive: hide,\n    dataKey,\n    type: legendType,\n    color: stroke,\n    value: getTooltipNameProp(name, dataKey),\n    payload: props\n  }];\n};\nfunction getTooltipEntrySettings(props) {\n  var {\n    dataKey,\n    data,\n    stroke,\n    strokeWidth,\n    fill,\n    name,\n    hide,\n    unit\n  } = props;\n  return {\n    dataDefinedOnItem: data,\n    positions: undefined,\n    settings: {\n      stroke,\n      strokeWidth,\n      fill,\n      dataKey,\n      nameKey: undefined,\n      name: getTooltipNameProp(name, dataKey),\n      hide,\n      type: props.tooltipType,\n      color: props.stroke,\n      unit\n    }\n  };\n}\nvar generateSimpleStrokeDasharray = (totalLength, length) => {\n  return \"\".concat(length, \"px \").concat(totalLength - length, \"px\");\n};\nfunction repeat(lines, count) {\n  var linesUnit = lines.length % 2 !== 0 ? [...lines, 0] : lines;\n  var result = [];\n  for (var i = 0; i < count; ++i) {\n    result = [...result, ...linesUnit];\n  }\n  return result;\n}\nvar getStrokeDasharray = (length, totalLength, lines) => {\n  var lineLength = lines.reduce((pre, next) => pre + next);\n\n  // if lineLength is 0 return the default when no strokeDasharray is provided\n  if (!lineLength) {\n    return generateSimpleStrokeDasharray(totalLength, length);\n  }\n  var count = Math.floor(length / lineLength);\n  var remainLength = length % lineLength;\n  var restLength = totalLength - length;\n  var remainLines = [];\n  for (var i = 0, sum = 0; i < lines.length; sum += lines[i], ++i) {\n    if (sum + lines[i] > remainLength) {\n      remainLines = [...lines.slice(0, i), remainLength - sum];\n      break;\n    }\n  }\n  var emptyLines = remainLines.length % 2 === 0 ? [0, restLength] : [restLength];\n  return [...repeat(lines, count), ...remainLines, ...emptyLines].map(line => \"\".concat(line, \"px\")).join(', ');\n};\nfunction renderDotItem(option, props) {\n  var dotItem;\n  if (/*#__PURE__*/React.isValidElement(option)) {\n    dotItem = /*#__PURE__*/React.cloneElement(option, props);\n  } else if (typeof option === 'function') {\n    dotItem = option(props);\n  } else {\n    var className = clsx('recharts-line-dot', typeof option !== 'boolean' ? option.className : '');\n    dotItem = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n      className: className\n    }));\n  }\n  return dotItem;\n}\nfunction shouldRenderDots(points, dot) {\n  if (points == null) {\n    return false;\n  }\n  if (dot) {\n    return true;\n  }\n  return points.length === 1;\n}\nfunction Dots(_ref) {\n  var {\n    clipPathId,\n    points,\n    props\n  } = _ref;\n  var {\n    dot,\n    dataKey,\n    needClip\n  } = props;\n  if (!shouldRenderDots(points, dot)) {\n    return null;\n  }\n  var clipDot = isClipDot(dot);\n  var lineProps = filterProps(props, false);\n  var customDotProps = filterProps(dot, true);\n  var dots = points.map((entry, i) => {\n    var dotProps = _objectSpread(_objectSpread(_objectSpread({\n      key: \"dot-\".concat(i),\n      r: 3\n    }, lineProps), customDotProps), {}, {\n      index: i,\n      cx: entry.x,\n      cy: entry.y,\n      dataKey,\n      value: entry.value,\n      payload: entry.payload,\n      points\n    });\n    return renderDotItem(dot, dotProps);\n  });\n  var dotsProps = {\n    clipPath: needClip ? \"url(#clipPath-\".concat(clipDot ? '' : 'dots-').concat(clipPathId, \")\") : null\n  };\n  return /*#__PURE__*/React.createElement(Layer, _extends({\n    className: \"recharts-line-dots\",\n    key: \"dots\"\n  }, dotsProps), dots);\n}\nfunction StaticCurve(_ref2) {\n  var {\n    clipPathId,\n    pathRef,\n    points,\n    strokeDasharray,\n    props,\n    showLabels\n  } = _ref2;\n  var {\n      type,\n      layout,\n      connectNulls,\n      needClip\n    } = props,\n    others = _objectWithoutProperties(props, _excluded);\n  var curveProps = _objectSpread(_objectSpread({}, filterProps(others, true)), {}, {\n    fill: 'none',\n    className: 'recharts-line-curve',\n    clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null,\n    points,\n    type,\n    layout,\n    connectNulls,\n    strokeDasharray: strokeDasharray !== null && strokeDasharray !== void 0 ? strokeDasharray : props.strokeDasharray\n  });\n  return /*#__PURE__*/React.createElement(React.Fragment, null, (points === null || points === void 0 ? void 0 : points.length) > 1 && /*#__PURE__*/React.createElement(Curve, _extends({}, curveProps, {\n    pathRef: pathRef\n  })), /*#__PURE__*/React.createElement(Dots, {\n    points: points,\n    clipPathId: clipPathId,\n    props: props\n  }), showLabels && LabelList.renderCallByParent(props, points));\n}\nfunction getTotalLength(mainCurve) {\n  try {\n    return mainCurve && mainCurve.getTotalLength && mainCurve.getTotalLength() || 0;\n  } catch (_unused) {\n    return 0;\n  }\n}\nfunction CurveWithAnimation(_ref3) {\n  var {\n    clipPathId,\n    props,\n    pathRef,\n    previousPointsRef,\n    longestAnimatedLengthRef\n  } = _ref3;\n  var {\n    points,\n    strokeDasharray,\n    isAnimationActive,\n    animationBegin,\n    animationDuration,\n    animationEasing,\n    animateNewValues,\n    width,\n    height,\n    onAnimationEnd,\n    onAnimationStart\n  } = props;\n  var prevPoints = previousPointsRef.current;\n  var animationId = useAnimationId(props, 'recharts-line-');\n  var [isAnimating, setIsAnimating] = useState(false);\n  var handleAnimationEnd = useCallback(() => {\n    if (typeof onAnimationEnd === 'function') {\n      onAnimationEnd();\n    }\n    setIsAnimating(false);\n  }, [onAnimationEnd]);\n  var handleAnimationStart = useCallback(() => {\n    if (typeof onAnimationStart === 'function') {\n      onAnimationStart();\n    }\n    setIsAnimating(true);\n  }, [onAnimationStart]);\n  var totalLength = getTotalLength(pathRef.current);\n  /*\n   * Here we want to detect if the length animation has been interrupted.\n   * For that we keep a reference to the furthest length that has been animated.\n   *\n   * And then, to keep things smooth, we add to it the current length that is being animated right now.\n   *\n   * If we did Math.max then it makes the length animation \"pause\" but we want to keep it smooth\n   * so in case we have some \"leftover\" length from the previous animation we add it to the current length.\n   *\n   * This is not perfect because the animation changes speed due to easing. The default easing is 'ease' which is not linear\n   * and makes it stand out. But it's good enough I suppose.\n   * If we want to fix it then we need to keep track of multiple animations and their easing and timings.\n   *\n   * If you want to see this in action, try to change the dataKey of the line chart while the initial animation is running.\n   * The Line begins with zero length and slowly grows to the full length. While this growth is in progress,\n   * change the dataKey and the Line will continue growing from where it has grown so far.\n   */\n  var startingPoint = longestAnimatedLengthRef.current;\n  return /*#__PURE__*/React.createElement(Animate, {\n    begin: animationBegin,\n    duration: animationDuration,\n    isActive: isAnimationActive,\n    easing: animationEasing,\n    from: {\n      t: 0\n    },\n    to: {\n      t: 1\n    },\n    onAnimationEnd: handleAnimationEnd,\n    onAnimationStart: handleAnimationStart,\n    key: animationId\n  }, _ref4 => {\n    var {\n      t\n    } = _ref4;\n    var interpolator = interpolateNumber(startingPoint, totalLength + startingPoint);\n    var curLength = Math.min(interpolator(t), totalLength);\n    var currentStrokeDasharray;\n    if (strokeDasharray) {\n      var lines = \"\".concat(strokeDasharray).split(/[,\\s]+/gim).map(num => parseFloat(num));\n      currentStrokeDasharray = getStrokeDasharray(curLength, totalLength, lines);\n    } else {\n      currentStrokeDasharray = generateSimpleStrokeDasharray(totalLength, curLength);\n    }\n    if (prevPoints) {\n      var prevPointsDiffFactor = prevPoints.length / points.length;\n      var stepData = t === 1 ? points : points.map((entry, index) => {\n        var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n        if (prevPoints[prevPointIndex]) {\n          var prev = prevPoints[prevPointIndex];\n          var interpolatorX = interpolateNumber(prev.x, entry.x);\n          var interpolatorY = interpolateNumber(prev.y, entry.y);\n          return _objectSpread(_objectSpread({}, entry), {}, {\n            x: interpolatorX(t),\n            y: interpolatorY(t)\n          });\n        }\n\n        // magic number of faking previous x and y location\n        if (animateNewValues) {\n          var _interpolatorX = interpolateNumber(width * 2, entry.x);\n          var _interpolatorY = interpolateNumber(height / 2, entry.y);\n          return _objectSpread(_objectSpread({}, entry), {}, {\n            x: _interpolatorX(t),\n            y: _interpolatorY(t)\n          });\n        }\n        return _objectSpread(_objectSpread({}, entry), {}, {\n          x: entry.x,\n          y: entry.y\n        });\n      });\n      // eslint-disable-next-line no-param-reassign\n      previousPointsRef.current = stepData;\n      return /*#__PURE__*/React.createElement(StaticCurve, {\n        props: props,\n        points: stepData,\n        clipPathId: clipPathId,\n        pathRef: pathRef,\n        showLabels: !isAnimating,\n        strokeDasharray: currentStrokeDasharray\n      });\n    }\n\n    /*\n     * Here it is important to wait a little bit with updating the previousPointsRef\n     * before the animation has a time to initialize.\n     * If we set the previous pointsRef immediately, we set it before the Legend height it calculated\n     * and before pathRef is set.\n     * If that happens, the Line will re-render again after Legend had reported its height\n     * which will start a new animation with the previous points as the starting point\n     * which gives the effect of the Line animating slightly upwards (where the animation distance equals the Legend height).\n     * Waiting for t > 0 is indirect but good enough to ensure that the Legend height is calculated and animation works properly.\n     *\n     * Total length similarly is calculated from the pathRef. We should not update the previousPointsRef\n     * before the pathRef is set, otherwise we will have a wrong total length.\n     */\n    if (t > 0 && totalLength > 0) {\n      // eslint-disable-next-line no-param-reassign\n      previousPointsRef.current = points;\n      /*\n       * totalLength is set from a ref and is not updated in the first tick of the animation.\n       * It defaults to zero which is exactly what we want here because we want to grow from zero,\n       * however the same happens when the data change.\n       *\n       * In that case we want to remember the previous length and continue from there, and only animate the shape.\n       *\n       * Therefore the totalLength > 0 check.\n       *\n       * The Animate is about to fire handleAnimationStart which will update the state\n       * and cause a re-render and read a new proper totalLength which will be used in the next tick\n       * and update the longestAnimatedLengthRef.\n       */\n      // eslint-disable-next-line no-param-reassign\n      longestAnimatedLengthRef.current = curLength;\n    }\n    return /*#__PURE__*/React.createElement(StaticCurve, {\n      props: props,\n      points: points,\n      clipPathId: clipPathId,\n      pathRef: pathRef,\n      showLabels: !isAnimating,\n      strokeDasharray: currentStrokeDasharray\n    });\n  });\n}\nfunction RenderCurve(_ref5) {\n  var {\n    clipPathId,\n    props\n  } = _ref5;\n  var {\n    points,\n    isAnimationActive\n  } = props;\n  var previousPointsRef = useRef(null);\n  var longestAnimatedLengthRef = useRef(0);\n  var pathRef = useRef(null);\n  var prevPoints = previousPointsRef.current;\n  if (isAnimationActive && points && points.length && prevPoints !== points) {\n    return /*#__PURE__*/React.createElement(CurveWithAnimation, {\n      props: props,\n      clipPathId: clipPathId,\n      previousPointsRef: previousPointsRef,\n      longestAnimatedLengthRef: longestAnimatedLengthRef,\n      pathRef: pathRef\n    });\n  }\n  return /*#__PURE__*/React.createElement(StaticCurve, {\n    props: props,\n    points: points,\n    clipPathId: clipPathId,\n    pathRef: pathRef,\n    showLabels: true\n  });\n}\nvar errorBarDataPointFormatter = (dataPoint, dataKey) => {\n  return {\n    x: dataPoint.x,\n    y: dataPoint.y,\n    value: dataPoint.value,\n    // @ts-expect-error getValueByDataKey does not validate the output type\n    errorVal: getValueByDataKey(dataPoint.payload, dataKey)\n  };\n};\nclass LineWithState extends Component {\n  constructor() {\n    super(...arguments);\n    _defineProperty(this, \"id\", uniqueId('recharts-line-'));\n  }\n  render() {\n    var _filterProps;\n    var {\n      hide,\n      dot,\n      points,\n      className,\n      xAxisId,\n      yAxisId,\n      top,\n      left,\n      width,\n      height,\n      id,\n      needClip,\n      layout\n    } = this.props;\n    if (hide) {\n      return null;\n    }\n    var layerClass = clsx('recharts-line', className);\n    var clipPathId = isNullish(id) ? this.id : id;\n    var {\n      r = 3,\n      strokeWidth = 2\n    } = (_filterProps = filterProps(dot, false)) !== null && _filterProps !== void 0 ? _filterProps : {\n      r: 3,\n      strokeWidth: 2\n    };\n    var clipDot = isClipDot(dot);\n    var dotSize = r * 2 + strokeWidth;\n    return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Layer, {\n      className: layerClass\n    }, needClip && /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(GraphicalItemClipPath, {\n      clipPathId: clipPathId,\n      xAxisId: xAxisId,\n      yAxisId: yAxisId\n    }), !clipDot && /*#__PURE__*/React.createElement(\"clipPath\", {\n      id: \"clipPath-dots-\".concat(clipPathId)\n    }, /*#__PURE__*/React.createElement(\"rect\", {\n      x: left - dotSize / 2,\n      y: top - dotSize / 2,\n      width: width + dotSize,\n      height: height + dotSize\n    }))), /*#__PURE__*/React.createElement(RenderCurve, {\n      props: this.props,\n      clipPathId: clipPathId\n    }), /*#__PURE__*/React.createElement(SetErrorBarPreferredDirection, {\n      direction: layout === 'horizontal' ? 'y' : 'x'\n    }, /*#__PURE__*/React.createElement(SetErrorBarContext, {\n      xAxisId: xAxisId,\n      yAxisId: yAxisId,\n      data: points,\n      dataPointFormatter: errorBarDataPointFormatter,\n      errorBarOffset: 0\n    }, this.props.children))), /*#__PURE__*/React.createElement(ActivePoints, {\n      activeDot: this.props.activeDot,\n      points: points,\n      mainColor: this.props.stroke,\n      itemDataKey: this.props.dataKey\n    }));\n  }\n}\nvar defaultLineProps = {\n  activeDot: true,\n  animateNewValues: true,\n  animationBegin: 0,\n  animationDuration: 1500,\n  animationEasing: 'ease',\n  connectNulls: false,\n  dot: true,\n  fill: '#fff',\n  hide: false,\n  isAnimationActive: !Global.isSsr,\n  label: false,\n  legendType: 'line',\n  stroke: '#3182bd',\n  strokeWidth: 1,\n  xAxisId: 0,\n  yAxisId: 0\n};\nfunction LineImpl(props) {\n  var _resolveDefaultProps = resolveDefaultProps(props, defaultLineProps),\n    {\n      activeDot,\n      animateNewValues,\n      animationBegin,\n      animationDuration,\n      animationEasing,\n      connectNulls,\n      dot,\n      hide,\n      isAnimationActive,\n      label,\n      legendType,\n      xAxisId,\n      yAxisId\n    } = _resolveDefaultProps,\n    everythingElse = _objectWithoutProperties(_resolveDefaultProps, _excluded2);\n  var {\n    needClip\n  } = useNeedsClip(xAxisId, yAxisId);\n  var {\n    height,\n    width,\n    left,\n    top\n  } = useOffset();\n  var layout = useChartLayout();\n  var isPanorama = useIsPanorama();\n  var lineSettings = useMemo(() => ({\n    dataKey: props.dataKey,\n    data: props.data\n  }), [props.dataKey, props.data]);\n  var points = useAppSelector(state => selectLinePoints(state, xAxisId, yAxisId, isPanorama, lineSettings));\n  if (layout !== 'horizontal' && layout !== 'vertical') {\n    // Cannot render Line in an unsupported layout\n    return null;\n  }\n  return /*#__PURE__*/React.createElement(LineWithState, _extends({}, everythingElse, {\n    connectNulls: connectNulls,\n    dot: dot,\n    activeDot: activeDot,\n    animateNewValues: animateNewValues,\n    animationBegin: animationBegin,\n    animationDuration: animationDuration,\n    animationEasing: animationEasing,\n    isAnimationActive: isAnimationActive,\n    hide: hide,\n    label: label,\n    legendType: legendType,\n    xAxisId: xAxisId,\n    yAxisId: yAxisId,\n    points: points,\n    layout: layout,\n    height: height,\n    width: width,\n    left: left,\n    top: top,\n    needClip: needClip\n  }));\n}\nexport function computeLinePoints(_ref6) {\n  var {\n    layout,\n    xAxis,\n    yAxis,\n    xAxisTicks,\n    yAxisTicks,\n    dataKey,\n    bandSize,\n    displayedData\n  } = _ref6;\n  return displayedData.map((entry, index) => {\n    // @ts-expect-error getValueByDataKey does not validate the output type\n    var value = getValueByDataKey(entry, dataKey);\n    if (layout === 'horizontal') {\n      return {\n        x: getCateCoordinateOfLine({\n          axis: xAxis,\n          ticks: xAxisTicks,\n          bandSize,\n          entry,\n          index\n        }),\n        y: isNullish(value) ? null : yAxis.scale(value),\n        value,\n        payload: entry\n      };\n    }\n    return {\n      x: isNullish(value) ? null : xAxis.scale(value),\n      y: getCateCoordinateOfLine({\n        axis: yAxis,\n        ticks: yAxisTicks,\n        bandSize,\n        entry,\n        index\n      }),\n      value,\n      payload: entry\n    };\n  });\n}\nexport class Line extends PureComponent {\n  render() {\n    // Report all props to Redux store first, before calling any hooks, to avoid circular dependencies.\n    return /*#__PURE__*/React.createElement(CartesianGraphicalItemContext, {\n      type: \"line\",\n      data: this.props.data,\n      xAxisId: this.props.xAxisId,\n      yAxisId: this.props.yAxisId,\n      zAxisId: 0,\n      dataKey: this.props.dataKey\n      // line doesn't stack\n      ,\n      stackId: undefined,\n      hide: this.props.hide,\n      barSize: undefined\n    }, /*#__PURE__*/React.createElement(SetLegendPayload, {\n      legendPayload: computeLegendPayloadFromAreaData(this.props)\n    }), /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {\n      fn: getTooltipEntrySettings,\n      args: this.props\n    }), /*#__PURE__*/React.createElement(LineImpl, this.props));\n  }\n}\n_defineProperty(Line, \"displayName\", 'Line');\n_defineProperty(Line, \"defaultProps\", defaultLineProps);","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { CartesianChart } from './CartesianChart';\nvar allowedTooltipTypes = ['axis'];\nexport var LineChart = /*#__PURE__*/forwardRef((props, ref) => {\n  return /*#__PURE__*/React.createElement(CartesianChart, {\n    chartName: \"LineChart\",\n    defaultTooltipEventType: \"axis\",\n    validateTooltipEventTypes: allowedTooltipTypes,\n    tooltipPayloadSearcher: arrayTooltipSearcher,\n    categoricalChartProps: props,\n    ref: ref\n  });\n});"],"names":["_extends","n","e","t","r","Dot","props","cx","cy","className","layerClass","clsx","React","filterProps","adaptEventHandlers","ownKeys","o","_objectSpread","_defineProperty","_toPropertyKey","i","_toPrimitive","renderActivePoint","_ref","point","childIndex","mainColor","activeDot","dataKey","dotProps","dot","isValidElement","cloneElement","Layer","ActivePoints","_ref2","points","itemDataKey","tooltipAxis","useTooltipAxis","activeTooltipIndex","useAppSelector","selectActiveTooltipIndex","activeLabel","selectActiveLabel","activePoint","tooltipAxisDataKey","specifiedKey","findEntryInArray","isNullish","selectXAxisWithScale","state","xAxisId","_yAxisId","isPanorama","selectAxisWithScale","selectXAxisTicks","selectTicksOfGraphicalItem","selectYAxisWithScale","_xAxisId","yAxisId","selectYAxisTicks","selectBandSize","createSelector","selectChartLayout","layout","xAxis","yAxis","xAxisTicks","yAxisTicks","isCategoricalAxis","getBandSizeOfAxis","pickLineSettings","_state","_isPanorama","lineSettings","selectSynchronisedLineSettings","selectUnfilteredCartesianItems","graphicalItems","lineSettingsFromProps","cgis","selectLinePoints","selectChartDataWithIndexesIfNotInPanorama","bandSize","chartData","dataStartIndex","dataEndIndex","data","displayedData","computeLinePoints","_excluded","_excluded2","_objectWithoutProperties","_objectWithoutPropertiesLoose","computeLegendPayloadFromAreaData","name","stroke","legendType","hide","getTooltipNameProp","getTooltipEntrySettings","strokeWidth","fill","unit","generateSimpleStrokeDasharray","totalLength","length","repeat","lines","count","linesUnit","result","getStrokeDasharray","lineLength","pre","next","remainLength","restLength","remainLines","sum","emptyLines","line","renderDotItem","option","dotItem","shouldRenderDots","Dots","clipPathId","needClip","clipDot","isClipDot","lineProps","customDotProps","dots","entry","dotsProps","StaticCurve","pathRef","strokeDasharray","showLabels","type","connectNulls","others","curveProps","Curve","LabelList","getTotalLength","mainCurve","CurveWithAnimation","_ref3","previousPointsRef","longestAnimatedLengthRef","isAnimationActive","animationBegin","animationDuration","animationEasing","animateNewValues","width","height","onAnimationEnd","onAnimationStart","prevPoints","animationId","useAnimationId","isAnimating","setIsAnimating","useState","handleAnimationEnd","useCallback","handleAnimationStart","startingPoint","Animate","_ref4","interpolator","interpolateNumber","curLength","currentStrokeDasharray","num","prevPointsDiffFactor","stepData","index","prevPointIndex","prev","interpolatorX","interpolatorY","_interpolatorX","_interpolatorY","RenderCurve","_ref5","useRef","errorBarDataPointFormatter","dataPoint","getValueByDataKey","LineWithState","Component","uniqueId","_filterProps","top","left","id","dotSize","GraphicalItemClipPath","SetErrorBarPreferredDirection","SetErrorBarContext","defaultLineProps","Global","LineImpl","_resolveDefaultProps","resolveDefaultProps","label","everythingElse","useNeedsClip","useOffset","useChartLayout","useIsPanorama","useMemo","_ref6","value","getCateCoordinateOfLine","Line","PureComponent","CartesianGraphicalItemContext","SetLegendPayload","SetTooltipEntrySettings","allowedTooltipTypes","LineChart","forwardRef","ref","CartesianChart","arrayTooltipSearcher"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}