harshapitla/stackoverflow
0
1{"version":3,"file":"static/js/851.8f820803.chunk.js","mappings":"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","sources":["../node_modules/recharts/es6/state/selectors/rootPropsSelectors.js","../node_modules/recharts/es6/state/selectors/combiners/combineAxisRangeWithReverse.js","../node_modules/recharts/es6/util/LogUtils.js","../node_modules/recharts/es6/util/PolarUtils.js","../node_modules/recharts/es6/state/selectors/combiners/combineActiveLabel.js","../node_modules/recharts/es6/context/tooltipPortalContext.js","../node_modules/es-toolkit/compat/last.js","../node_modules/recharts/es6/state/selectors/numberDomainEqualityCheck.js","../node_modules/es-toolkit/dist/compat/util/toString.js","../node_modules/recharts/es6/util/Events.js","../node_modules/recharts/es6/synchronisation/syncSelectors.js","../node_modules/recharts/es6/synchronisation/useChartSynchronisation.js","../node_modules/recharts/es6/shape/Sector.js","../node_modules/recharts/es6/state/hooks.js","../node_modules/recharts/es6/animation/configUpdate.js","../node_modules/recharts/es6/animation/easing.js","../node_modules/recharts/es6/animation/timeoutController.js","../node_modules/recharts/es6/animation/createDefaultAnimationManager.js","../node_modules/recharts/es6/animation/AnimationManager.js","../node_modules/recharts/es6/animation/useAnimationManager.js","../node_modules/recharts/es6/animation/JavascriptAnimate.js","../node_modules/es-toolkit/dist/compat/predicate/isObject.js","../node_modules/recharts/es6/cartesian/CartesianAxis.js","../node_modules/recharts/es6/util/YAxisUtils.js","../node_modules/recharts/es6/component/responsiveContainerUtils.js","../node_modules/recharts/es6/component/ResponsiveContainer.js","../node_modules/es-toolkit/dist/compat/predicate/isArrayLike.js","../node_modules/es-toolkit/dist/compat/function/debounce.js","../node_modules/recharts/es6/state/selectors/combiners/combineActiveTooltipIndex.js","../node_modules/es-toolkit/dist/compat/util/toPath.js","../node_modules/recharts/es6/state/optionsSlice.js","../node_modules/redux-thunk/dist/redux-thunk.mjs","../node_modules/@reduxjs/toolkit/src/createDraftSafeSelector.ts","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","../node_modules/@reduxjs/toolkit/src/getDefaultEnhancers.ts","../node_modules/@reduxjs/toolkit/src/configureStore.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","../node_modules/@reduxjs/toolkit/src/nanoid.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/exceptions.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/utils.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/combineSlices.ts","../node_modules/@reduxjs/toolkit/src/formatProdErrorMessage.ts","../node_modules/react-is/index.js","../node_modules/reselect/src/utils.ts","../node_modules/reselect/src/autotrackMemoize/proxy.ts","../node_modules/reselect/src/weakMapMemoize.ts","../node_modules/reselect/src/createSelectorCreator.ts","../node_modules/reselect/src/createStructuredSelector.ts","../node_modules/recharts/es6/util/getSliced.js","../node_modules/es-toolkit/dist/compat/predicate/isArrayLikeObject.js","../node_modules/es-toolkit/dist/compat/predicate/isMatchWith.js","../node_modules/recharts/es6/cartesian/XAxis.js","../node_modules/es-toolkit/dist/compat/array/sortBy.js","../node_modules/recharts/es6/state/selectors/selectTooltipEventType.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","../node_modules/recharts/es6/state/selectors/selectChartOffset.js","../node_modules/recharts/es6/state/selectors/selectPlotArea.js","../node_modules/recharts/es6/hooks.js","../node_modules/es-toolkit/dist/compat/_internal/isDeepKey.js","../node_modules/recharts/es6/state/selectors/combiners/combineCoordinateForDefaultIndex.js","../node_modules/recharts/es6/util/isWellBehavedNumber.js","../node_modules/recharts/es6/component/Label.js","../node_modules/es-toolkit/dist/compat/predicate/isPlainObject.js","../node_modules/recharts/es6/state/selectors/tooltipSelectors.js","../node_modules/recharts/es6/state/selectors/selectTooltipSettings.js","../node_modules/es-toolkit/dist/compat/util/iteratee.js","../node_modules/recharts/es6/state/tooltipSlice.js","../node_modules/es-toolkit/dist/compat/predicate/isSymbol.js","../node_modules/recharts/es6/state/legendSlice.js","../node_modules/recharts/es6/util/useAnimationId.js","../node_modules/@babel/runtime/helpers/objectSpread2.js","../node_modules/recharts/es6/zIndex/zIndexSelectors.js","../node_modules/es-toolkit/dist/compat/_internal/toKey.js","../node_modules/recharts/es6/util/excludeEventProps.js","../node_modules/recharts/es6/util/LRUCache.js","../node_modules/recharts/es6/util/DOMUtils.js","../node_modules/react-redux/src/utils/batch.ts","../node_modules/react-redux/src/utils/Subscription.ts","../node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.ts","../node_modules/react-redux/src/utils/hoistStatics.ts","../node_modules/react-redux/src/components/Context.ts","../node_modules/react-redux/src/components/Provider.tsx","../node_modules/react-redux/src/hooks/useSelector.ts","../node_modules/recharts/es6/state/selectors/selectActivePropsFromChartPointer.js","../node_modules/recharts/es6/util/getChartPointer.js","../node_modules/recharts/es6/state/mouseEventsMiddleware.js","../node_modules/recharts/es6/state/reduxDevtoolsJsonStringifyReplacer.js","../node_modules/recharts/es6/state/referenceElementsSlice.js","../node_modules/recharts/es6/state/brushSlice.js","../node_modules/recharts/es6/state/rootPropsSlice.js","../node_modules/recharts/es6/state/polarAxisSlice.js","../node_modules/recharts/es6/state/polarOptionsSlice.js","../node_modules/recharts/es6/state/keyboardEventsMiddleware.js","../node_modules/recharts/es6/state/externalEventsMiddleware.js","../node_modules/recharts/es6/state/selectors/touchSelectors.js","../node_modules/recharts/es6/state/touchEventsMiddleware.js","../node_modules/recharts/es6/state/errorBarSlice.js","../node_modules/recharts/es6/state/store.js","../node_modules/recharts/es6/state/RechartsStoreProvider.js","../node_modules/recharts/es6/context/chartDataContext.js","../node_modules/recharts/es6/state/ReportMainChartProps.js","../node_modules/recharts/es6/state/ReportChartProps.js","../node_modules/recharts/es6/container/Surface.js","../node_modules/recharts/es6/zIndex/ZIndexPortal.js","../node_modules/recharts/es6/container/RootSurface.js","../node_modules/recharts/es6/context/legendPortalContext.js","../node_modules/recharts/es6/chart/RechartsWrapper.js","../node_modules/recharts/es6/util/useReportScale.js","../node_modules/recharts/es6/container/ClipPathProvider.js","../node_modules/recharts/es6/chart/CategoricalChart.js","../node_modules/recharts/es6/chart/CartesianChart.js","../node_modules/recharts/es6/chart/BarChart.js","../node_modules/recharts/es6/component/DefaultTooltipContent.js","../node_modules/recharts/es6/util/tooltip/translate.js","../node_modules/recharts/es6/component/TooltipBoundingBox.js","../node_modules/recharts/es6/util/useElementOffset.js","../node_modules/recharts/es6/shape/Cross.js","../node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js","../node_modules/recharts/es6/util/cursor/getCursorPoints.js","../node_modules/recharts/es6/context/useTooltipAxis.js","../node_modules/recharts/es6/component/Cursor.js","../node_modules/recharts/es6/util/cursor/getCursorRectangle.js","../node_modules/recharts/es6/component/Tooltip.js","../node_modules/recharts/es6/util/payload/getUniqPayload.js","../node_modules/recharts/es6/component/Cell.js","../node_modules/recharts/es6/component/LabelList.js","../node_modules/recharts/es6/util/ReactUtils.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/recharts/es6/shape/Trapezoid.js","../node_modules/d3-shape/src/math.js","../node_modules/d3-shape/src/symbol/circle.js","../node_modules/d3-shape/src/symbol/cross.js","../node_modules/d3-shape/src/symbol/diamond.js","../node_modules/d3-shape/src/symbol/square.js","../node_modules/d3-shape/src/symbol/star.js","../node_modules/d3-shape/src/symbol/triangle.js","../node_modules/d3-shape/src/symbol/wye.js","../node_modules/d3-shape/src/symbol/asterisk.js","../node_modules/d3-shape/src/symbol/triangle2.js","../node_modules/recharts/es6/shape/Symbols.js","../node_modules/d3-shape/src/symbol.js","../node_modules/recharts/es6/util/ActiveShapeUtils.js","../node_modules/recharts/es6/util/BarUtils.js","../node_modules/recharts/es6/context/tooltipContext.js","../node_modules/recharts/es6/state/SetTooltipEntrySettings.js","../node_modules/recharts/es6/context/ErrorBarContext.js","../node_modules/recharts/es6/cartesian/GraphicalItemClipPath.js","../node_modules/recharts/es6/state/selectors/barSelectors.js","../node_modules/recharts/es6/state/SetLegendPayload.js","../node_modules/recharts/es6/context/RegisterGraphicalItemId.js","../node_modules/recharts/es6/state/SetGraphicalItem.js","../node_modules/recharts/es6/cartesian/Bar.js","../node_modules/recharts/es6/zIndex/getZIndexFromUnknown.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/es-toolkit/dist/predicate/isTypedArray.js","../node_modules/es-toolkit/dist/compat/_internal/isIterateeCall.js","../node_modules/es-toolkit/dist/compat/predicate/matches.js","../node_modules/d3-shape/src/constant.js","../node_modules/es-toolkit/compat/sortBy.js","../node_modules/recharts/es6/state/selectors/containerSelectors.js","../node_modules/redux/src/utils/formatProdErrorMessage.ts","../node_modules/redux/src/utils/symbol-observable.ts","../node_modules/redux/src/utils/actionTypes.ts","../node_modules/redux/src/utils/isPlainObject.ts","../node_modules/redux/src/createStore.ts","../node_modules/redux/src/combineReducers.ts","../node_modules/redux/src/compose.ts","../node_modules/redux/src/applyMiddleware.ts","../node_modules/redux/src/utils/isAction.ts","../node_modules/recharts/es6/context/PanoramaContext.js","../node_modules/recharts/es6/container/Layer.js","../node_modules/recharts/es6/util/ReduceCSSCalc.js","../node_modules/recharts/es6/component/Text.js","../node_modules/es-toolkit/dist/array/uniqBy.js","../node_modules/es-toolkit/compat/uniqBy.js","../node_modules/recharts/es6/shape/Rectangle.js","../node_modules/recharts/es6/state/selectors/selectTooltipAxisId.js","../node_modules/recharts/es6/util/stacks/getStackSeriesIdentifier.js","../node_modules/es-toolkit/dist/compat/_internal/isIndex.js","../node_modules/recharts/es6/util/Constants.js","../node_modules/recharts/es6/animation/util.js","../node_modules/es-toolkit/dist/predicate/isPrimitive.js","../node_modules/d3-shape/src/offset/none.js","../node_modules/d3-shape/src/order/none.js","../node_modules/d3-shape/src/stack.js","../node_modules/recharts/es6/util/ChartUtils.js","../node_modules/d3-shape/src/offset/expand.js","../node_modules/d3-shape/src/offset/silhouette.js","../node_modules/d3-shape/src/offset/wiggle.js","../node_modules/es-toolkit/dist/function/debounce.js","../node_modules/es-toolkit/dist/compat/util/toFinite.js","../node_modules/recharts/es6/state/selectors/combiners/combineTooltipInteractionState.js","../node_modules/es-toolkit/dist/compat/array/uniqBy.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/recharts/es6/state/selectors/combiners/combineTooltipPayload.js","../node_modules/recharts/es6/util/ShallowEqual.js","../node_modules/es-toolkit/dist/object/cloneDeep.js","../node_modules/es-toolkit/dist/compat/object/has.js","../node_modules/es-toolkit/dist/compat/array/orderBy.js","../node_modules/recharts/es6/state/selectors/dataSelectors.js","../node_modules/es-toolkit/dist/compat/function/throttle.js","../node_modules/recharts/es6/state/layoutSlice.js","../node_modules/es-toolkit/dist/compat/object/cloneDeepWith.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/d3-path/src/path.js","../node_modules/d3-shape/src/path.js","../node_modules/recharts/node_modules/immer/src/utils/env.ts","../node_modules/recharts/node_modules/immer/src/utils/errors.ts","../node_modules/recharts/node_modules/immer/src/utils/common.ts","../node_modules/recharts/node_modules/immer/src/utils/plugins.ts","../node_modules/recharts/node_modules/immer/src/core/scope.ts","../node_modules/recharts/node_modules/immer/src/core/finalize.ts","../node_modules/recharts/node_modules/immer/src/core/proxy.ts","../node_modules/recharts/node_modules/immer/src/core/immerClass.ts","../node_modules/recharts/node_modules/immer/src/core/current.ts","../node_modules/recharts/node_modules/immer/src/immer.ts","../node_modules/es-toolkit/dist/compat/_internal/getTag.js","../node_modules/recharts/es6/util/Global.js","../node_modules/recharts/es6/cartesian/YAxis.js","../node_modules/recharts/es6/state/selectors/selectTooltipState.js","../node_modules/recharts/es6/polar/defaultPolarAngleAxisProps.js","../node_modules/recharts/es6/polar/defaultPolarRadiusAxisProps.js","../node_modules/recharts/es6/state/selectors/polarAxisSelectors.js","../node_modules/recharts/es6/util/svgPropertiesNoEvents.js","../node_modules/recharts/es6/util/DataUtils.js","../node_modules/es-toolkit/dist/compat/predicate/isArguments.js","../node_modules/recharts/es6/util/resolveDefaultProps.js","../node_modules/es-toolkit/dist/array/last.js","../node_modules/es-toolkit/dist/object/cloneDeepWith.js","../node_modules/es-toolkit/dist/compat/_internal/getSymbols.js","../node_modules/recharts/es6/util/getActiveCoordinate.js","../node_modules/recharts/es6/state/selectors/selectors.js","../node_modules/d3-scale/src/init.js","../node_modules/internmap/src/index.js","../node_modules/d3-scale/src/ordinal.js","../node_modules/d3-scale/src/band.js","../node_modules/d3-array/src/range.js","../node_modules/d3-array/src/ticks.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/descending.js","../node_modules/d3-array/src/bisector.js","../node_modules/d3-array/src/number.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/basis.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/value.js","../node_modules/d3-interpolate/src/round.js","../node_modules/d3-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-scale/src/linear.js","../node_modules/d3-scale/src/identity.js","../node_modules/d3-scale/src/nice.js","../node_modules/d3-scale/src/log.js","../node_modules/d3-scale/src/symlog.js","../node_modules/d3-scale/src/pow.js","../node_modules/d3-scale/src/radial.js","../node_modules/d3-array/src/max.js","../node_modules/d3-array/src/min.js","../node_modules/d3-array/src/sort.js","../node_modules/d3-array/src/quickselect.js","../node_modules/d3-array/src/quantile.js","../node_modules/d3-scale/src/quantile.js","../node_modules/d3-scale/src/quantize.js","../node_modules/d3-scale/src/threshold.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-time/src/interval.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/ticks.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/d3-scale/src/time.js","../node_modules/d3-scale/src/utcTime.js","../node_modules/d3-scale/src/sequential.js","../node_modules/d3-scale/src/sequentialQuantile.js","../node_modules/d3-scale/src/diverging.js","../node_modules/d3-interpolate/src/piecewise.js","../node_modules/recharts/es6/util/scale/util/utils.js","../node_modules/recharts/es6/util/scale/util/arithmetic.js","../node_modules/recharts/es6/util/scale/getNiceTickValues.js","../node_modules/recharts/es6/state/selectors/pickAxisType.js","../node_modules/recharts/es6/state/selectors/pickAxisId.js","../node_modules/recharts/es6/state/selectors/axisSelectors.js","../node_modules/es-toolkit/dist/compat/util/toNumber.js","../node_modules/recharts/es6/util/CartesianUtils.js","../node_modules/recharts/es6/util/getEveryNthWithCondition.js","../node_modules/recharts/es6/util/TickUtils.js","../node_modules/recharts/es6/cartesian/getTicks.js","../node_modules/recharts/es6/cartesian/getEquidistantTicks.js","../node_modules/recharts/es6/state/selectors/selectTooltipAxisType.js","../node_modules/recharts/es6/state/selectors/combiners/combineDisplayedStackedData.js","../node_modules/es-toolkit/dist/compat/_internal/isKey.js","../node_modules/recharts/es6/state/types/StackedGraphicalItem.js","../node_modules/es-toolkit/dist/compat/math/range.js","../node_modules/use-sync-external-store/with-selector.js","../node_modules/recharts/es6/state/RechartsReduxContext.js","../node_modules/es-toolkit/dist/_internal/isUnsafeProperty.js","../node_modules/recharts/es6/util/types.js","../node_modules/es-toolkit/dist/array/flatten.js","../node_modules/es-toolkit/dist/compat/object/property.js","../node_modules/recharts/es6/state/zIndexSlice.js","../node_modules/recharts/es6/state/selectors/legendSelectors.js","../node_modules/recharts/es6/state/selectors/selectChartOffsetInternal.js","../node_modules/recharts/es6/state/selectors/selectTooltipPayloadSearcher.js","../node_modules/es-toolkit/dist/compat/_internal/tags.js","../node_modules/recharts/es6/cartesian/CartesianGrid.js","../node_modules/@babel/runtime/helpers/toPropertyKey.js","../node_modules/es-toolkit/compat/get.js","../node_modules/recharts/es6/state/chartDataSlice.js","../node_modules/es-toolkit/compat/throttle.js","../node_modules/recharts/es6/state/selectors/brushSelectors.js","../node_modules/recharts/es6/state/selectors/selectAllAxes.js","../node_modules/decimal.js-light/decimal.js","../node_modules/es-toolkit/dist/compat/predicate/isMatch.js","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/env.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/errors.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/common.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/plugins.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/scope.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/finalize.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/proxy.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/immerClass.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/current.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/immer.ts","../node_modules/es-toolkit/dist/compat/_internal/toArray.js","../node_modules/recharts/es6/state/cartesianAxisSlice.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/es-toolkit/dist/compat/object/cloneDeep.js","../node_modules/es-toolkit/dist/predicate/isLength.js","../node_modules/use-sync-external-store/shim/with-selector.js","../node_modules/d3-shape/src/noop.js","../node_modules/d3-shape/src/curve/basis.js","../node_modules/d3-shape/src/curve/basisClosed.js","../node_modules/d3-shape/src/curve/basisOpen.js","../node_modules/d3-shape/src/curve/bump.js","../node_modules/d3-shape/src/curve/linearClosed.js","../node_modules/d3-shape/src/curve/linear.js","../node_modules/d3-shape/src/curve/monotone.js","../node_modules/d3-shape/src/curve/natural.js","../node_modules/d3-shape/src/curve/step.js","../node_modules/d3-shape/src/point.js","../node_modules/d3-shape/src/line.js","../node_modules/d3-shape/src/area.js","../node_modules/recharts/es6/shape/Curve.js","../node_modules/recharts/node_modules/eventemitter3/index.js","../node_modules/recharts/es6/zIndex/DefaultZIndexes.js","../node_modules/recharts/es6/zIndex/ZIndexLayer.js","../node_modules/recharts/es6/context/chartLayoutContext.js","../node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js","../node_modules/@babel/runtime/helpers/toPrimitive.js","../node_modules/recharts/es6/state/selectors/arrayEqualityCheck.js","../node_modules/d3-shape/src/array.js","../node_modules/recharts/es6/state/graphicalItemsSlice.js","../node_modules/es-toolkit/dist/compat/object/get.js","../node_modules/es-toolkit/compat/isPlainObject.js","../node_modules/recharts/es6/util/useId.js","../node_modules/recharts/es6/util/useUniqueId.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/recharts/es6/util/isDomainSpecifiedByUser.js","../node_modules/es-toolkit/dist/function/identity.js","../node_modules/recharts/es6/state/selectors/combiners/combineTooltipPayloadConfigurations.js","../node_modules/es-toolkit/dist/compat/array/last.js","../node_modules/recharts/es6/util/svgPropertiesAndEvents.js","../node_modules/es-toolkit/dist/compat/_internal/compareValues.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js","../node_modules/es-toolkit/compat/range.js","../node_modules/es-toolkit/dist/compat/predicate/isObjectLike.js","../node_modules/recharts/es6/context/accessibilityContext.js","../node_modules/es-toolkit/dist/compat/util/eq.js"],"sourcesContent":["export var selectRootMaxBarSize = state => state.rootProps.maxBarSize;\nexport var selectBarGap = state => state.rootProps.barGap;\nexport var selectBarCategoryGap = state => state.rootProps.barCategoryGap;\nexport var selectRootBarSize = state => state.rootProps.barSize;\nexport var selectStackOffsetType = state => state.rootProps.stackOffset;\nexport var selectChartName = state => state.options.chartName;\nexport var selectSyncId = state => state.rootProps.syncId;\nexport var selectSyncMethod = state => state.rootProps.syncMethod;\nexport var selectEventEmitter = state => state.options.eventEmitter;\nexport var selectChartBaseValue = state => state.rootProps.baseValue;","export var combineAxisRangeWithReverse = (axisSettings, axisRange) => {\n if (!axisSettings || !axisRange) {\n return undefined;\n }\n if (axisSettings !== null && axisSettings !== void 0 && axisSettings.reversed) {\n return [axisRange[1], axisRange[0]];\n }\n return axisRange;\n};","/* eslint no-console: 0 */\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n console.warn(format.replace(/%s/g, () => args[argIndex++]));\n }\n }\n }\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 { isValidElement } from 'react';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = angle => angle * Math.PI / 180;\nexport var radianToDegree = angleInRadian => angleInRadian * 180 / Math.PI;\nexport var polarToCartesian = (cx, cy, radius, angle) => ({\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n});\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n width: 0,\n height: 0,\n brushBottom: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\nvar distanceBetweenPoints = (point, anotherPoint) => {\n var {\n x: x1,\n y: y1\n } = point;\n var {\n x: x2,\n y: y2\n } = anotherPoint;\n return Math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2);\n};\nvar getAngleOfPoint = (_ref, _ref2) => {\n var {\n x,\n y\n } = _ref;\n var {\n cx,\n cy\n } = _ref2;\n var radius = distanceBetweenPoints({\n x,\n y\n }, {\n x: cx,\n y: cy\n });\n if (radius <= 0) {\n return {\n radius,\n angle: 0\n };\n }\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n return {\n radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian\n };\n};\nvar formatAngleOfSector = _ref3 => {\n var {\n startAngle,\n endAngle\n } = _ref3;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\nvar reverseFormatAngleOfSector = (angle, _ref4) => {\n var {\n startAngle,\n endAngle\n } = _ref4;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\nexport var inRangeOfSector = (_ref5, viewBox) => {\n var {\n chartX: x,\n chartY: y\n } = _ref5;\n var {\n radius,\n angle\n } = getAngleOfPoint({\n x,\n y\n }, viewBox);\n var {\n innerRadius,\n outerRadius\n } = viewBox;\n if (radius < innerRadius || radius > outerRadius) {\n return null;\n }\n if (radius === 0) {\n return null;\n }\n var {\n startAngle,\n endAngle\n } = formatAngleOfSector(viewBox);\n var formatAngle = angle;\n var inRange;\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n if (inRange) {\n return _objectSpread(_objectSpread({}, viewBox), {}, {\n radius,\n angle: reverseFormatAngleOfSector(formatAngle, viewBox)\n });\n }\n return null;\n};\nexport var getTickClassName = tick => ! /*#__PURE__*/isValidElement(tick) && typeof tick !== 'function' && typeof tick !== 'boolean' && tick != null ? tick.className : '';","import { isNan } from '../../../util/DataUtils';\nexport var combineActiveLabel = (tooltipTicks, activeIndex) => {\n var _tooltipTicks$n;\n var n = Number(activeIndex);\n if (isNan(n) || activeIndex == null) {\n return undefined;\n }\n return n >= 0 ? tooltipTicks === null || tooltipTicks === void 0 || (_tooltipTicks$n = tooltipTicks[n]) === null || _tooltipTicks$n === void 0 ? void 0 : _tooltipTicks$n.value : undefined;\n};","import { createContext, useContext } from 'react';\nexport var TooltipPortalContext = /*#__PURE__*/createContext(null);\nexport var useTooltipPortal = () => useContext(TooltipPortalContext);","module.exports = require('../dist/compat/array/last.js').last;\n","export var numberDomainEqualityCheck = (a, b) => {\n if (a === b) {\n return true;\n }\n if (a == null || b == null) {\n return false;\n }\n return a[0] === b[0] && a[1] === b[1];\n};","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction toString(value) {\n if (value == null) {\n return '';\n }\n if (typeof value === 'string') {\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(toString).join(',');\n }\n const result = String(value);\n if (result === '0' && Object.is(Number(value), -0)) {\n return '-0';\n }\n return result;\n}\n\nexports.toString = toString;\n","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\nexport { eventCenter };\nexport var TOOLTIP_SYNC_EVENT = 'recharts.syncEvent.tooltip';\nexport var BRUSH_SYNC_EVENT = 'recharts.syncEvent.brush';","export function selectSynchronisedTooltipState(state) {\n return state.tooltip.syncInteraction;\n}","var _excluded = [\"x\", \"y\"];\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 _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; }\nimport { useEffect } from 'react';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectEventEmitter, selectSyncId, selectSyncMethod } from '../state/selectors/rootPropsSelectors';\nimport { BRUSH_SYNC_EVENT, eventCenter, TOOLTIP_SYNC_EVENT } from '../util/Events';\nimport { createEventEmitter } from '../state/optionsSlice';\nimport { setSyncInteraction } from '../state/tooltipSlice';\nimport { selectTooltipDataKey } from '../state/selectors/selectors';\nimport { selectTooltipAxisTicks } from '../state/selectors/tooltipSelectors';\nimport { selectSynchronisedTooltipState } from './syncSelectors';\nimport { useChartLayout, useViewBox } from '../context/chartLayoutContext';\nimport { setDataStartEndIndexes } from '../state/chartDataSlice';\nimport { noop } from '../util/DataUtils';\nfunction useTooltipSyncEventsListener() {\n var mySyncId = useAppSelector(selectSyncId);\n var myEventEmitter = useAppSelector(selectEventEmitter);\n var dispatch = useAppDispatch();\n var syncMethod = useAppSelector(selectSyncMethod);\n var tooltipTicks = useAppSelector(selectTooltipAxisTicks);\n var layout = useChartLayout();\n var viewBox = useViewBox();\n var className = useAppSelector(state => state.rootProps.className);\n useEffect(() => {\n if (mySyncId == null) {\n // This chart is not synchronised with any other chart so we don't need to listen for any events.\n return noop;\n }\n var listener = (incomingSyncId, action, emitter) => {\n if (myEventEmitter === emitter) {\n // We don't want to dispatch actions that we sent ourselves.\n return;\n }\n if (mySyncId !== incomingSyncId) {\n // This event is not for this chart\n return;\n }\n if (syncMethod === 'index') {\n var _action$payload;\n if (viewBox && action !== null && action !== void 0 && (_action$payload = action.payload) !== null && _action$payload !== void 0 && _action$payload.coordinate && action.payload.sourceViewBox) {\n var _action$payload$coord = action.payload.coordinate,\n {\n x: _x,\n y: _y\n } = _action$payload$coord,\n otherCoordinateProps = _objectWithoutProperties(_action$payload$coord, _excluded);\n var {\n x: sourceX,\n y: sourceY,\n width: sourceWidth,\n height: sourceHeight\n } = action.payload.sourceViewBox;\n var scaledCoordinate = _objectSpread(_objectSpread({}, otherCoordinateProps), {}, {\n x: viewBox.x + (sourceWidth ? (_x - sourceX) / sourceWidth : 0) * viewBox.width,\n y: viewBox.y + (sourceHeight ? (_y - sourceY) / sourceHeight : 0) * viewBox.height\n });\n dispatch(_objectSpread(_objectSpread({}, action), {}, {\n payload: _objectSpread(_objectSpread({}, action.payload), {}, {\n coordinate: scaledCoordinate\n })\n }));\n } else {\n dispatch(action);\n }\n return;\n }\n if (tooltipTicks == null) {\n // for the other two sync methods, we need the ticks to be available\n return;\n }\n var activeTick;\n if (typeof syncMethod === 'function') {\n /*\n * This is what the data shape in 2.x CategoricalChartState used to look like.\n * In 3.x we store things differently but let's try to keep the old shape for compatibility.\n */\n var syncMethodParam = {\n activeTooltipIndex: action.payload.index == null ? undefined : Number(action.payload.index),\n isTooltipActive: action.payload.active,\n activeIndex: action.payload.index == null ? undefined : Number(action.payload.index),\n activeLabel: action.payload.label,\n activeDataKey: action.payload.dataKey,\n activeCoordinate: action.payload.coordinate\n };\n // Call a callback function. If there is an application specific algorithm\n var activeTooltipIndex = syncMethod(tooltipTicks, syncMethodParam);\n activeTick = tooltipTicks[activeTooltipIndex];\n } else if (syncMethod === 'value') {\n // labels are always strings, tick.value might be a string or a number, depending on axis type\n activeTick = tooltipTicks.find(tick => String(tick.value) === action.payload.label);\n }\n var {\n coordinate\n } = action.payload;\n if (activeTick == null || action.payload.active === false || coordinate == null || viewBox == null) {\n dispatch(setSyncInteraction({\n active: false,\n coordinate: undefined,\n dataKey: undefined,\n index: null,\n label: undefined,\n sourceViewBox: undefined\n }));\n return;\n }\n var {\n x,\n y\n } = coordinate;\n var validateChartX = Math.min(x, viewBox.x + viewBox.width);\n var validateChartY = Math.min(y, viewBox.y + viewBox.height);\n var activeCoordinate = {\n x: layout === 'horizontal' ? activeTick.coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : activeTick.coordinate\n };\n var syncAction = setSyncInteraction({\n active: action.payload.active,\n coordinate: activeCoordinate,\n dataKey: action.payload.dataKey,\n index: String(activeTick.index),\n label: action.payload.label,\n sourceViewBox: action.payload.sourceViewBox\n });\n dispatch(syncAction);\n };\n eventCenter.on(TOOLTIP_SYNC_EVENT, listener);\n return () => {\n eventCenter.off(TOOLTIP_SYNC_EVENT, listener);\n };\n }, [className, dispatch, myEventEmitter, mySyncId, syncMethod, tooltipTicks, layout, viewBox]);\n}\nfunction useBrushSyncEventsListener() {\n var mySyncId = useAppSelector(selectSyncId);\n var myEventEmitter = useAppSelector(selectEventEmitter);\n var dispatch = useAppDispatch();\n useEffect(() => {\n if (mySyncId == null) {\n // This chart is not synchronised with any other chart so we don't need to listen for any events.\n return noop;\n }\n var listener = (incomingSyncId, action, emitter) => {\n if (myEventEmitter === emitter) {\n // We don't want to dispatch actions that we sent ourselves.\n return;\n }\n if (mySyncId === incomingSyncId) {\n dispatch(setDataStartEndIndexes(action));\n }\n };\n eventCenter.on(BRUSH_SYNC_EVENT, listener);\n return () => {\n eventCenter.off(BRUSH_SYNC_EVENT, listener);\n };\n }, [dispatch, myEventEmitter, mySyncId]);\n}\n\n/**\n * Will receive synchronisation events from other charts.\n *\n * Reads syncMethod from state and decides how to synchronise the tooltip based on that.\n *\n * @returns void\n */\nexport function useSynchronisedEventsFromOtherCharts() {\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(createEventEmitter());\n }, [dispatch]);\n useTooltipSyncEventsListener();\n useBrushSyncEventsListener();\n}\n\n/**\n * Will send events to other charts.\n * If syncId is undefined, no events will be sent.\n *\n * This ignores the syncMethod, because that is set and computed on the receiving end.\n *\n * @param tooltipEventType from Tooltip\n * @param trigger from Tooltip\n * @param activeCoordinate from state\n * @param activeLabel from state\n * @param activeIndex from state\n * @param isTooltipActive from state\n * @returns void\n */\nexport function useTooltipChartSynchronisation(tooltipEventType, trigger, activeCoordinate, activeLabel, activeIndex, isTooltipActive) {\n var activeDataKey = useAppSelector(state => selectTooltipDataKey(state, tooltipEventType, trigger));\n var eventEmitterSymbol = useAppSelector(selectEventEmitter);\n var syncId = useAppSelector(selectSyncId);\n var syncMethod = useAppSelector(selectSyncMethod);\n var tooltipState = useAppSelector(selectSynchronisedTooltipState);\n var isReceivingSynchronisation = tooltipState === null || tooltipState === void 0 ? void 0 : tooltipState.active;\n var viewBox = useViewBox();\n useEffect(() => {\n if (isReceivingSynchronisation) {\n /*\n * This chart currently has active tooltip, synchronised from another chart.\n * Let's not send any outgoing synchronisation events while that's happening\n * to avoid infinite loops.\n */\n return;\n }\n if (syncId == null) {\n /*\n * syncId is not set, means that this chart is not synchronised with any other chart,\n * means we don't need to send synchronisation events\n */\n return;\n }\n if (eventEmitterSymbol == null) {\n /*\n * When using Recharts internal hooks and selectors outside charts context,\n * these properties will be undefined. Let's return silently instead of throwing an error.\n */\n return;\n }\n var syncAction = setSyncInteraction({\n active: isTooltipActive,\n coordinate: activeCoordinate,\n dataKey: activeDataKey,\n index: activeIndex,\n label: typeof activeLabel === 'number' ? String(activeLabel) : activeLabel,\n sourceViewBox: viewBox\n });\n eventCenter.emit(TOOLTIP_SYNC_EVENT, syncId, syncAction, eventEmitterSymbol);\n }, [isReceivingSynchronisation, activeCoordinate, activeDataKey, activeIndex, activeLabel, eventEmitterSymbol, syncId, syncMethod, isTooltipActive, viewBox]);\n}\nexport function useBrushChartSynchronisation() {\n var syncId = useAppSelector(selectSyncId);\n var eventEmitterSymbol = useAppSelector(selectEventEmitter);\n var brushStartIndex = useAppSelector(state => state.chartData.dataStartIndex);\n var brushEndIndex = useAppSelector(state => state.chartData.dataEndIndex);\n useEffect(() => {\n if (syncId == null || brushStartIndex == null || brushEndIndex == null || eventEmitterSymbol == null) {\n return;\n }\n var syncAction = {\n startIndex: brushStartIndex,\n endIndex: brushEndIndex\n };\n eventCenter.emit(BRUSH_SYNC_EVENT, syncId, syncAction, eventEmitterSymbol);\n }, [brushEndIndex, brushStartIndex, eventEmitterSymbol, syncId]);\n}","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); }\nimport * as React from 'react';\nimport { clsx } from 'clsx';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nvar getDeltaAngle = (startAngle, endAngle) => {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\nvar getTangentCircle = _ref => {\n var {\n cx,\n cy,\n radius,\n angle,\n sign,\n isExternal,\n cornerRadius,\n cornerIsExternal\n } = _ref;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle);\n // The coordinate of point which is tangent to the circle\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle);\n // The coordinate of point which is tangent to the radius line\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center,\n circleTangency,\n lineTangency,\n theta\n };\n};\nvar getSectorPath = _ref2 => {\n var {\n cx,\n cy,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle\n } = _ref2;\n var angle = getDeltaAngle(startAngle, endAngle);\n\n // When the angle of sector equals to 360, star point and end point coincide\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n return path;\n};\nvar getSectorWithCorner = _ref3 => {\n var {\n cx,\n cy,\n innerRadius,\n outerRadius,\n cornerRadius,\n forceCornerRadius,\n cornerIsExternal,\n startAngle,\n endAngle\n } = _ref3;\n var sign = mathSign(endAngle - startAngle);\n var {\n circleTangency: soct,\n lineTangency: solt,\n theta: sot\n } = getTangentCircle({\n cx,\n cy,\n radius: outerRadius,\n angle: startAngle,\n sign,\n cornerRadius,\n cornerIsExternal\n });\n var {\n circleTangency: eoct,\n lineTangency: eolt,\n theta: eot\n } = getTangentCircle({\n cx,\n cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius,\n cornerIsExternal\n });\n var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n return getSectorPath({\n cx,\n cy,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle\n });\n }\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n if (innerRadius > 0) {\n var {\n circleTangency: sict,\n lineTangency: silt,\n theta: sit\n } = getTangentCircle({\n cx,\n cy,\n radius: innerRadius,\n angle: startAngle,\n sign,\n isExternal: true,\n cornerRadius,\n cornerIsExternal\n });\n var {\n circleTangency: eict,\n lineTangency: eilt,\n theta: eit\n } = getTangentCircle({\n cx,\n cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius,\n cornerIsExternal\n });\n var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;\n if (innerArcAngle < 0 && cornerRadius === 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n return path;\n};\n\n/**\n * SVG cx, cy are `string | number | undefined`, but internally we use `number` so let's\n * override the types here.\n */\n\nvar defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n};\nexport var Sector = sectorProps => {\n var props = resolveDefaultProps(sectorProps, defaultProps);\n var {\n cx,\n cy,\n innerRadius,\n outerRadius,\n cornerRadius,\n forceCornerRadius,\n cornerIsExternal,\n startAngle,\n endAngle,\n className\n } = props;\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n var layerClass = clsx('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx,\n cy,\n innerRadius,\n outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius,\n cornerIsExternal,\n startAngle,\n endAngle\n });\n } else {\n path = getSectorPath({\n cx,\n cy,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle\n });\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, svgPropertiesAndEvents(props), {\n className: layerClass,\n d: path\n }));\n};","import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { useContext } from 'react';\nimport { RechartsReduxContext } from './RechartsReduxContext';\nvar noopDispatch = a => a;\nexport var useAppDispatch = () => {\n var context = useContext(RechartsReduxContext);\n if (context) {\n return context.store.dispatch;\n }\n return noopDispatch;\n};\nvar noop = () => {};\nvar addNestedSubNoop = () => noop;\nvar refEquality = (a, b) => a === b;\n\n/**\n * This is a recharts variant of `useSelector` from 'react-redux' package.\n *\n * The difference is that react-redux version will throw an Error when used outside of Redux context.\n *\n * This, recharts version, will return undefined instead.\n *\n * This is because we want to allow using our components outside the Chart wrapper,\n * and have people provide all props explicitly.\n *\n * If however they use the component inside a chart wrapper then those props become optional,\n * and we read them from Redux state instead.\n *\n * @param selector for pulling things out of Redux store; will not be called if the store is not accessible\n * @return whatever the selector returned; or undefined when outside of Redux store\n */\nexport function useAppSelector(selector) {\n var context = useContext(RechartsReduxContext);\n return useSyncExternalStoreWithSelector(context ? context.subscription.addNestedSub : addNestedSubNoop, context ? context.store.getState : noop, context ? context.store.getState : noop, context ? selector : noop, refEquality);\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 { getIntersectionKeys, mapObject } from './util';\nexport var alpha = (begin, end, k) => begin + (end - begin) * k;\nvar needContinue = _ref => {\n var {\n from,\n to\n } = _ref;\n return from !== to;\n};\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\nvar calStepperVals = (easing, preVals, steps) => {\n var nextStepVals = mapObject((key, val) => {\n if (needContinue(val)) {\n var [newX, newV] = easing(val.from, val.to, val.velocity);\n return _objectSpread(_objectSpread({}, val), {}, {\n from: newX,\n velocity: newV\n });\n }\n return val;\n }, preVals);\n if (steps < 1) {\n return mapObject((key, val) => {\n if (needContinue(val)) {\n return _objectSpread(_objectSpread({}, val), {}, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n return val;\n }, preVals);\n }\n return calStepperVals(easing, nextStepVals, steps - 1);\n};\nfunction createStepperUpdate(from, to, easing, interKeys, render, timeoutController) {\n var preTime;\n var stepperStyle = interKeys.reduce((res, key) => _objectSpread(_objectSpread({}, res), {}, {\n [key]: {\n from: from[key],\n velocity: 0,\n to: to[key]\n }\n }), {});\n var getCurrStyle = () => mapObject((key, val) => val.from, stepperStyle);\n var shouldStopAnimation = () => !Object.values(stepperStyle).filter(needContinue).length;\n var stopAnimation = null;\n var stepperUpdate = now => {\n if (!preTime) {\n preTime = now;\n }\n var deltaTime = now - preTime;\n var steps = deltaTime / easing.dt;\n stepperStyle = calStepperVals(easing, stepperStyle, steps);\n // get union set and add compatible prefix\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), getCurrStyle()));\n preTime = now;\n if (!shouldStopAnimation()) {\n stopAnimation = timeoutController.setTimeout(stepperUpdate);\n }\n };\n\n // return start animation method\n return () => {\n stopAnimation = timeoutController.setTimeout(stepperUpdate);\n\n // return stop animation method\n return () => {\n var _stopAnimation;\n (_stopAnimation = stopAnimation) === null || _stopAnimation === void 0 || _stopAnimation();\n };\n };\n}\nfunction createTimingUpdate(from, to, easing, duration, interKeys, render, timeoutController) {\n var stopAnimation = null;\n var timingStyle = interKeys.reduce((res, key) => _objectSpread(_objectSpread({}, res), {}, {\n [key]: [from[key], to[key]]\n }), {});\n var beginTime;\n var timingUpdate = now => {\n if (!beginTime) {\n beginTime = now;\n }\n var t = (now - beginTime) / duration;\n var currStyle = mapObject((key, val) => alpha(...val, easing(t)), timingStyle);\n\n // get union set and add compatible prefix\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), currStyle));\n if (t < 1) {\n stopAnimation = timeoutController.setTimeout(timingUpdate);\n } else {\n var finalStyle = mapObject((key, val) => alpha(...val, easing(1)), timingStyle);\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), finalStyle));\n }\n };\n\n // return start animation method\n return () => {\n stopAnimation = timeoutController.setTimeout(timingUpdate);\n\n // return stop animation method\n return () => {\n var _stopAnimation2;\n (_stopAnimation2 = stopAnimation) === null || _stopAnimation2 === void 0 || _stopAnimation2();\n };\n };\n}\n\n// configure update function\n// eslint-disable-next-line import/no-default-export\nexport default (from, to, easing, duration, render, timeoutController) => {\n var interKeys = getIntersectionKeys(from, to);\n if (easing == null) {\n // no animation, just set to final state\n return () => {\n render(_objectSpread(_objectSpread({}, from), to));\n return () => {};\n };\n }\n return easing.isStepper === true ? createStepperUpdate(from, to, easing, interKeys, render, timeoutController) : createTimingUpdate(from, to, easing, duration, interKeys, render, timeoutController);\n};","export var ACCURACY = 1e-4;\nvar cubicBezierFactor = (c1, c2) => [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\nvar evaluatePolynomial = (params, t) => params.map((param, i) => param * t ** i).reduce((pre, curr) => pre + curr);\nvar cubicBezier = (c1, c2) => t => {\n var params = cubicBezierFactor(c1, c2);\n return evaluatePolynomial(params, t);\n};\nvar derivativeCubicBezier = (c1, c2) => t => {\n var params = cubicBezierFactor(c1, c2);\n var newParams = [...params.map((param, i) => param * i).slice(1), 0];\n return evaluatePolynomial(newParams, t);\n};\nvar getBezierCoordinates = function getBezierCoordinates() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n return [0.0, 0.0, 1.0, 1.0];\n case 'ease':\n return [0.25, 0.1, 0.25, 1.0];\n case 'ease-in':\n return [0.42, 0.0, 1.0, 1.0];\n case 'ease-out':\n return [0.42, 0.0, 0.58, 1.0];\n case 'ease-in-out':\n return [0.0, 0.0, 0.58, 1.0];\n default:\n {\n var _easing$;\n var easing = args[0].split('(');\n if (easing[0] === 'cubic-bezier' && ((_easing$ = easing[1]) === null || _easing$ === void 0 ? void 0 : _easing$.split(')')[0].split(',').length) === 4) {\n var coords = easing[1].split(')')[0].split(',').map(x => parseFloat(x));\n return [coords[0], coords[1], coords[2], coords[3]];\n }\n }\n }\n }\n if (args.length === 4) {\n return args;\n }\n\n // Fallback for invalid inputs. The previous implementation was buggy and would lead to NaN.\n // Returning linear easing is a safe default.\n return [0.0, 0.0, 1.0, 1.0];\n};\nvar createBezierEasing = (x1, y1, x2, y2) => {\n var curveX = cubicBezier(x1, x2);\n var curveY = cubicBezier(y1, y2);\n var derCurveX = derivativeCubicBezier(x1, x2);\n var rangeValue = value => {\n if (value > 1) {\n return 1;\n }\n if (value < 0) {\n return 0;\n }\n return value;\n };\n var bezier = _t => {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n x = rangeValue(x - evalT / derVal);\n }\n return curveY(x);\n };\n bezier.isStepper = false;\n return bezier;\n};\n\n// calculate cubic-bezier using Newton's method\nexport var configBezier = function configBezier() {\n return createBezierEasing(...getBezierCoordinates(...arguments));\n};\nexport var configSpring = function configSpring() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var {\n stiff = 100,\n damping = 8,\n dt = 17\n } = config;\n var stepper = (currX, destX, currV) => {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n var newV = currV + (FSpring - FDamping) * dt / 1000;\n var newX = currV * dt / 1000 + currX;\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n return [newX, newV];\n };\n stepper.isStepper = true;\n stepper.dt = dt;\n return stepper;\n};\nexport var configEasing = easing => {\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n case 'spring':\n return configSpring();\n default:\n if (easing.split('(')[0] === 'cubic-bezier') {\n return configBezier(easing);\n }\n }\n }\n if (typeof easing === 'function') {\n return easing;\n }\n return null;\n};","/**\n * Callback type for the timeout function.\n * Receives current time in milliseconds as an argument.\n */\n\n/**\n * A function that, when called, cancels the timeout.\n */\n\nexport class RequestAnimationFrameTimeoutController {\n setTimeout(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var startTime = performance.now();\n var requestId = null;\n var executeCallback = now => {\n if (now - startTime >= delay) {\n callback(now);\n // tests fail without the extra if, even when five lines below it's not needed\n // TODO finish transition to the mocked timeout controller and then remove this condition\n } else if (typeof requestAnimationFrame === 'function') {\n requestId = requestAnimationFrame(executeCallback);\n }\n };\n requestId = requestAnimationFrame(executeCallback);\n return () => {\n if (requestId != null) {\n cancelAnimationFrame(requestId);\n }\n };\n }\n}","import { createAnimateManager } from './AnimationManager';\nimport { RequestAnimationFrameTimeoutController } from './timeoutController';\nexport function createDefaultAnimationManager() {\n return createAnimateManager(new RequestAnimationFrameTimeoutController());\n}","/**\n * Represents a single item in the ReactSmoothQueue.\n * The item can be:\n * - A number representing a delay in milliseconds.\n * - An object representing a style change\n * - A StartAnimationFunction that starts eased transition and calls different render\n * because of course in Recharts we have to have three ways to do everything\n * - An arbitrary function to be executed\n */\n\nexport function createAnimateManager(timeoutController) {\n var currStyle;\n var handleChange = () => null;\n var shouldStop = false;\n var cancelTimeout = null;\n var setStyle = _style => {\n if (shouldStop) {\n return;\n }\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n var styles = _style;\n var [curr, ...restStyles] = styles;\n if (typeof curr === 'number') {\n cancelTimeout = timeoutController.setTimeout(setStyle.bind(null, restStyles), curr);\n return;\n }\n setStyle(curr);\n cancelTimeout = timeoutController.setTimeout(setStyle.bind(null, restStyles));\n return;\n }\n if (typeof _style === 'string') {\n currStyle = _style;\n handleChange(currStyle);\n }\n if (typeof _style === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n if (typeof _style === 'function') {\n _style();\n }\n };\n return {\n stop: () => {\n shouldStop = true;\n },\n start: style => {\n shouldStop = false;\n if (cancelTimeout) {\n cancelTimeout();\n cancelTimeout = null;\n }\n setStyle(style);\n },\n subscribe: _handleChange => {\n handleChange = _handleChange;\n return () => {\n handleChange = () => null;\n };\n },\n getTimeoutController: () => timeoutController\n };\n}","import { createContext, useContext, useMemo } from 'react';\nimport { createDefaultAnimationManager } from './createDefaultAnimationManager';\nexport var AnimationManagerContext = /*#__PURE__*/createContext(createDefaultAnimationManager);\nexport function useAnimationManager(animationId, animationManagerFromProps) {\n var contextAnimationManager = useContext(AnimationManagerContext);\n return useMemo(() => animationManagerFromProps !== null && animationManagerFromProps !== void 0 ? animationManagerFromProps : contextAnimationManager(animationId), [animationId, animationManagerFromProps, contextAnimationManager]);\n}","import { useEffect, useRef, useState } from 'react';\nimport { noop } from '../util/DataUtils';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport configUpdate from './configUpdate';\nimport { configEasing } from './easing';\nimport { useAnimationManager } from './useAnimationManager';\nvar defaultJavascriptAnimateProps = {\n begin: 0,\n duration: 1000,\n easing: 'ease',\n isActive: true,\n canBegin: true,\n onAnimationEnd: () => {},\n onAnimationStart: () => {}\n};\nvar from = {\n t: 0\n};\nvar to = {\n t: 1\n};\nexport function JavascriptAnimate(outsideProps) {\n var props = resolveDefaultProps(outsideProps, defaultJavascriptAnimateProps);\n var {\n isActive,\n canBegin,\n duration,\n easing,\n begin,\n onAnimationEnd,\n onAnimationStart,\n children\n } = props;\n var animationManager = useAnimationManager(props.animationId, props.animationManager);\n var [style, setStyle] = useState(isActive ? from : to);\n var stopJSAnimation = useRef(null);\n useEffect(() => {\n if (!isActive) {\n setStyle(to);\n }\n }, [isActive]);\n useEffect(() => {\n if (!isActive || !canBegin) {\n return noop;\n }\n var startAnimation = configUpdate(from, to, configEasing(easing), duration, setStyle, animationManager.getTimeoutController());\n var onAnimationActive = () => {\n stopJSAnimation.current = startAnimation();\n };\n animationManager.start([onAnimationStart, begin, onAnimationActive, duration, onAnimationEnd]);\n return () => {\n animationManager.stop();\n if (stopJSAnimation.current) {\n stopJSAnimation.current();\n }\n onAnimationEnd();\n };\n }, [isActive, canBegin, duration, easing, begin, onAnimationStart, onAnimationEnd, animationManager]);\n return children(style.t);\n}","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isObject(value) {\n return value !== null && (typeof value === 'object' || typeof value === 'function');\n}\n\nexports.isObject = isObject;\n","var _excluded = [\"axisLine\", \"width\", \"height\", \"className\", \"hide\", \"ticks\", \"axisType\"],\n _excluded2 = [\"viewBox\"],\n _excluded3 = [\"viewBox\"];\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 _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); }\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); }\n/**\n * @fileOverview Cartesian Axis\n */\nimport * as React from 'react';\nimport { useState, useRef, useCallback, forwardRef, useImperativeHandle } from 'react';\nimport get from 'es-toolkit/compat/get';\nimport { clsx } from 'clsx';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { CartesianLabelContextProvider, CartesianLabelFromLabelProp } from '../component/Label';\nimport { isNumber } from '../util/DataUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { getTicks } from './getTicks';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { getCalculatedYAxisWidth } from '../util/YAxisUtils';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\n\n/** The orientation of the axis in correspondence to the chart */\n\n/** A unit to be appended to a value */\n\n/** The formatter function of tick */\n\nexport var defaultCartesianAxisProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd',\n zIndex: DefaultZIndexes.axis\n};\n\n/*\n * `viewBox` and `scale` are SVG attributes.\n * Recharts however - unfortunately - has its own attributes named `viewBox` and `scale`\n * that are completely different data shape and different purpose.\n */\n\nfunction AxisLine(axisLineProps) {\n var {\n x,\n y,\n width,\n height,\n orientation,\n mirror,\n axisLine,\n otherSvgProps\n } = axisLineProps;\n if (!axisLine) {\n return null;\n }\n var props = _objectSpread(_objectSpread(_objectSpread({}, otherSvgProps), svgPropertiesNoEvents(axisLine)), {}, {\n fill: 'none'\n });\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: clsx('recharts-cartesian-axis-line', get(axisLine, 'className'))\n }));\n}\n\n/**\n * Calculate the coordinates of endpoints in ticks.\n * @param data The data of a simple tick.\n * @param x The x-coordinate of the axis.\n * @param y The y-coordinate of the axis.\n * @param width The width of the axis.\n * @param height The height of the axis.\n * @param orientation The orientation of the axis.\n * @param tickSize The length of the tick line.\n * @param mirror If true, the ticks are mirrored.\n * @param tickMargin The margin between the tick line and the tick text.\n * @returns An object with `line` and `tick` coordinates.\n * `line` is the coordinates for the tick line, and `tick` is the coordinate for the tick text.\n */\nfunction getTickLineCoord(data, x, y, width, height, orientation, tickSize, mirror, tickMargin) {\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n return {\n line: {\n x1,\n y1,\n x2,\n y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n}\n\n/**\n * @param orientation The orientation of the axis.\n * @param mirror If true, the ticks are mirrored.\n * @returns The text anchor of the tick.\n */\nfunction getTickTextAnchor(orientation, mirror) {\n switch (orientation) {\n case 'left':\n return mirror ? 'start' : 'end';\n case 'right':\n return mirror ? 'end' : 'start';\n default:\n return 'middle';\n }\n}\n\n/**\n * @param orientation The orientation of the axis.\n * @param mirror If true, the ticks are mirrored.\n * @returns The vertical text anchor of the tick.\n */\nfunction getTickVerticalAnchor(orientation, mirror) {\n switch (orientation) {\n case 'left':\n case 'right':\n return 'middle';\n case 'top':\n return mirror ? 'start' : 'end';\n default:\n return mirror ? 'end' : 'start';\n }\n}\nfunction TickItem(props) {\n var {\n option,\n tickProps,\n value\n } = props;\n var tickItem;\n var combinedClassName = clsx(tickProps.className, 'recharts-cartesian-axis-tick-value');\n if (/*#__PURE__*/React.isValidElement(option)) {\n // @ts-expect-error element cloning is not typed\n tickItem = /*#__PURE__*/React.cloneElement(option, _objectSpread(_objectSpread({}, tickProps), {}, {\n className: combinedClassName\n }));\n } else if (typeof option === 'function') {\n tickItem = option(_objectSpread(_objectSpread({}, tickProps), {}, {\n className: combinedClassName\n }));\n } else {\n var className = 'recharts-cartesian-axis-tick-value';\n if (typeof option !== 'boolean') {\n className = clsx(className, option === null || option === void 0 ? void 0 : option.className);\n }\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, tickProps, {\n className: className\n }), value);\n }\n return tickItem;\n}\nvar Ticks = /*#__PURE__*/forwardRef((props, ref) => {\n var {\n ticks = [],\n tick,\n tickLine,\n stroke,\n tickFormatter,\n unit,\n padding,\n tickTextProps,\n orientation,\n mirror,\n x,\n y,\n width,\n height,\n tickSize,\n tickMargin,\n fontSize,\n letterSpacing,\n getTicksConfig,\n events,\n axisType\n } = props;\n // @ts-expect-error some properties are optional in props but required in getTicks\n var finalTicks = getTicks(_objectSpread(_objectSpread({}, getTicksConfig), {}, {\n ticks\n }), fontSize, letterSpacing);\n var textAnchor = getTickTextAnchor(orientation, mirror);\n var verticalAnchor = getTickVerticalAnchor(orientation, mirror);\n var axisProps = svgPropertiesNoEvents(getTicksConfig);\n var customTickProps = svgPropertiesNoEventsFromUnknown(tick);\n var tickLinePropsObject = {};\n if (typeof tickLine === 'object') {\n tickLinePropsObject = tickLine;\n }\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, tickLinePropsObject);\n var tickLineCoords = finalTicks.map(entry => _objectSpread({\n entry\n }, getTickLineCoord(entry, x, y, width, height, orientation, tickSize, mirror, tickMargin)));\n var tickLines = tickLineCoords.map(_ref => {\n var {\n entry,\n line: lineCoord\n } = _ref;\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(entry.value, \"-\").concat(entry.coordinate, \"-\").concat(entry.tickCoord)\n }, tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: clsx('recharts-cartesian-axis-tick-line', get(tickLine, 'className'))\n })));\n });\n var tickLabels = tickLineCoords.map((_ref2, i) => {\n var {\n entry,\n tick: tickCoord\n } = _ref2;\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n // @ts-expect-error textAnchor from axisProps is typed as `string` but Text wants type `TextAnchor`\n textAnchor,\n verticalAnchor\n }, axisProps), {}, {\n // @ts-expect-error customTickProps is contributing unknown props\n stroke: 'none',\n // @ts-expect-error customTickProps is contributing unknown props\n fill: stroke\n }, customTickProps), tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter,\n padding\n }, tickTextProps);\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick-label\",\n key: \"tick-label-\".concat(entry.value, \"-\").concat(entry.coordinate, \"-\").concat(entry.tickCoord)\n }, adaptEventsOfChild(events, entry, i)), tick && /*#__PURE__*/React.createElement(TickItem, {\n option: tick,\n tickProps: tickProps,\n value: \"\".concat(typeof tickFormatter === 'function' ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')\n }));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks recharts-\".concat(axisType, \"-ticks\")\n }, tickLabels.length > 0 && /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: DefaultZIndexes.label\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-tick-labels recharts-\".concat(axisType, \"-tick-labels\"),\n ref: ref\n }, tickLabels)), tickLines.length > 0 && /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-tick-lines recharts-\".concat(axisType, \"-tick-lines\")\n }, tickLines));\n});\nvar CartesianAxisComponent = /*#__PURE__*/forwardRef((props, ref) => {\n var {\n axisLine,\n width,\n height,\n className,\n hide,\n ticks,\n axisType\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n var [fontSize, setFontSize] = useState('');\n var [letterSpacing, setLetterSpacing] = useState('');\n var tickRefs = useRef(null);\n useImperativeHandle(ref, () => ({\n getCalculatedWidth: () => {\n var _props$labelRef;\n return getCalculatedYAxisWidth({\n ticks: tickRefs.current,\n label: (_props$labelRef = props.labelRef) === null || _props$labelRef === void 0 ? void 0 : _props$labelRef.current,\n labelGapWithTick: 5,\n tickSize: props.tickSize,\n tickMargin: props.tickMargin\n });\n }\n }));\n var layerRef = useCallback(el => {\n if (el) {\n var tickNodes = el.getElementsByClassName('recharts-cartesian-axis-tick-value');\n tickRefs.current = tickNodes;\n var tick = tickNodes[0];\n if (tick) {\n var computedStyle = window.getComputedStyle(tick);\n var calculatedFontSize = computedStyle.fontSize;\n var calculatedLetterSpacing = computedStyle.letterSpacing;\n if (calculatedFontSize !== fontSize || calculatedLetterSpacing !== letterSpacing) {\n setFontSize(calculatedFontSize);\n setLetterSpacing(calculatedLetterSpacing);\n }\n }\n }\n }, [fontSize, letterSpacing]);\n if (hide) {\n return null;\n }\n\n /*\n * This is different condition from what validateWidthHeight is doing;\n * the CartesianAxis does allow width or height to be undefined.\n */\n if (width != null && width <= 0 || height != null && height <= 0) {\n return null;\n }\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-cartesian-axis', className)\n }, /*#__PURE__*/React.createElement(AxisLine, {\n x: props.x,\n y: props.y,\n width: width,\n height: height,\n orientation: props.orientation,\n mirror: props.mirror,\n axisLine: axisLine,\n otherSvgProps: svgPropertiesNoEvents(props)\n }), /*#__PURE__*/React.createElement(Ticks, {\n ref: layerRef,\n axisType: axisType,\n events: rest,\n fontSize: fontSize,\n getTicksConfig: props,\n height: props.height,\n letterSpacing: letterSpacing,\n mirror: props.mirror,\n orientation: props.orientation,\n padding: props.padding,\n stroke: props.stroke,\n tick: props.tick,\n tickFormatter: props.tickFormatter,\n tickLine: props.tickLine,\n tickMargin: props.tickMargin,\n tickSize: props.tickSize,\n tickTextProps: props.tickTextProps,\n ticks: ticks,\n unit: props.unit,\n width: props.width,\n x: props.x,\n y: props.y\n }), /*#__PURE__*/React.createElement(CartesianLabelContextProvider, {\n x: props.x,\n y: props.y,\n width: props.width,\n height: props.height,\n lowerWidth: props.width,\n upperWidth: props.width\n }, /*#__PURE__*/React.createElement(CartesianLabelFromLabelProp, {\n label: props.label,\n labelRef: props.labelRef\n }), props.children)));\n});\nvar MemoCartesianAxis = /*#__PURE__*/React.memo(CartesianAxisComponent, (prevProps, nextProps) => {\n var {\n viewBox: prevViewBox\n } = prevProps,\n prevRestProps = _objectWithoutProperties(prevProps, _excluded2);\n var {\n viewBox: nextViewBox\n } = nextProps,\n nextRestProps = _objectWithoutProperties(nextProps, _excluded3);\n return shallowEqual(prevViewBox, nextViewBox) && shallowEqual(prevRestProps, nextRestProps);\n});\nexport var CartesianAxis = /*#__PURE__*/React.forwardRef((outsideProps, ref) => {\n var props = resolveDefaultProps(outsideProps, defaultCartesianAxisProps);\n return /*#__PURE__*/React.createElement(MemoCartesianAxis, _extends({}, props, {\n ref: ref\n }));\n});\nCartesianAxis.displayName = 'CartesianAxis';","/**\n * Calculates the width of the Y-axis based on the tick labels and the axis label.\n * @param params - The parameters object.\n * @param [params.ticks] - An array-like object of tick elements, each with a `getBoundingClientRect` method.\n * @param [params.label] - The axis label element, with a `getBoundingClientRect` method.\n * @param [params.labelGapWithTick=5] - The gap between the label and the tick.\n * @param [params.tickSize=0] - The length of the tick line.\n * @param [params.tickMargin=0] - The margin between the tick line and the tick text.\n * @returns The calculated width of the Y-axis.\n */\nexport var getCalculatedYAxisWidth = _ref => {\n var {\n ticks,\n label,\n labelGapWithTick = 5,\n // Default gap between label and tick\n tickSize = 0,\n tickMargin = 0\n } = _ref;\n // find the max width of the tick labels\n var maxTickWidth = 0;\n if (ticks) {\n Array.from(ticks).forEach(tickNode => {\n if (tickNode) {\n var bbox = tickNode.getBoundingClientRect();\n if (bbox.width > maxTickWidth) {\n maxTickWidth = bbox.width;\n }\n }\n });\n\n // calculate width of the axis label\n var labelWidth = label ? label.getBoundingClientRect().width : 0;\n var tickWidth = tickSize + tickMargin;\n\n // calculate the updated width of the y-axis\n var updatedYAxisWidth = maxTickWidth + tickWidth + labelWidth + (label ? labelGapWithTick : 0);\n return Math.round(updatedYAxisWidth);\n }\n return 0;\n};","import { isPercent } from '../util/DataUtils';\nexport var calculateChartDimensions = (containerWidth, containerHeight, props) => {\n var {\n width = '100%',\n height = '100%',\n aspect,\n maxHeight\n } = props;\n\n /*\n * The containerWidth and containerHeight are already percentage based because it's set as that percentage in CSS.\n * Means we don't have to calculate percentages here.\n */\n var calculatedWidth = isPercent(width) ? containerWidth : Number(width);\n var calculatedHeight = isPercent(height) ? containerHeight : Number(height);\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n if (calculatedWidth) {\n // Will default to using width for aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n } else if (calculatedHeight) {\n // But we should also take height into consideration\n calculatedWidth = calculatedHeight * aspect;\n }\n\n // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n if (maxHeight && calculatedHeight != null && calculatedHeight > maxHeight) {\n calculatedHeight = maxHeight;\n }\n }\n return {\n calculatedWidth,\n calculatedHeight\n };\n};\nvar bothOverflow = {\n width: 0,\n height: 0,\n overflow: 'visible'\n};\nvar overflowX = {\n width: 0,\n overflowX: 'visible'\n};\nvar overflowY = {\n height: 0,\n overflowY: 'visible'\n};\nvar noStyle = {};\n\n/**\n * This zero-size, overflow-visible is required to allow the chart to shrink.\n * Without it, the chart itself will fill the ResponsiveContainer, and while it allows the chart to grow,\n * it would always keep the container at the size of the chart,\n * and ResizeObserver would never fire.\n * With this zero-size element, the chart itself never actually fills the container,\n * it just so happens that it is visible because it overflows.\n * I learned this trick from the `react-virtualized` library: https://github.com/bvaughn/react-virtualized-auto-sizer/blob/master/src/AutoSizer.ts\n * See https://github.com/recharts/recharts/issues/172 and also https://github.com/bvaughn/react-virtualized/issues/68\n *\n * Also, we don't need to apply the zero-size style if the dimension is a fixed number (or undefined),\n * because in that case the chart can't shrink in that dimension anyway.\n * This fixes defining the dimensions using aspect ratio: https://github.com/recharts/recharts/issues/6245\n */\nexport var getInnerDivStyle = props => {\n var {\n width,\n height\n } = props;\n var isWidthPercent = isPercent(width);\n var isHeightPercent = isPercent(height);\n if (isWidthPercent && isHeightPercent) {\n return bothOverflow;\n }\n if (isWidthPercent) {\n return overflowX;\n }\n if (isHeightPercent) {\n return overflowY;\n }\n return noStyle;\n};\nexport function getDefaultWidthAndHeight(_ref) {\n var {\n width,\n height,\n aspect\n } = _ref;\n var calculatedWidth = width;\n var calculatedHeight = height;\n if (calculatedWidth === undefined && calculatedHeight === undefined) {\n calculatedWidth = '100%';\n calculatedHeight = '100%';\n } else if (calculatedWidth === undefined) {\n calculatedWidth = aspect && aspect > 0 ? undefined : '100%';\n } else if (calculatedHeight === undefined) {\n calculatedHeight = aspect && aspect > 0 ? undefined : '100%';\n }\n return {\n width: calculatedWidth,\n height: calculatedHeight\n };\n}","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); }\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); }\nimport { clsx } from 'clsx';\nimport * as React from 'react';\nimport { createContext, forwardRef, useCallback, useContext, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport throttle from 'es-toolkit/compat/throttle';\nimport { isNumber, noop } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { calculateChartDimensions, getDefaultWidthAndHeight, getInnerDivStyle } from './responsiveContainerUtils';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\nvar ResponsiveContainerContext = /*#__PURE__*/createContext({\n width: -1,\n height: -1\n});\nfunction isAcceptableSize(size) {\n return isPositiveNumber(size.width) && isPositiveNumber(size.height);\n}\nfunction ResponsiveContainerContextProvider(_ref) {\n var {\n children,\n width,\n height\n } = _ref;\n var size = useMemo(() => ({\n width,\n height\n }), [width, height]);\n if (!isAcceptableSize(size)) {\n /*\n * Don't render the container if width or height is non-positive because\n * in that case the chart will not be rendered properly anyway.\n * We will instead wait for the next resize event to provide the correct dimensions.\n */\n return null;\n }\n return /*#__PURE__*/React.createElement(ResponsiveContainerContext.Provider, {\n value: size\n }, children);\n}\nexport var useResponsiveContainerContext = () => useContext(ResponsiveContainerContext);\nvar SizeDetectorContainer = /*#__PURE__*/forwardRef((_ref2, ref) => {\n var {\n aspect,\n initialDimension = {\n width: -1,\n height: -1\n },\n width,\n height,\n /*\n * default min-width to 0 if not specified - 'auto' causes issues with flexbox\n * https://github.com/recharts/recharts/issues/172\n */\n minWidth = 0,\n minHeight,\n maxHeight,\n children,\n debounce = 0,\n id,\n className,\n onResize,\n style = {}\n } = _ref2;\n var containerRef = useRef(null);\n /*\n * We are using a ref to avoid re-creating the ResizeObserver when the onResize function changes.\n * The ref is updated on every render, so the latest onResize function is always available in the effect.\n */\n var onResizeRef = useRef();\n onResizeRef.current = onResize;\n useImperativeHandle(ref, () => containerRef.current);\n var [sizes, setSizes] = useState({\n containerWidth: initialDimension.width,\n containerHeight: initialDimension.height\n });\n var setContainerSize = useCallback((newWidth, newHeight) => {\n setSizes(prevState => {\n var roundedWidth = Math.round(newWidth);\n var roundedHeight = Math.round(newHeight);\n if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {\n return prevState;\n }\n return {\n containerWidth: roundedWidth,\n containerHeight: roundedHeight\n };\n });\n }, []);\n useEffect(() => {\n if (containerRef.current == null || typeof ResizeObserver === 'undefined') {\n return noop;\n }\n var callback = entries => {\n var _onResizeRef$current;\n var {\n width: containerWidth,\n height: containerHeight\n } = entries[0].contentRect;\n setContainerSize(containerWidth, containerHeight);\n (_onResizeRef$current = onResizeRef.current) === null || _onResizeRef$current === void 0 || _onResizeRef$current.call(onResizeRef, containerWidth, containerHeight);\n };\n if (debounce > 0) {\n callback = throttle(callback, debounce, {\n trailing: true,\n leading: false\n });\n }\n var observer = new ResizeObserver(callback);\n var {\n width: containerWidth,\n height: containerHeight\n } = containerRef.current.getBoundingClientRect();\n setContainerSize(containerWidth, containerHeight);\n observer.observe(containerRef.current);\n return () => {\n observer.disconnect();\n };\n }, [setContainerSize, debounce]);\n var {\n containerWidth,\n containerHeight\n } = sizes;\n warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n var {\n calculatedWidth,\n calculatedHeight\n } = calculateChartDimensions(containerWidth, containerHeight, {\n width,\n height,\n aspect,\n maxHeight\n });\n warn(calculatedWidth != null && calculatedWidth > 0 || calculatedHeight != null && calculatedHeight > 0, \"The width(%s) and height(%s) of chart should be greater than 0,\\n please check the style of container, or the props width(%s) and height(%s),\\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\\n height and width.\", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id ? \"\".concat(id) : undefined,\n className: clsx('recharts-responsive-container', className),\n style: _objectSpread(_objectSpread({}, style), {}, {\n width,\n height,\n minWidth,\n minHeight,\n maxHeight\n }),\n ref: containerRef\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: getInnerDivStyle({\n width,\n height\n })\n }, /*#__PURE__*/React.createElement(ResponsiveContainerContextProvider, {\n width: calculatedWidth,\n height: calculatedHeight\n }, children)));\n});\n\n/**\n * The `ResponsiveContainer` component is a container that adjusts its width and height based on the size of its parent element.\n * It is used to create responsive charts that adapt to different screen sizes.\n *\n * This component uses the `ResizeObserver` API to monitor changes to the size of its parent element.\n * If you need to support older browsers that do not support this API, you may need to include a polyfill.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver\n */\nexport var ResponsiveContainer = /*#__PURE__*/forwardRef((props, ref) => {\n var responsiveContainerContext = useResponsiveContainerContext();\n if (isPositiveNumber(responsiveContainerContext.width) && isPositiveNumber(responsiveContainerContext.height)) {\n /*\n * If we detect that we are already inside another ResponsiveContainer,\n * we do not attempt to add another layer of responsiveness.\n */\n return props.children;\n }\n var {\n width,\n height\n } = getDefaultWidthAndHeight({\n width: props.width,\n height: props.height,\n aspect: props.aspect\n });\n\n /*\n * Let's try to get the calculated dimensions without having the div container set up.\n * Sometimes this does produce fixed, positive dimensions. If so, we can skip rendering the div and monitoring its size.\n */\n var {\n calculatedWidth,\n calculatedHeight\n } = calculateChartDimensions(undefined, undefined, {\n width,\n height,\n aspect: props.aspect,\n maxHeight: props.maxHeight\n });\n if (isNumber(calculatedWidth) && isNumber(calculatedHeight)) {\n /*\n * If it just so happens that the combination of width, height, and aspect ratio\n * results in fixed dimensions, then we don't need to monitor the container's size.\n * We can just provide these fixed dimensions to the context.\n *\n * Note that here we are not checking for positive numbers;\n * if the user provides a zero or negative width/height, we will just pass that along\n * as whatever size we detect won't be helping anyway.\n */\n return /*#__PURE__*/React.createElement(ResponsiveContainerContextProvider, {\n width: calculatedWidth,\n height: calculatedHeight\n }, props.children);\n }\n /*\n * Static analysis did not produce fixed dimensions,\n * so we need to render a special div and monitor its size.\n */\n return /*#__PURE__*/React.createElement(SizeDetectorContainer, _extends({}, props, {\n width: width,\n height: height,\n ref: ref\n }));\n});","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isLength = require('../../predicate/isLength.js');\n\nfunction isArrayLike(value) {\n return value != null && typeof value !== 'function' && isLength.isLength(value.length);\n}\n\nexports.isArrayLike = isArrayLike;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst debounce$1 = require('../../function/debounce.js');\n\nfunction debounce(func, debounceMs = 0, options = {}) {\n if (typeof options !== 'object') {\n options = {};\n }\n const { leading = false, trailing = true, maxWait } = options;\n const edges = Array(2);\n if (leading) {\n edges[0] = 'leading';\n }\n if (trailing) {\n edges[1] = 'trailing';\n }\n let result = undefined;\n let pendingAt = null;\n const _debounced = debounce$1.debounce(function (...args) {\n result = func.apply(this, args);\n pendingAt = null;\n }, debounceMs, { edges });\n const debounced = function (...args) {\n if (maxWait != null) {\n if (pendingAt === null) {\n pendingAt = Date.now();\n }\n if (Date.now() - pendingAt >= maxWait) {\n result = func.apply(this, args);\n pendingAt = Date.now();\n _debounced.cancel();\n _debounced.schedule();\n return result;\n }\n }\n _debounced.apply(this, args);\n return result;\n };\n const flush = () => {\n _debounced.flush();\n return result;\n };\n debounced.cancel = _debounced.cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexports.debounce = debounce;\n","import { isWellBehavedNumber } from '../../../util/isWellBehavedNumber';\nexport var combineActiveTooltipIndex = (tooltipInteraction, chartData) => {\n var desiredIndex = tooltipInteraction === null || tooltipInteraction === void 0 ? void 0 : tooltipInteraction.index;\n if (desiredIndex == null) {\n return null;\n }\n var indexAsNumber = Number(desiredIndex);\n if (!isWellBehavedNumber(indexAsNumber)) {\n // this is for charts like Sankey and Treemap that do not support numerical indexes. We need a proper solution for this before we can start supporting keyboard events on these charts.\n return desiredIndex;\n }\n\n /*\n * Zero is a trivial limit for single-dimensional charts like Line and Area,\n * but this also needs a support for multidimensional charts like Sankey and Treemap! TODO\n */\n var lowerLimit = 0;\n var upperLimit = +Infinity;\n if (chartData.length > 0) {\n upperLimit = chartData.length - 1;\n }\n\n // now let's clamp the desiredIndex between the limits\n return String(Math.max(lowerLimit, Math.min(indexAsNumber, upperLimit)));\n};","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst toString = require('./toString.js');\nconst toKey = require('../_internal/toKey.js');\n\nfunction toPath(deepKey) {\n if (Array.isArray(deepKey)) {\n return deepKey.map(toKey.toKey);\n }\n if (typeof deepKey === 'symbol') {\n return [deepKey];\n }\n deepKey = toString.toString(deepKey);\n const result = [];\n const length = deepKey.length;\n if (length === 0) {\n return result;\n }\n let index = 0;\n let key = '';\n let quoteChar = '';\n let bracket = false;\n if (deepKey.charCodeAt(0) === 46) {\n result.push('');\n index++;\n }\n while (index < length) {\n const char = deepKey[index];\n if (quoteChar) {\n if (char === '\\\\' && index + 1 < length) {\n index++;\n key += deepKey[index];\n }\n else if (char === quoteChar) {\n quoteChar = '';\n }\n else {\n key += char;\n }\n }\n else if (bracket) {\n if (char === '\"' || char === \"'\") {\n quoteChar = char;\n }\n else if (char === ']') {\n bracket = false;\n result.push(key);\n key = '';\n }\n else {\n key += char;\n }\n }\n else {\n if (char === '[') {\n bracket = true;\n if (key) {\n result.push(key);\n key = '';\n }\n }\n else if (char === '.') {\n if (key) {\n result.push(key);\n key = '';\n }\n }\n else {\n key += char;\n }\n }\n index++;\n }\n if (key) {\n result.push(key);\n }\n return result;\n}\n\nexports.toPath = toPath;\n","import { createSlice } from '@reduxjs/toolkit';\nimport { isNan } from '../util/DataUtils';\n\n/**\n * These chart options are decided internally, by Recharts,\n * and will not change during the lifetime of the chart.\n *\n * Changing these options can be done by swapping the root element\n * which will make a brand-new Redux store.\n *\n * If you want to store options that can be changed by the user,\n * use UpdatableChartOptions in rootPropsSlice.ts.\n */\n\nexport function arrayTooltipSearcher(data, strIndex) {\n if (!strIndex) return undefined;\n var numIndex = Number.parseInt(strIndex, 10);\n if (isNan(numIndex)) {\n return undefined;\n }\n return data === null || data === void 0 ? void 0 : data[numIndex];\n}\nvar initialState = {\n chartName: '',\n tooltipPayloadSearcher: undefined,\n eventEmitter: undefined,\n defaultTooltipEventType: 'axis'\n};\nvar optionsSlice = createSlice({\n name: 'options',\n initialState,\n reducers: {\n createEventEmitter: state => {\n if (state.eventEmitter == null) {\n state.eventEmitter = Symbol('rechartsEventEmitter');\n }\n }\n }\n});\nexport var optionsReducer = optionsSlice.reducer;\nexport var {\n createEventEmitter\n} = optionsSlice.actions;","// src/index.ts\nfunction createThunkMiddleware(extraArgument) {\n const middleware = ({ dispatch, getState }) => (next) => (action) => {\n if (typeof action === \"function\") {\n return action(dispatch, getState, extraArgument);\n }\n return next(action);\n };\n return middleware;\n}\nvar thunk = createThunkMiddleware();\nvar withExtraArgument = createThunkMiddleware;\nexport {\n thunk,\n withExtraArgument\n};\n","import { current, isDraft } from './immerImports';\nimport { createSelectorCreator, weakMapMemoize } from './reselectImports';\nexport const createDraftSafeSelectorCreator: typeof createSelectorCreator = (...args: unknown[]) => {\n const createSelector = (createSelectorCreator as any)(...args);\n const createDraftSafeSelector = Object.assign((...args: unknown[]) => {\n const selector = createSelector(...args);\n const wrappedSelector = (value: unknown, ...rest: unknown[]) => selector(isDraft(value) ? current(value) : value, ...rest);\n Object.assign(wrappedSelector, selector);\n return wrappedSelector as any;\n }, {\n withTypes: () => createDraftSafeSelector\n });\n return createDraftSafeSelector;\n};\n\n/**\n * \"Draft-Safe\" version of `reselect`'s `createSelector`:\n * If an `immer`-drafted object is passed into the resulting selector's first argument,\n * the selector will act on the current draft value, instead of returning a cached value\n * that might be possibly outdated if the draft has been modified since.\n * @public\n */\nexport const createDraftSafeSelector = /* @__PURE__ */\ncreateDraftSafeSelectorCreator(weakMapMemoize);","import type { Action, ActionCreator, StoreEnhancer } from 'redux';\nimport { compose } from './reduxImports';\n\n/**\n * @public\n */\nexport interface DevToolsEnhancerOptions {\n /**\n * the instance name to be showed on the monitor page. Default value is `document.title`.\n * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\n */\n name?: string;\n /**\n * action creators functions to be available in the Dispatcher.\n */\n actionCreators?: ActionCreator<any>[] | {\n [key: string]: ActionCreator<any>;\n };\n /**\n * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\n * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\n * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\n *\n * @default 500 ms.\n */\n latency?: number;\n /**\n * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\n *\n * @default 50\n */\n maxAge?: number;\n /**\n * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you\n * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`\n * functions.\n */\n serialize?: boolean | {\n /**\n * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\n * - `false` - will handle also circular references.\n * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\n * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\n * For each of them you can indicate if to include (by setting as `true`).\n * For `function` key you can also specify a custom function which handles serialization.\n * See [`jsan`](https://github.com/kolodny/jsan) for more details.\n */\n options?: undefined | boolean | {\n date?: true;\n regex?: true;\n undefined?: true;\n error?: true;\n symbol?: true;\n map?: true;\n set?: true;\n function?: true | ((fn: (...args: any[]) => any) => string);\n };\n /**\n * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.\n * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)\n * key. So you can deserialize it back while importing or persisting data.\n * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):\n */\n replacer?: (key: string, value: unknown) => any;\n /**\n * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)\n * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)\n * as an example on how to serialize special data types and get them back.\n */\n reviver?: (key: string, value: unknown) => any;\n /**\n * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).\n * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.\n * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.\n */\n immutable?: any;\n /**\n * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\n */\n refs?: any;\n };\n /**\n * function which takes `action` object and id number as arguments, and should return `action` object back.\n */\n actionSanitizer?: <A extends Action>(action: A, id: number) => A;\n /**\n * function which takes `state` object and index as arguments, and should return `state` object back.\n */\n stateSanitizer?: <S>(state: S, index: number) => S;\n /**\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\n */\n actionsDenylist?: string | string[];\n /**\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\n */\n actionsAllowlist?: string | string[];\n /**\n * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\n * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.\n */\n predicate?: <S, A extends Action>(state: S, action: A) => boolean;\n /**\n * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\n * Available only for Redux enhancer, for others use `autoPause`.\n *\n * @default true\n */\n shouldRecordChanges?: boolean;\n /**\n * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\n * If not specified, will commit when paused. Available only for Redux enhancer.\n *\n * @default \"@@PAUSED\"\"\n */\n pauseActionType?: string;\n /**\n * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\n * Not available for Redux enhancer (as it already does it but storing the data to be sent).\n *\n * @default false\n */\n autoPause?: boolean;\n /**\n * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\n * Available only for Redux enhancer.\n *\n * @default false\n */\n shouldStartLocked?: boolean;\n /**\n * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\n *\n * @default true\n */\n shouldHotReload?: boolean;\n /**\n * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\n *\n * @default false\n */\n shouldCatchErrors?: boolean;\n /**\n * If you want to restrict the extension, specify the features you allow.\n * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\n * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\n * Otherwise, you'll get/set the data right from the monitor part.\n */\n features?: {\n /**\n * start/pause recording of dispatched actions\n */\n pause?: boolean;\n /**\n * lock/unlock dispatching actions and side effects\n */\n lock?: boolean;\n /**\n * persist states on page reloading\n */\n persist?: boolean;\n /**\n * export history of actions in a file\n */\n export?: boolean | 'custom';\n /**\n * import history of actions from a file\n */\n import?: boolean | 'custom';\n /**\n * jump back and forth (time travelling)\n */\n jump?: boolean;\n /**\n * skip (cancel) actions\n */\n skip?: boolean;\n /**\n * drag and drop actions in the history list\n */\n reorder?: boolean;\n /**\n * dispatch custom actions or action creators\n */\n dispatch?: boolean;\n /**\n * generate tests for the selected actions\n */\n test?: boolean;\n };\n /**\n * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\n * Defaults to false.\n */\n trace?: boolean | (<A extends Action>(action: A) => string);\n /**\n * The maximum number of stack trace entries to record per action. Defaults to 10.\n */\n traceLimit?: number;\n}\ntype Compose = typeof compose;\ninterface ComposeWithDevTools {\n (options: DevToolsEnhancerOptions): Compose;\n <StoreExt extends {}>(...funcs: StoreEnhancer<StoreExt>[]): StoreEnhancer<StoreExt>;\n}\n\n/**\n * @public\n */\nexport const composeWithDevTools: ComposeWithDevTools = typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function () {\n if (arguments.length === 0) return undefined;\n if (typeof arguments[0] === 'object') return compose;\n return compose.apply(null, arguments as any as Function[]);\n};\n\n/**\n * @public\n */\nexport const devToolsEnhancer: {\n (options: DevToolsEnhancerOptions): StoreEnhancer<any>;\n} = typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__ ? (window as any).__REDUX_DEVTOOLS_EXTENSION__ : function () {\n return function (noop) {\n return noop;\n };\n};","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport { isAction } from './reduxImports';\nimport type { IsUnknownOrNonInferrable, IfMaybeUndefined, IfVoid, IsAny } from './tsHelpers';\nimport { hasMatchFunction } from './tsHelpers';\n\n/**\n * An action with a string type and an associated payload. This is the\n * type of action returned by `createAction()` action creators.\n *\n * @template P The type of the action's payload.\n * @template T the type used for the action type.\n * @template M The type of the action's meta (optional)\n * @template E The type of the action's error (optional)\n *\n * @public\n */\nexport type PayloadAction<P = void, T extends string = string, M = never, E = never> = {\n payload: P;\n type: T;\n} & ([M] extends [never] ? {} : {\n meta: M;\n}) & ([E] extends [never] ? {} : {\n error: E;\n});\n\n/**\n * A \"prepare\" method to be used as the second parameter of `createAction`.\n * Takes any number of arguments and returns a Flux Standard Action without\n * type (will be added later) that *must* contain a payload (might be undefined).\n *\n * @public\n */\nexport type PrepareAction<P> = ((...args: any[]) => {\n payload: P;\n}) | ((...args: any[]) => {\n payload: P;\n meta: any;\n}) | ((...args: any[]) => {\n payload: P;\n error: any;\n}) | ((...args: any[]) => {\n payload: P;\n meta: any;\n error: any;\n});\n\n/**\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\n *\n * @internal\n */\nexport type _ActionCreatorWithPreparedPayload<PA extends PrepareAction<any> | void, T extends string = string> = PA extends PrepareAction<infer P> ? ActionCreatorWithPreparedPayload<Parameters<PA>, P, T, ReturnType<PA> extends {\n error: infer E;\n} ? E : never, ReturnType<PA> extends {\n meta: infer M;\n} ? M : never> : void;\n\n/**\n * Basic type for all action creators.\n *\n * @inheritdoc {redux#ActionCreator}\n */\nexport type BaseActionCreator<P, T extends string, M = never, E = never> = {\n type: T;\n match: (action: unknown) => action is PayloadAction<P, T, M, E>;\n};\n\n/**\n * An action creator that takes multiple arguments that are passed\n * to a `PrepareAction` method to create the final Action.\n * @typeParam Args arguments for the action creator function\n * @typeParam P `payload` type\n * @typeParam T `type` name\n * @typeParam E optional `error` type\n * @typeParam M optional `meta` type\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithPreparedPayload<Args extends unknown[], P, T extends string = string, E = never, M = never> extends BaseActionCreator<P, T, M, E> {\n /**\n * Calling this {@link redux#ActionCreator} with `Args` will return\n * an Action with a payload of type `P` and (depending on the `PrepareAction`\n * method used) a `meta`- and `error` property of types `M` and `E` respectively.\n */\n (...args: Args): PayloadAction<P, T, M, E>;\n}\n\n/**\n * An action creator of type `T` that takes an optional payload of type `P`.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithOptionalPayload<P, T extends string = string> extends BaseActionCreator<P, T> {\n /**\n * Calling this {@link redux#ActionCreator} with an argument will\n * return a {@link PayloadAction} of type `T` with a payload of `P`.\n * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\n */\n (payload?: P): PayloadAction<P, T>;\n}\n\n/**\n * An action creator of type `T` that takes no payload.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithoutPayload<T extends string = string> extends BaseActionCreator<undefined, T> {\n /**\n * Calling this {@link redux#ActionCreator} will\n * return a {@link PayloadAction} of type `T` with a payload of `undefined`\n */\n (noArgument: void): PayloadAction<undefined, T>;\n}\n\n/**\n * An action creator of type `T` that requires a payload of type P.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithPayload<P, T extends string = string> extends BaseActionCreator<P, T> {\n /**\n * Calling this {@link redux#ActionCreator} with an argument will\n * return a {@link PayloadAction} of type `T` with a payload of `P`\n */\n (payload: P): PayloadAction<P, T>;\n}\n\n/**\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithNonInferrablePayload<T extends string = string> extends BaseActionCreator<unknown, T> {\n /**\n * Calling this {@link redux#ActionCreator} with an argument will\n * return a {@link PayloadAction} of type `T` with a payload\n * of exactly the type of the argument.\n */\n <PT extends unknown>(payload: PT): PayloadAction<PT, T>;\n}\n\n/**\n * An action creator that produces actions with a `payload` attribute.\n *\n * @typeParam P the `payload` type\n * @typeParam T the `type` of the resulting action\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\n *\n * @public\n */\nexport type PayloadActionCreator<P = void, T extends string = string, PA extends PrepareAction<P> | void = void> = IfPrepareActionMethodProvided<PA, _ActionCreatorWithPreparedPayload<PA, T>,\n// else\nIsAny<P, ActionCreatorWithPayload<any, T>, IsUnknownOrNonInferrable<P, ActionCreatorWithNonInferrablePayload<T>,\n// else\nIfVoid<P, ActionCreatorWithoutPayload<T>,\n// else\nIfMaybeUndefined<P, ActionCreatorWithOptionalPayload<P, T>,\n// else\nActionCreatorWithPayload<P, T>>>>>>;\n\n/**\n * A utility function to create an action creator for the given action type\n * string. The action creator accepts a single argument, which will be included\n * in the action object as a field called payload. The action creator function\n * will also have its toString() overridden so that it returns the action type.\n *\n * @param type The action type to use for created actions.\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\n *\n * @public\n */\nexport function createAction<P = void, T extends string = string>(type: T): PayloadActionCreator<P, T>;\n\n/**\n * A utility function to create an action creator for the given action type\n * string. The action creator accepts a single argument, which will be included\n * in the action object as a field called payload. The action creator function\n * will also have its toString() overridden so that it returns the action type.\n *\n * @param type The action type to use for created actions.\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\n *\n * @public\n */\nexport function createAction<PA extends PrepareAction<any>, T extends string = string>(type: T, prepareAction: PA): PayloadActionCreator<ReturnType<PA>['payload'], T, PA>;\nexport function createAction(type: string, prepareAction?: Function): any {\n function actionCreator(...args: any[]) {\n if (prepareAction) {\n let prepared = prepareAction(...args);\n if (!prepared) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(0) : 'prepareAction did not return an object');\n }\n return {\n type,\n payload: prepared.payload,\n ...('meta' in prepared && {\n meta: prepared.meta\n }),\n ...('error' in prepared && {\n error: prepared.error\n })\n };\n }\n return {\n type,\n payload: args[0]\n };\n }\n actionCreator.toString = () => `${type}`;\n actionCreator.type = type;\n actionCreator.match = (action: unknown): action is PayloadAction => isAction(action) && action.type === type;\n return actionCreator;\n}\n\n/**\n * Returns true if value is an RTK-like action creator, with a static type property and match method.\n */\nexport function isActionCreator(action: unknown): action is BaseActionCreator<unknown, string> & Function {\n return typeof action === 'function' && 'type' in action &&\n // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\n hasMatchFunction(action as any);\n}\n\n/**\n * Returns true if value is an action with a string type and valid Flux Standard Action keys.\n */\nexport function isFSA(action: unknown): action is {\n type: string;\n payload?: unknown;\n error?: unknown;\n meta?: unknown;\n} {\n return isAction(action) && Object.keys(action).every(isValidKey);\n}\nfunction isValidKey(key: string) {\n return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1;\n}\n\n// helper types for more readable typings\n\ntype IfPrepareActionMethodProvided<PA extends PrepareAction<any> | void, True, False> = PA extends ((...args: any[]) => any) ? True : False;","import { createNextState, isDraftable } from './immerImports';\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\n let elapsed = 0;\n return {\n measureTime<T>(fn: () => T): T {\n const started = Date.now();\n try {\n return fn();\n } finally {\n const finished = Date.now();\n elapsed += finished - started;\n }\n },\n warnIfExceeded() {\n if (elapsed > maxDelay) {\n console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\nIt is disabled in production builds, so you don't need to worry about that.`);\n }\n }\n };\n}\nexport function delay(ms: number) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\nexport class Tuple<Items extends ReadonlyArray<unknown> = []> extends Array<Items[number]> {\n constructor(length: number);\n constructor(...items: Items);\n constructor(...items: any[]) {\n super(...items);\n Object.setPrototypeOf(this, Tuple.prototype);\n }\n static override get [Symbol.species]() {\n return Tuple as any;\n }\n override concat<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...Items, ...AdditionalItems]>;\n override concat<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n override concat<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n override concat(...arr: any[]) {\n return super.concat.apply(this, arr);\n }\n prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...AdditionalItems, ...Items]>;\n prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n prepend<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n prepend(...arr: any[]) {\n if (arr.length === 1 && Array.isArray(arr[0])) {\n return new Tuple(...arr[0].concat(this));\n }\n return new Tuple(...arr.concat(this));\n }\n}\nexport function freezeDraftable<T>(val: T) {\n return isDraftable(val) ? createNextState(val, () => {}) : val;\n}\nexport function getOrInsert<K extends object, V>(map: WeakMap<K, V>, key: K, value: V): V;\nexport function getOrInsert<K, V>(map: Map<K, V>, key: K, value: V): V;\nexport function getOrInsert<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, value: V): V {\n if (map.has(key)) return map.get(key) as V;\n return map.set(key, value).get(key) as V;\n}\nexport function getOrInsertComputed<K extends object, V>(map: WeakMap<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K, V>(map: Map<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, compute: (key: K) => V): V {\n if (map.has(key)) return map.get(key) as V;\n return map.set(key, compute(key)).get(key) as V;\n}\nexport function promiseWithResolvers<T>(): {\n promise: Promise<T>;\n resolve: (value: T | PromiseLike<T>) => void;\n reject: (reason?: any) => void;\n} {\n let resolve: any;\n let reject: any;\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n return {\n promise,\n resolve,\n reject\n };\n}","import type { Middleware, UnknownAction } from 'redux';\nimport type { ThunkMiddleware } from 'redux-thunk';\nimport { thunk as thunkMiddleware, withExtraArgument } from 'redux-thunk';\nimport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware';\nimport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware';\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware';\n/* PROD_START_REMOVE_UMD */\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware';\n/* PROD_STOP_REMOVE_UMD */\n\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware';\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware';\nimport type { ExcludeFromTuple } from './tsHelpers';\nimport { Tuple } from './utils';\nfunction isBoolean(x: any): x is boolean {\n return typeof x === 'boolean';\n}\ninterface ThunkOptions<E = any> {\n extraArgument: E;\n}\ninterface GetDefaultMiddlewareOptions {\n thunk?: boolean | ThunkOptions;\n immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions;\n serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions;\n actionCreatorCheck?: boolean | ActionCreatorInvariantMiddlewareOptions;\n}\nexport type ThunkMiddlewareFor<S, O extends GetDefaultMiddlewareOptions = {}> = O extends {\n thunk: false;\n} ? never : O extends {\n thunk: {\n extraArgument: infer E;\n };\n} ? ThunkMiddleware<S, UnknownAction, E> : ThunkMiddleware<S, UnknownAction>;\nexport type GetDefaultMiddleware<S = any> = <O extends GetDefaultMiddlewareOptions = {\n thunk: true;\n immutableCheck: true;\n serializableCheck: true;\n actionCreatorCheck: true;\n}>(options?: O) => Tuple<ExcludeFromTuple<[ThunkMiddlewareFor<S, O>], never>>;\nexport const buildGetDefaultMiddleware = <S = any,>(): GetDefaultMiddleware<S> => function getDefaultMiddleware(options) {\n const {\n thunk = true,\n immutableCheck = true,\n serializableCheck = true,\n actionCreatorCheck = true\n } = options ?? {};\n let middlewareArray = new Tuple<Middleware[]>();\n if (thunk) {\n if (isBoolean(thunk)) {\n middlewareArray.push(thunkMiddleware);\n } else {\n middlewareArray.push(withExtraArgument(thunk.extraArgument));\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n if (immutableCheck) {\n /* PROD_START_REMOVE_UMD */\n let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {};\n if (!isBoolean(immutableCheck)) {\n immutableOptions = immutableCheck;\n }\n middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));\n /* PROD_STOP_REMOVE_UMD */\n }\n if (serializableCheck) {\n let serializableOptions: SerializableStateInvariantMiddlewareOptions = {};\n if (!isBoolean(serializableCheck)) {\n serializableOptions = serializableCheck;\n }\n middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));\n }\n if (actionCreatorCheck) {\n let actionCreatorOptions: ActionCreatorInvariantMiddlewareOptions = {};\n if (!isBoolean(actionCreatorCheck)) {\n actionCreatorOptions = actionCreatorCheck;\n }\n middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));\n }\n }\n return middlewareArray as any;\n};","import type { StoreEnhancer } from 'redux';\nexport const SHOULD_AUTOBATCH = 'RTK_autoBatch';\nexport const prepareAutoBatched = <T,>() => (payload: T): {\n payload: T;\n meta: unknown;\n} => ({\n payload,\n meta: {\n [SHOULD_AUTOBATCH]: true\n }\n});\nconst createQueueWithTimer = (timeout: number) => {\n return (notify: () => void) => {\n setTimeout(notify, timeout);\n };\n};\nexport type AutoBatchOptions = {\n type: 'tick';\n} | {\n type: 'timer';\n timeout: number;\n} | {\n type: 'raf';\n} | {\n type: 'callback';\n queueNotification: (notify: () => void) => void;\n};\n\n/**\n * A Redux store enhancer that watches for \"low-priority\" actions, and delays\n * notifying subscribers until either the queued callback executes or the\n * next \"standard-priority\" action is dispatched.\n *\n * This allows dispatching multiple \"low-priority\" actions in a row with only\n * a single subscriber notification to the UI after the sequence of actions\n * is finished, thus improving UI re-render performance.\n *\n * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.\n * This can be added to `action.meta` manually, or by using the\n * `prepareAutoBatched` helper.\n *\n * By default, it will queue a notification for the end of the event loop tick.\n * However, you can pass several other options to configure the behavior:\n * - `{type: 'tick'}`: queues using `queueMicrotask`\n * - `{type: 'timer', timeout: number}`: queues using `setTimeout`\n * - `{type: 'raf'}`: queues using `requestAnimationFrame` (default)\n * - `{type: 'callback', queueNotification: (notify: () => void) => void}`: lets you provide your own callback\n *\n *\n */\nexport const autoBatchEnhancer = (options: AutoBatchOptions = {\n type: 'raf'\n}): StoreEnhancer => next => (...args) => {\n const store = next(...args);\n let notifying = true;\n let shouldNotifyAtEndOfTick = false;\n let notificationQueued = false;\n const listeners = new Set<() => void>();\n const queueCallback = options.type === 'tick' ? queueMicrotask : options.type === 'raf' ?\n // requestAnimationFrame won't exist in SSR environments. Fall back to a vague approximation just to keep from erroring.\n typeof window !== 'undefined' && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10) : options.type === 'callback' ? options.queueNotification : createQueueWithTimer(options.timeout);\n const notifyListeners = () => {\n // We're running at the end of the event loop tick.\n // Run the real listener callbacks to actually update the UI.\n notificationQueued = false;\n if (shouldNotifyAtEndOfTick) {\n shouldNotifyAtEndOfTick = false;\n listeners.forEach(l => l());\n }\n };\n return Object.assign({}, store, {\n // Override the base `store.subscribe` method to keep original listeners\n // from running if we're delaying notifications\n subscribe(listener: () => void) {\n // Each wrapped listener will only call the real listener if\n // the `notifying` flag is currently active when it's called.\n // This lets the base store work as normal, while the actual UI\n // update becomes controlled by this enhancer.\n const wrappedListener: typeof listener = () => notifying && listener();\n const unsubscribe = store.subscribe(wrappedListener);\n listeners.add(listener);\n return () => {\n unsubscribe();\n listeners.delete(listener);\n };\n },\n // Override the base `store.dispatch` method so that we can check actions\n // for the `shouldAutoBatch` flag and determine if batching is active\n dispatch(action: any) {\n try {\n // If the action does _not_ have the `shouldAutoBatch` flag,\n // we resume/continue normal notify-after-each-dispatch behavior\n notifying = !action?.meta?.[SHOULD_AUTOBATCH];\n // If a `notifyListeners` microtask was queued, you can't cancel it.\n // Instead, we set a flag so that it's a no-op when it does run\n shouldNotifyAtEndOfTick = !notifying;\n if (shouldNotifyAtEndOfTick) {\n // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue\n // a microtask to notify listeners at the end of the event loop tick.\n // Make sure we only enqueue this _once_ per tick.\n if (!notificationQueued) {\n notificationQueued = true;\n queueCallback(notifyListeners);\n }\n }\n // Go ahead and process the action as usual, including reducers.\n // If normal notification behavior is enabled, the store will notify\n // all of its own listeners, and the wrapper callbacks above will\n // see `notifying` is true and pass on to the real listener callbacks.\n // If we're \"batching\" behavior, then the wrapped callbacks will\n // bail out, causing the base store notification behavior to be no-ops.\n return store.dispatch(action);\n } finally {\n // Assume we're back to normal behavior after each action\n notifying = true;\n }\n }\n });\n};","import type { StoreEnhancer } from 'redux';\nimport type { AutoBatchOptions } from './autoBatchEnhancer';\nimport { autoBatchEnhancer } from './autoBatchEnhancer';\nimport { Tuple } from './utils';\nimport type { Middlewares } from './configureStore';\nimport type { ExtractDispatchExtensions } from './tsHelpers';\ntype GetDefaultEnhancersOptions = {\n autoBatch?: boolean | AutoBatchOptions;\n};\nexport type GetDefaultEnhancers<M extends Middlewares<any>> = (options?: GetDefaultEnhancersOptions) => Tuple<[StoreEnhancer<{\n dispatch: ExtractDispatchExtensions<M>;\n}>]>;\nexport const buildGetDefaultEnhancers = <M extends Middlewares<any>,>(middlewareEnhancer: StoreEnhancer<{\n dispatch: ExtractDispatchExtensions<M>;\n}>): GetDefaultEnhancers<M> => function getDefaultEnhancers(options) {\n const {\n autoBatch = true\n } = options ?? {};\n let enhancerArray = new Tuple<StoreEnhancer[]>(middlewareEnhancer);\n if (autoBatch) {\n enhancerArray.push(autoBatchEnhancer(typeof autoBatch === 'object' ? autoBatch : undefined));\n }\n return enhancerArray as any;\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7, formatProdErrorMessage as _formatProdErrorMessage8 } from \"@reduxjs/toolkit\";\nimport type { Reducer, ReducersMapObject, Middleware, Action, StoreEnhancer, Store, UnknownAction } from 'redux';\nimport { applyMiddleware, createStore, compose, combineReducers, isPlainObject } from './reduxImports';\nimport type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension';\nimport { composeWithDevTools } from './devtoolsExtension';\nimport type { ThunkMiddlewareFor, GetDefaultMiddleware } from './getDefaultMiddleware';\nimport { buildGetDefaultMiddleware } from './getDefaultMiddleware';\nimport type { ExtractDispatchExtensions, ExtractStoreExtensions, ExtractStateExtensions, UnknownIfNonSpecific } from './tsHelpers';\nimport type { Tuple } from './utils';\nimport type { GetDefaultEnhancers } from './getDefaultEnhancers';\nimport { buildGetDefaultEnhancers } from './getDefaultEnhancers';\n\n/**\n * Options for `configureStore()`.\n *\n * @public\n */\nexport interface ConfigureStoreOptions<S = any, A extends Action = UnknownAction, M extends Tuple<Middlewares<S>> = Tuple<Middlewares<S>>, E extends Tuple<Enhancers> = Tuple<Enhancers>, P = S> {\n /**\n * A single reducer function that will be used as the root reducer, or an\n * object of slice reducers that will be passed to `combineReducers()`.\n */\n reducer: Reducer<S, A, P> | ReducersMapObject<S, A, P>;\n\n /**\n * An array of Redux middleware to install, or a callback receiving `getDefaultMiddleware` and returning a Tuple of middleware.\n * If not supplied, defaults to the set of middleware returned by `getDefaultMiddleware()`.\n *\n * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`\n * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage\n */\n middleware?: (getDefaultMiddleware: GetDefaultMiddleware<S>) => M;\n\n /**\n * Whether to enable Redux DevTools integration. Defaults to `true`.\n *\n * Additional configuration can be done by passing Redux DevTools options\n */\n devTools?: boolean | DevToolsOptions;\n\n /**\n * Whether to check for duplicate middleware instances. Defaults to `true`.\n */\n duplicateMiddlewareCheck?: boolean;\n\n /**\n * The initial state, same as Redux's createStore.\n * You may optionally specify it to hydrate the state\n * from the server in universal apps, or to restore a previously serialized\n * user session. If you use `combineReducers()` to produce the root reducer\n * function (either directly or indirectly by passing an object as `reducer`),\n * this must be an object with the same shape as the reducer map keys.\n */\n // we infer here, and instead complain if the reducer doesn't match\n preloadedState?: P;\n\n /**\n * The store enhancers to apply. See Redux's `createStore()`.\n * All enhancers will be included before the DevTools Extension enhancer.\n * If you need to customize the order of enhancers, supply a callback\n * function that will receive a `getDefaultEnhancers` function that returns a Tuple,\n * and should return a Tuple of enhancers (such as `getDefaultEnhancers().concat(offline)`).\n * If you only need to add middleware, you can use the `middleware` parameter instead.\n */\n enhancers?: (getDefaultEnhancers: GetDefaultEnhancers<M>) => E;\n}\nexport type Middlewares<S> = ReadonlyArray<Middleware<{}, S>>;\ntype Enhancers = ReadonlyArray<StoreEnhancer>;\n\n/**\n * A Redux store returned by `configureStore()`. Supports dispatching\n * side-effectful _thunks_ in addition to plain actions.\n *\n * @public\n */\nexport type EnhancedStore<S = any, A extends Action = UnknownAction, E extends Enhancers = Enhancers> = ExtractStoreExtensions<E> & Store<S, A, UnknownIfNonSpecific<ExtractStateExtensions<E>>>;\n\n/**\n * A friendly abstraction over the standard Redux `createStore()` function.\n *\n * @param options The store configuration.\n * @returns A configured Redux store.\n *\n * @public\n */\nexport function configureStore<S = any, A extends Action = UnknownAction, M extends Tuple<Middlewares<S>> = Tuple<[ThunkMiddlewareFor<S>]>, E extends Tuple<Enhancers> = Tuple<[StoreEnhancer<{\n dispatch: ExtractDispatchExtensions<M>;\n}>, StoreEnhancer]>, P = S>(options: ConfigureStoreOptions<S, A, M, E, P>): EnhancedStore<S, A, E> {\n const getDefaultMiddleware = buildGetDefaultMiddleware<S>();\n const {\n reducer = undefined,\n middleware,\n devTools = true,\n duplicateMiddlewareCheck = true,\n preloadedState = undefined,\n enhancers = undefined\n } = options || {};\n let rootReducer: Reducer<S, A, P>;\n if (typeof reducer === 'function') {\n rootReducer = reducer;\n } else if (isPlainObject(reducer)) {\n rootReducer = combineReducers(reducer) as unknown as Reducer<S, A, P>;\n } else {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(1) : '`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers');\n }\n if (process.env.NODE_ENV !== 'production' && middleware && typeof middleware !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(2) : '`middleware` field must be a callback');\n }\n let finalMiddleware: Tuple<Middlewares<S>>;\n if (typeof middleware === 'function') {\n finalMiddleware = middleware(getDefaultMiddleware);\n if (process.env.NODE_ENV !== 'production' && !Array.isArray(finalMiddleware)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(3) : 'when using a middleware builder function, an array of middleware must be returned');\n }\n } else {\n finalMiddleware = getDefaultMiddleware();\n }\n if (process.env.NODE_ENV !== 'production' && finalMiddleware.some((item: any) => typeof item !== 'function')) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(4) : 'each middleware provided to configureStore must be a function');\n }\n if (process.env.NODE_ENV !== 'production' && duplicateMiddlewareCheck) {\n let middlewareReferences = new Set<Middleware<any, S>>();\n finalMiddleware.forEach(middleware => {\n if (middlewareReferences.has(middleware)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(42) : 'Duplicate middleware references found when creating the store. Ensure that each middleware is only included once.');\n }\n middlewareReferences.add(middleware);\n });\n }\n let finalCompose = compose;\n if (devTools) {\n finalCompose = composeWithDevTools({\n // Enable capture of stack traces for dispatched Redux actions\n trace: process.env.NODE_ENV !== 'production',\n ...(typeof devTools === 'object' && devTools)\n });\n }\n const middlewareEnhancer = applyMiddleware(...finalMiddleware);\n const getDefaultEnhancers = buildGetDefaultEnhancers<M>(middlewareEnhancer);\n if (process.env.NODE_ENV !== 'production' && enhancers && typeof enhancers !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(5) : '`enhancers` field must be a callback');\n }\n let storeEnhancers = typeof enhancers === 'function' ? enhancers(getDefaultEnhancers) : getDefaultEnhancers();\n if (process.env.NODE_ENV !== 'production' && !Array.isArray(storeEnhancers)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(6) : '`enhancers` callback must return an array');\n }\n if (process.env.NODE_ENV !== 'production' && storeEnhancers.some((item: any) => typeof item !== 'function')) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(7) : 'each enhancer provided to configureStore must be a function');\n }\n if (process.env.NODE_ENV !== 'production' && finalMiddleware.length && !storeEnhancers.includes(middlewareEnhancer)) {\n console.error('middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`');\n }\n const composedEnhancer: StoreEnhancer<any> = finalCompose(...storeEnhancers);\n return createStore(rootReducer, preloadedState as P, composedEnhancer);\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7 } from \"@reduxjs/toolkit\";\nimport type { Action } from 'redux';\nimport type { CaseReducer, CaseReducers, ActionMatcherDescriptionCollection } from './createReducer';\nimport type { TypeGuard } from './tsHelpers';\nimport type { AsyncThunk, AsyncThunkConfig } from './createAsyncThunk';\nexport type AsyncThunkReducers<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = {\n pending?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['pending']>>;\n rejected?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected']>>;\n fulfilled?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['fulfilled']>>;\n settled?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected' | 'fulfilled']>>;\n};\nexport type TypedActionCreator<Type extends string> = {\n (...args: any[]): Action<Type>;\n type: Type;\n};\n\n/**\n * A builder for an action <-> reducer map.\n *\n * @public\n */\nexport interface ActionReducerMapBuilder<State> {\n /**\n * Adds a case reducer to handle a single exact action type.\n * @remarks\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n * @param reducer - The actual case reducer function.\n */\n addCase<ActionCreator extends TypedActionCreator<string>>(actionCreator: ActionCreator, reducer: CaseReducer<State, ReturnType<ActionCreator>>): ActionReducerMapBuilder<State>;\n /**\n * Adds a case reducer to handle a single exact action type.\n * @remarks\n * All calls to `builder.addCase` must come before any calls to `builder.addAsyncThunk`, `builder.addMatcher` or `builder.addDefaultCase`.\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n * @param reducer - The actual case reducer function.\n */\n addCase<Type extends string, A extends Action<Type>>(type: Type, reducer: CaseReducer<State, A>): ActionReducerMapBuilder<State>;\n\n /**\n * Adds case reducers to handle actions based on a `AsyncThunk` action creator.\n * @remarks\n * All calls to `builder.addAsyncThunk` must come before after any calls to `builder.addCase` and before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\n * @param asyncThunk - The async thunk action creator itself.\n * @param reducers - A mapping from each of the `AsyncThunk` action types to the case reducer that should handle those actions.\n * @example\n ```ts no-transpile\n import { createAsyncThunk, createReducer } from '@reduxjs/toolkit'\n const fetchUserById = createAsyncThunk('users/fetchUser', async (id) => {\n const response = await fetch(`https://reqres.in/api/users/${id}`)\n return (await response.json()).data\n })\n const reducer = createReducer(initialState, (builder) => {\n builder.addAsyncThunk(fetchUserById, {\n pending: (state, action) => {\n state.fetchUserById.loading = 'pending'\n },\n fulfilled: (state, action) => {\n state.fetchUserById.data = action.payload\n },\n rejected: (state, action) => {\n state.fetchUserById.error = action.error\n },\n settled: (state, action) => {\n state.fetchUserById.loading = action.meta.requestStatus\n },\n })\n })\n */\n addAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig = {}>(asyncThunk: AsyncThunk<Returned, ThunkArg, ThunkApiConfig>, reducers: AsyncThunkReducers<State, ThunkArg, Returned, ThunkApiConfig>): Omit<ActionReducerMapBuilder<State>, 'addCase'>;\n\n /**\n * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\n * @remarks\n * If multiple matcher reducers match, all of them will be executed in the order\n * they were defined in - even if a case reducer already matched.\n * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and `builder.addAsyncThunk` and before any calls to `builder.addDefaultCase`.\n * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n * function\n * @param reducer - The actual case reducer function.\n *\n * @example\n ```ts\n import {\n createAction,\n createReducer,\n AsyncThunk,\n UnknownAction,\n } from \"@reduxjs/toolkit\";\n type GenericAsyncThunk = AsyncThunk<unknown, unknown, any>;\n type PendingAction = ReturnType<GenericAsyncThunk[\"pending\"]>;\n type RejectedAction = ReturnType<GenericAsyncThunk[\"rejected\"]>;\n type FulfilledAction = ReturnType<GenericAsyncThunk[\"fulfilled\"]>;\n const initialState: Record<string, string> = {};\n const resetAction = createAction(\"reset-tracked-loading-state\");\n function isPendingAction(action: UnknownAction): action is PendingAction {\n return typeof action.type === \"string\" && action.type.endsWith(\"/pending\");\n }\n const reducer = createReducer(initialState, (builder) => {\n builder\n .addCase(resetAction, () => initialState)\n // matcher can be defined outside as a type predicate function\n .addMatcher(isPendingAction, (state, action) => {\n state[action.meta.requestId] = \"pending\";\n })\n .addMatcher(\n // matcher can be defined inline as a type predicate function\n (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\n (state, action) => {\n state[action.meta.requestId] = \"rejected\";\n }\n )\n // matcher can just return boolean and the matcher can receive a generic argument\n .addMatcher<FulfilledAction>(\n (action) => action.type.endsWith(\"/fulfilled\"),\n (state, action) => {\n state[action.meta.requestId] = \"fulfilled\";\n }\n );\n });\n ```\n */\n addMatcher<A>(matcher: TypeGuard<A> | ((action: any) => boolean), reducer: CaseReducer<State, A extends Action ? A : A & Action>): Omit<ActionReducerMapBuilder<State>, 'addCase' | 'addAsyncThunk'>;\n\n /**\n * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\n * reducer was executed for this action.\n * @param reducer - The fallback \"default case\" reducer function.\n *\n * @example\n ```ts\n import { createReducer } from '@reduxjs/toolkit'\n const initialState = { otherActions: 0 }\n const reducer = createReducer(initialState, builder => {\n builder\n // .addCase(...)\n // .addMatcher(...)\n .addDefaultCase((state, action) => {\n state.otherActions++\n })\n })\n ```\n */\n addDefaultCase(reducer: CaseReducer<State, Action>): {};\n}\nexport function executeReducerBuilderCallback<S>(builderCallback: (builder: ActionReducerMapBuilder<S>) => void): [CaseReducers<S, any>, ActionMatcherDescriptionCollection<S>, CaseReducer<S, Action> | undefined] {\n const actionsMap: CaseReducers<S, any> = {};\n const actionMatchers: ActionMatcherDescriptionCollection<S> = [];\n let defaultCaseReducer: CaseReducer<S, Action> | undefined;\n const builder = {\n addCase(typeOrActionCreator: string | TypedActionCreator<any>, reducer: CaseReducer<S>) {\n if (process.env.NODE_ENV !== 'production') {\n /*\n to keep the definition by the user in line with actual behavior,\n we enforce `addCase` to always be called before calling `addMatcher`\n as matching cases take precedence over matchers\n */\n if (actionMatchers.length > 0) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(26) : '`builder.addCase` should only be called before calling `builder.addMatcher`');\n }\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(27) : '`builder.addCase` should only be called before calling `builder.addDefaultCase`');\n }\n }\n const type = typeof typeOrActionCreator === 'string' ? typeOrActionCreator : typeOrActionCreator.type;\n if (!type) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(28) : '`builder.addCase` cannot be called with an empty action type');\n }\n if (type in actionsMap) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(29) : '`builder.addCase` cannot be called with two reducers for the same action type ' + `'${type}'`);\n }\n actionsMap[type] = reducer;\n return builder;\n },\n addAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig = {}>(asyncThunk: AsyncThunk<Returned, ThunkArg, ThunkApiConfig>, reducers: AsyncThunkReducers<S, ThunkArg, Returned, ThunkApiConfig>) {\n if (process.env.NODE_ENV !== 'production') {\n // since this uses both action cases and matchers, we can't enforce the order in runtime other than checking for default case\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(43) : '`builder.addAsyncThunk` should only be called before calling `builder.addDefaultCase`');\n }\n }\n if (reducers.pending) actionsMap[asyncThunk.pending.type] = reducers.pending;\n if (reducers.rejected) actionsMap[asyncThunk.rejected.type] = reducers.rejected;\n if (reducers.fulfilled) actionsMap[asyncThunk.fulfilled.type] = reducers.fulfilled;\n if (reducers.settled) actionMatchers.push({\n matcher: asyncThunk.settled,\n reducer: reducers.settled\n });\n return builder;\n },\n addMatcher<A>(matcher: TypeGuard<A>, reducer: CaseReducer<S, A extends Action ? A : A & Action>) {\n if (process.env.NODE_ENV !== 'production') {\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(30) : '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`');\n }\n }\n actionMatchers.push({\n matcher,\n reducer\n });\n return builder;\n },\n addDefaultCase(reducer: CaseReducer<S, Action>) {\n if (process.env.NODE_ENV !== 'production') {\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(31) : '`builder.addDefaultCase` can only be called once');\n }\n }\n defaultCaseReducer = reducer;\n return builder;\n }\n };\n builderCallback(builder);\n return [actionsMap, actionMatchers, defaultCaseReducer];\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { Draft } from 'immer';\nimport { createNextState, isDraft, isDraftable, setUseStrictIteration } from './immerImports';\nimport type { Action, Reducer, UnknownAction } from 'redux';\nimport type { ActionReducerMapBuilder } from './mapBuilders';\nimport { executeReducerBuilderCallback } from './mapBuilders';\nimport type { NoInfer, TypeGuard } from './tsHelpers';\nimport { freezeDraftable } from './utils';\n\n// Immer 10.2 defaults to still using strict iteration (specifically\n// `Reflect.ownKeys()` for symbols support). However, we assume that\n// Redux users are not using symbols as state keys, so we'll override\n// this to prefer `Object.keys()` instead, as it provides a ~10% speedup.\n// If users do need symbol support, they can call `setUseStrictIteration(true)` themselves.\nsetUseStrictIteration(false);\n\n/**\n * Defines a mapping from action types to corresponding action object shapes.\n *\n * @deprecated This should not be used manually - it is only used for internal\n * inference purposes and should not have any further value.\n * It might be removed in the future.\n * @public\n */\nexport type Actions<T extends keyof any = string> = Record<T, Action>;\nexport type ActionMatcherDescription<S, A extends Action> = {\n matcher: TypeGuard<A>;\n reducer: CaseReducer<S, NoInfer<A>>;\n};\nexport type ReadonlyActionMatcherDescriptionCollection<S> = ReadonlyArray<ActionMatcherDescription<S, any>>;\nexport type ActionMatcherDescriptionCollection<S> = Array<ActionMatcherDescription<S, any>>;\n\n/**\n * A *case reducer* is a reducer function for a specific action type. Case\n * reducers can be composed to full reducers using `createReducer()`.\n *\n * Unlike a normal Redux reducer, a case reducer is never called with an\n * `undefined` state to determine the initial state. Instead, the initial\n * state is explicitly specified as an argument to `createReducer()`.\n *\n * In addition, a case reducer can choose to mutate the passed-in `state`\n * value directly instead of returning a new state. This does not actually\n * cause the store state to be mutated directly; instead, thanks to\n * [immer](https://github.com/mweststrate/immer), the mutations are\n * translated to copy operations that result in a new state.\n *\n * @public\n */\nexport type CaseReducer<S = any, A extends Action = UnknownAction> = (state: Draft<S>, action: A) => NoInfer<S> | void | Draft<NoInfer<S>>;\n\n/**\n * A mapping from action types to case reducers for `createReducer()`.\n *\n * @deprecated This should not be used manually - it is only used\n * for internal inference purposes and using it manually\n * would lead to type erasure.\n * It might be removed in the future.\n * @public\n */\nexport type CaseReducers<S, AS extends Actions> = { [T in keyof AS]: AS[T] extends Action ? CaseReducer<S, AS[T]> : void };\nexport type NotFunction<T> = T extends Function ? never : T;\nfunction isStateFunction<S>(x: unknown): x is () => S {\n return typeof x === 'function';\n}\nexport type ReducerWithInitialState<S extends NotFunction<any>> = Reducer<S> & {\n getInitialState: () => S;\n};\n\n/**\n * A utility function that allows defining a reducer as a mapping from action\n * type to *case reducer* functions that handle these action types. The\n * reducer's initial state is passed as the first argument.\n *\n * @remarks\n * The body of every case reducer is implicitly wrapped with a call to\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\n * This means that rather than returning a new state object, you can also\n * mutate the passed-in state object directly; these mutations will then be\n * automatically and efficiently translated into copies, giving you both\n * convenience and immutability.\n *\n * @overloadSummary\n * This function accepts a callback that receives a `builder` object as its argument.\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\n * called to define what actions this reducer will handle.\n *\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\n * @example\n```ts\nimport {\n createAction,\n createReducer,\n UnknownAction,\n PayloadAction,\n} from \"@reduxjs/toolkit\";\n\nconst increment = createAction<number>(\"increment\");\nconst decrement = createAction<number>(\"decrement\");\n\nfunction isActionWithNumberPayload(\n action: UnknownAction\n): action is PayloadAction<number> {\n return typeof action.payload === \"number\";\n}\n\nconst reducer = createReducer(\n {\n counter: 0,\n sumOfNumberPayloads: 0,\n unhandledActions: 0,\n },\n (builder) => {\n builder\n .addCase(increment, (state, action) => {\n // action is inferred correctly here\n state.counter += action.payload;\n })\n // You can chain calls, or have separate `builder.addCase()` lines each time\n .addCase(decrement, (state, action) => {\n state.counter -= action.payload;\n })\n // You can apply a \"matcher function\" to incoming actions\n .addMatcher(isActionWithNumberPayload, (state, action) => {})\n // and provide a default case if no other handlers matched\n .addDefaultCase((state, action) => {});\n }\n);\n```\n * @public\n */\nexport function createReducer<S extends NotFunction<any>>(initialState: S | (() => S), mapOrBuilderCallback: (builder: ActionReducerMapBuilder<S>) => void): ReducerWithInitialState<S> {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof mapOrBuilderCallback === 'object') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(8) : \"The object notation for `createReducer` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\");\n }\n }\n let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] = executeReducerBuilderCallback(mapOrBuilderCallback);\n\n // Ensure the initial state gets frozen either way (if draftable)\n let getInitialState: () => S;\n if (isStateFunction(initialState)) {\n getInitialState = () => freezeDraftable(initialState());\n } else {\n const frozenInitialState = freezeDraftable(initialState);\n getInitialState = () => frozenInitialState;\n }\n function reducer(state = getInitialState(), action: any): S {\n let caseReducers = [actionsMap[action.type], ...finalActionMatchers.filter(({\n matcher\n }) => matcher(action)).map(({\n reducer\n }) => reducer)];\n if (caseReducers.filter(cr => !!cr).length === 0) {\n caseReducers = [finalDefaultCaseReducer];\n }\n return caseReducers.reduce((previousState, caseReducer): S => {\n if (caseReducer) {\n if (isDraft(previousState)) {\n // If it's already a draft, we must already be inside a `createNextState` call,\n // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\n // inside an existing draft. It's safe to just pass the draft to the mutator.\n const draft = previousState as Draft<S>; // We can assume this is already a draft\n const result = caseReducer(draft, action);\n if (result === undefined) {\n return previousState;\n }\n return result as S;\n } else if (!isDraftable(previousState)) {\n // If state is not draftable (ex: a primitive, such as 0), we want to directly\n // return the caseReducer func and not wrap it with produce.\n const result = caseReducer(previousState as any, action);\n if (result === undefined) {\n if (previousState === null) {\n return previousState;\n }\n throw Error('A case reducer on a non-draftable value must not return undefined');\n }\n return result as S;\n } else {\n // @ts-ignore createNextState() produces an Immutable<Draft<S>> rather\n // than an Immutable<S>, and TypeScript cannot find out how to reconcile\n // these two types.\n return createNextState(previousState, (draft: Draft<S>) => {\n return caseReducer(draft, action);\n });\n }\n }\n return previousState;\n }, state);\n }\n reducer.getInitialState = getInitialState;\n return reducer as ReducerWithInitialState<S>;\n}","// Borrowed from https://github.com/ai/nanoid/blob/3.0.2/non-secure/index.js\n// This alphabet uses `A-Za-z0-9_-` symbols. A genetic algorithm helped\n// optimize the gzip compression for this alphabet.\nlet urlAlphabet = 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW';\n\n/**\r\n *\r\n * @public\r\n */\nexport let nanoid = (size = 21) => {\n let id = '';\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size;\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7, formatProdErrorMessage as _formatProdErrorMessage8 } from \"@reduxjs/toolkit\";\nimport type { Action, Reducer, UnknownAction } from 'redux';\nimport type { Selector } from 'reselect';\nimport type { InjectConfig } from './combineSlices';\nimport type { ActionCreatorWithoutPayload, PayloadAction, PayloadActionCreator, PrepareAction, _ActionCreatorWithPreparedPayload } from './createAction';\nimport { createAction } from './createAction';\nimport type { AsyncThunk, AsyncThunkConfig, AsyncThunkOptions, AsyncThunkPayloadCreator, OverrideThunkApiConfigs } from './createAsyncThunk';\nimport { createAsyncThunk as _createAsyncThunk } from './createAsyncThunk';\nimport type { ActionMatcherDescriptionCollection, CaseReducer, ReducerWithInitialState } from './createReducer';\nimport { createReducer } from './createReducer';\nimport type { ActionReducerMapBuilder, AsyncThunkReducers, TypedActionCreator } from './mapBuilders';\nimport { executeReducerBuilderCallback } from './mapBuilders';\nimport type { Id, TypeGuard } from './tsHelpers';\nimport { getOrInsertComputed } from './utils';\nconst asyncThunkSymbol = /* @__PURE__ */Symbol.for('rtk-slice-createasyncthunk');\n// type is annotated because it's too long to infer\nexport const asyncThunkCreator: {\n [asyncThunkSymbol]: typeof _createAsyncThunk;\n} = {\n [asyncThunkSymbol]: _createAsyncThunk\n};\ntype InjectIntoConfig<NewReducerPath extends string> = InjectConfig & {\n reducerPath?: NewReducerPath;\n};\n\n/**\n * The return value of `createSlice`\n *\n * @public\n */\nexport interface Slice<State = any, CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> {\n /**\n * The slice name.\n */\n name: Name;\n\n /**\n * The slice reducer path.\n */\n reducerPath: ReducerPath;\n\n /**\n * The slice's reducer.\n */\n reducer: Reducer<State>;\n\n /**\n * Action creators for the types of actions that are handled by the slice\n * reducer.\n */\n actions: CaseReducerActions<CaseReducers, Name>;\n\n /**\n * The individual case reducer functions that were passed in the `reducers` parameter.\n * This enables reuse and testing if they were defined inline when calling `createSlice`.\n */\n caseReducers: SliceDefinedCaseReducers<CaseReducers>;\n\n /**\n * Provides access to the initial state value given to the slice.\n * If a lazy state initializer was provided, it will be called and a fresh value returned.\n */\n getInitialState: () => State;\n\n /**\n * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)\n */\n getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State>>;\n\n /**\n * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\n */\n getSelectors<RootState>(selectState: (rootState: RootState) => State): Id<SliceDefinedSelectors<State, Selectors, RootState>>;\n\n /**\n * Selectors that assume the slice's state is `rootState[slice.reducerPath]` (which is usually the case)\n *\n * Equivalent to `slice.getSelectors((state: RootState) => state[slice.reducerPath])`.\n */\n get selectors(): Id<SliceDefinedSelectors<State, Selectors, { [K in ReducerPath]: State }>>;\n\n /**\n * Inject slice into provided reducer (return value from `combineSlices`), and return injected slice.\n */\n injectInto<NewReducerPath extends string = ReducerPath>(this: this, injectable: {\n inject: (slice: {\n reducerPath: string;\n reducer: Reducer;\n }, config?: InjectConfig) => void;\n }, config?: InjectIntoConfig<NewReducerPath>): InjectedSlice<State, CaseReducers, Name, NewReducerPath, Selectors>;\n\n /**\n * Select the slice state, using the slice's current reducerPath.\n *\n * Will throw an error if slice is not found.\n */\n selectSlice(state: { [K in ReducerPath]: State }): State;\n}\n\n/**\n * A slice after being called with `injectInto(reducer)`.\n *\n * Selectors can now be called with an `undefined` value, in which case they use the slice's initial state.\n */\ntype InjectedSlice<State = any, CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> = Omit<Slice<State, CaseReducers, Name, ReducerPath, Selectors>, 'getSelectors' | 'selectors'> & {\n /**\n * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)\n */\n getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State | undefined>>;\n\n /**\n * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\n */\n getSelectors<RootState>(selectState: (rootState: RootState) => State | undefined): Id<SliceDefinedSelectors<State, Selectors, RootState>>;\n\n /**\n * Selectors that assume the slice's state is `rootState[slice.name]` (which is usually the case)\n *\n * Equivalent to `slice.getSelectors((state: RootState) => state[slice.name])`.\n */\n get selectors(): Id<SliceDefinedSelectors<State, Selectors, { [K in ReducerPath]?: State | undefined }>>;\n\n /**\n * Select the slice state, using the slice's current reducerPath.\n *\n * Returns initial state if slice is not found.\n */\n selectSlice(state: { [K in ReducerPath]?: State | undefined }): State;\n};\n\n/**\n * Options for `createSlice()`.\n *\n * @public\n */\nexport interface CreateSliceOptions<State = any, CR extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> {\n /**\n * The slice's name. Used to namespace the generated action types.\n */\n name: Name;\n\n /**\n * The slice's reducer path. Used when injecting into a combined slice reducer.\n */\n reducerPath?: ReducerPath;\n\n /**\n * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\n */\n initialState: State | (() => State);\n\n /**\n * A mapping from action types to action-type-specific *case reducer*\n * functions. For every action type, a matching action creator will be\n * generated using `createAction()`.\n */\n reducers: ValidateSliceCaseReducers<State, CR> | ((creators: ReducerCreators<State>) => CR);\n\n /**\n * A callback that receives a *builder* object to define\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\n *\n *\n * @example\n ```ts\n import { createAction, createSlice, Action } from '@reduxjs/toolkit'\n const incrementBy = createAction<number>('incrementBy')\n const decrement = createAction('decrement')\n interface RejectedAction extends Action {\n error: Error\n }\n function isRejectedAction(action: Action): action is RejectedAction {\n return action.type.endsWith('rejected')\n }\n createSlice({\n name: 'counter',\n initialState: 0,\n reducers: {},\n extraReducers: builder => {\n builder\n .addCase(incrementBy, (state, action) => {\n // action is inferred correctly here if using TS\n })\n // You can chain calls, or have separate `builder.addCase()` lines each time\n .addCase(decrement, (state, action) => {})\n // You can match a range of action types\n .addMatcher(\n isRejectedAction,\n // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\n (state, action) => {}\n )\n // and provide a default case if no other handlers matched\n .addDefaultCase((state, action) => {})\n }\n })\n ```\n */\n extraReducers?: (builder: ActionReducerMapBuilder<State>) => void;\n\n /**\n * A map of selectors that receive the slice's state and any additional arguments, and return a result.\n */\n selectors?: Selectors;\n}\nexport enum ReducerType {\n reducer = 'reducer',\n reducerWithPrepare = 'reducerWithPrepare',\n asyncThunk = 'asyncThunk',\n}\ntype ReducerDefinition<T extends ReducerType = ReducerType> = {\n _reducerDefinitionType: T;\n};\nexport type CaseReducerDefinition<S = any, A extends Action = UnknownAction> = CaseReducer<S, A> & ReducerDefinition<ReducerType.reducer>;\n\n/**\n * A CaseReducer with a `prepare` method.\n *\n * @public\n */\nexport type CaseReducerWithPrepare<State, Action extends PayloadAction> = {\n reducer: CaseReducer<State, Action>;\n prepare: PrepareAction<Action['payload']>;\n};\nexport interface CaseReducerWithPrepareDefinition<State, Action extends PayloadAction> extends CaseReducerWithPrepare<State, Action>, ReducerDefinition<ReducerType.reducerWithPrepare> {}\ntype AsyncThunkSliceReducerConfig<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = AsyncThunkReducers<State, ThunkArg, Returned, ThunkApiConfig> & {\n options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>;\n};\ntype AsyncThunkSliceReducerDefinition<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, ThunkApiConfig> & ReducerDefinition<ReducerType.asyncThunk> & {\n payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>;\n};\n\n/**\n * Providing these as part of the config would cause circular types, so we disallow passing them\n */\ntype PreventCircular<ThunkApiConfig> = { [K in keyof ThunkApiConfig]: K extends 'state' | 'dispatch' ? never : ThunkApiConfig[K] };\ninterface AsyncThunkCreator<State, CurriedThunkApiConfig extends PreventCircular<AsyncThunkConfig> = PreventCircular<AsyncThunkConfig>> {\n <Returned, ThunkArg = void>(payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, CurriedThunkApiConfig>, config?: AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, CurriedThunkApiConfig>): AsyncThunkSliceReducerDefinition<State, ThunkArg, Returned, CurriedThunkApiConfig>;\n <Returned, ThunkArg, ThunkApiConfig extends PreventCircular<AsyncThunkConfig> = {}>(payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>, config?: AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, ThunkApiConfig>): AsyncThunkSliceReducerDefinition<State, ThunkArg, Returned, ThunkApiConfig>;\n withTypes<ThunkApiConfig extends PreventCircular<AsyncThunkConfig>>(): AsyncThunkCreator<State, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;\n}\nexport interface ReducerCreators<State> {\n reducer(caseReducer: CaseReducer<State, PayloadAction>): CaseReducerDefinition<State, PayloadAction>;\n reducer<Payload>(caseReducer: CaseReducer<State, PayloadAction<Payload>>): CaseReducerDefinition<State, PayloadAction<Payload>>;\n asyncThunk: AsyncThunkCreator<State>;\n preparedReducer<Prepare extends PrepareAction<any>>(prepare: Prepare, reducer: CaseReducer<State, ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>>): {\n _reducerDefinitionType: ReducerType.reducerWithPrepare;\n prepare: Prepare;\n reducer: CaseReducer<State, ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>>;\n };\n}\n\n/**\n * The type describing a slice's `reducers` option.\n *\n * @public\n */\nexport type SliceCaseReducers<State> = Record<string, ReducerDefinition> | Record<string, CaseReducer<State, PayloadAction<any>> | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>>;\n\n/**\n * The type describing a slice's `selectors` option.\n */\nexport type SliceSelectors<State> = {\n [K: string]: (sliceState: State, ...args: any[]) => any;\n};\ntype SliceActionType<SliceName extends string, ActionName extends keyof any> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string;\n\n/**\n * Derives the slice's `actions` property from the `reducers` options\n *\n * @public\n */\nexport type CaseReducerActions<CaseReducers extends SliceCaseReducers<any>, SliceName extends string> = { [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends {\n prepare: any;\n} ? ActionCreatorForCaseReducerWithPrepare<Definition, SliceActionType<SliceName, Type>> : Definition extends AsyncThunkSliceReducerDefinition<any, infer ThunkArg, infer Returned, infer ThunkApiConfig> ? AsyncThunk<Returned, ThunkArg, ThunkApiConfig> : Definition extends {\n reducer: any;\n} ? ActionCreatorForCaseReducer<Definition['reducer'], SliceActionType<SliceName, Type>> : ActionCreatorForCaseReducer<Definition, SliceActionType<SliceName, Type>> : never };\n\n/**\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\n *\n * @internal\n */\ntype ActionCreatorForCaseReducerWithPrepare<CR extends {\n prepare: any;\n}, Type extends string> = _ActionCreatorWithPreparedPayload<CR['prepare'], Type>;\n\n/**\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\n *\n * @internal\n */\ntype ActionCreatorForCaseReducer<CR, Type extends string> = CR extends ((state: any, action: infer Action) => any) ? Action extends {\n payload: infer P;\n} ? PayloadActionCreator<P, Type> : ActionCreatorWithoutPayload<Type> : ActionCreatorWithoutPayload<Type>;\n\n/**\n * Extracts the CaseReducers out of a `reducers` object, even if they are\n * tested into a `CaseReducerWithPrepare`.\n *\n * @internal\n */\ntype SliceDefinedCaseReducers<CaseReducers extends SliceCaseReducers<any>> = { [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends AsyncThunkSliceReducerDefinition<any, any, any> ? Id<Pick<Required<Definition>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>> : Definition extends {\n reducer: infer Reducer;\n} ? Reducer : Definition : never };\ntype RemappedSelector<S extends Selector, NewState> = S extends Selector<any, infer R, infer P> ? Selector<NewState, R, P> & {\n unwrapped: S;\n} : never;\n\n/**\n * Extracts the final selector type from the `selectors` object.\n *\n * Removes the `string` index signature from the default value.\n */\ntype SliceDefinedSelectors<State, Selectors extends SliceSelectors<State>, RootState> = { [K in keyof Selectors as string extends K ? never : K]: RemappedSelector<Selectors[K], RootState> };\n\n/**\n * Used on a SliceCaseReducers object.\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\n * the `reducer` and the `prepare` function use the same type of `payload`.\n *\n * Might do additional such checks in the future.\n *\n * This type is only ever useful if you want to write your own wrapper around\n * `createSlice`. Please don't use it otherwise!\n *\n * @public\n */\nexport type ValidateSliceCaseReducers<S, ACR extends SliceCaseReducers<S>> = ACR & { [T in keyof ACR]: ACR[T] extends {\n reducer(s: S, action?: infer A): any;\n} ? {\n prepare(...a: never[]): Omit<A, 'type'>;\n} : {} };\nfunction getType(slice: string, actionKey: string): string {\n return `${slice}/${actionKey}`;\n}\ninterface BuildCreateSliceConfig {\n creators?: {\n asyncThunk?: typeof asyncThunkCreator;\n };\n}\nexport function buildCreateSlice({\n creators\n}: BuildCreateSliceConfig = {}) {\n const cAT = creators?.asyncThunk?.[asyncThunkSymbol];\n return function createSlice<State, CaseReducers extends SliceCaseReducers<State>, Name extends string, Selectors extends SliceSelectors<State>, ReducerPath extends string = Name>(options: CreateSliceOptions<State, CaseReducers, Name, ReducerPath, Selectors>): Slice<State, CaseReducers, Name, ReducerPath, Selectors> {\n const {\n name,\n reducerPath = name as unknown as ReducerPath\n } = options;\n if (!name) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(11) : '`name` is a required option for createSlice');\n }\n if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n if (options.initialState === undefined) {\n console.error('You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`');\n }\n }\n const reducers = (typeof options.reducers === 'function' ? options.reducers(buildReducerCreators<State>()) : options.reducers) || {};\n const reducerNames = Object.keys(reducers);\n const context: ReducerHandlingContext<State> = {\n sliceCaseReducersByName: {},\n sliceCaseReducersByType: {},\n actionCreators: {},\n sliceMatchers: []\n };\n const contextMethods: ReducerHandlingContextMethods<State> = {\n addCase(typeOrActionCreator: string | TypedActionCreator<any>, reducer: CaseReducer<State>) {\n const type = typeof typeOrActionCreator === 'string' ? typeOrActionCreator : typeOrActionCreator.type;\n if (!type) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(12) : '`context.addCase` cannot be called with an empty action type');\n }\n if (type in context.sliceCaseReducersByType) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(13) : '`context.addCase` cannot be called with two reducers for the same action type: ' + type);\n }\n context.sliceCaseReducersByType[type] = reducer;\n return contextMethods;\n },\n addMatcher(matcher, reducer) {\n context.sliceMatchers.push({\n matcher,\n reducer\n });\n return contextMethods;\n },\n exposeAction(name, actionCreator) {\n context.actionCreators[name] = actionCreator;\n return contextMethods;\n },\n exposeCaseReducer(name, reducer) {\n context.sliceCaseReducersByName[name] = reducer;\n return contextMethods;\n }\n };\n reducerNames.forEach(reducerName => {\n const reducerDefinition = reducers[reducerName];\n const reducerDetails: ReducerDetails = {\n reducerName,\n type: getType(name, reducerName),\n createNotation: typeof options.reducers === 'function'\n };\n if (isAsyncThunkSliceReducerDefinition<State>(reducerDefinition)) {\n handleThunkCaseReducerDefinition(reducerDetails, reducerDefinition, contextMethods, cAT);\n } else {\n handleNormalReducerDefinition<State>(reducerDetails, reducerDefinition as any, contextMethods);\n }\n });\n function buildReducer() {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof options.extraReducers === 'object') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(14) : \"The object notation for `createSlice.extraReducers` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\");\n }\n }\n const [extraReducers = {}, actionMatchers = [], defaultCaseReducer = undefined] = typeof options.extraReducers === 'function' ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers];\n const finalCaseReducers = {\n ...extraReducers,\n ...context.sliceCaseReducersByType\n };\n return createReducer(options.initialState, builder => {\n for (let key in finalCaseReducers) {\n builder.addCase(key, finalCaseReducers[key] as CaseReducer<any>);\n }\n for (let sM of context.sliceMatchers) {\n builder.addMatcher(sM.matcher, sM.reducer);\n }\n for (let m of actionMatchers) {\n builder.addMatcher(m.matcher, m.reducer);\n }\n if (defaultCaseReducer) {\n builder.addDefaultCase(defaultCaseReducer);\n }\n });\n }\n const selectSelf = (state: State) => state;\n const injectedSelectorCache = new Map<boolean, WeakMap<(rootState: any) => State | undefined, Record<string, (rootState: any) => any>>>();\n const injectedStateCache = new WeakMap<(rootState: any) => State, State>();\n let _reducer: ReducerWithInitialState<State>;\n function reducer(state: State | undefined, action: UnknownAction) {\n if (!_reducer) _reducer = buildReducer();\n return _reducer(state, action);\n }\n function getInitialState() {\n if (!_reducer) _reducer = buildReducer();\n return _reducer.getInitialState();\n }\n function makeSelectorProps<CurrentReducerPath extends string = ReducerPath>(reducerPath: CurrentReducerPath, injected = false): Pick<Slice<State, CaseReducers, Name, CurrentReducerPath, Selectors>, 'getSelectors' | 'selectors' | 'selectSlice' | 'reducerPath'> {\n function selectSlice(state: { [K in CurrentReducerPath]: State }) {\n let sliceState = state[reducerPath];\n if (typeof sliceState === 'undefined') {\n if (injected) {\n sliceState = getOrInsertComputed(injectedStateCache, selectSlice, getInitialState);\n } else if (process.env.NODE_ENV !== 'production') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(15) : 'selectSlice returned undefined for an uninjected slice reducer');\n }\n }\n return sliceState;\n }\n function getSelectors(selectState: (rootState: any) => State = selectSelf) {\n const selectorCache = getOrInsertComputed(injectedSelectorCache, injected, () => new WeakMap());\n return getOrInsertComputed(selectorCache, selectState, () => {\n const map: Record<string, Selector<any, any>> = {};\n for (const [name, selector] of Object.entries(options.selectors ?? {})) {\n map[name] = wrapSelector(selector, selectState, () => getOrInsertComputed(injectedStateCache, selectState, getInitialState), injected);\n }\n return map;\n }) as any;\n }\n return {\n reducerPath,\n getSelectors,\n get selectors() {\n return getSelectors(selectSlice);\n },\n selectSlice\n };\n }\n const slice: Slice<State, CaseReducers, Name, ReducerPath, Selectors> = {\n name,\n reducer,\n actions: context.actionCreators as any,\n caseReducers: context.sliceCaseReducersByName as any,\n getInitialState,\n ...makeSelectorProps(reducerPath),\n injectInto(injectable, {\n reducerPath: pathOpt,\n ...config\n } = {}) {\n const newReducerPath = pathOpt ?? reducerPath;\n injectable.inject({\n reducerPath: newReducerPath,\n reducer\n }, config);\n return {\n ...slice,\n ...makeSelectorProps(newReducerPath, true)\n } as any;\n }\n };\n return slice;\n };\n}\nfunction wrapSelector<State, NewState, S extends Selector<State>>(selector: S, selectState: Selector<NewState, State>, getInitialState: () => State, injected?: boolean) {\n function wrapper(rootState: NewState, ...args: any[]) {\n let sliceState = selectState(rootState);\n if (typeof sliceState === 'undefined') {\n if (injected) {\n sliceState = getInitialState();\n } else if (process.env.NODE_ENV !== 'production') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(16) : 'selectState returned undefined for an uninjected slice reducer');\n }\n }\n return selector(sliceState, ...args);\n }\n wrapper.unwrapped = selector;\n return wrapper as RemappedSelector<S, NewState>;\n}\n\n/**\n * A function that accepts an initial state, an object full of reducer\n * functions, and a \"slice name\", and automatically generates\n * action creators and action types that correspond to the\n * reducers and state.\n *\n * @public\n */\nexport const createSlice = /* @__PURE__ */buildCreateSlice();\ninterface ReducerHandlingContext<State> {\n sliceCaseReducersByName: Record<string, CaseReducer<State, any> | Pick<AsyncThunkSliceReducerDefinition<State, any, any, any>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>>;\n sliceCaseReducersByType: Record<string, CaseReducer<State, any>>;\n sliceMatchers: ActionMatcherDescriptionCollection<State>;\n actionCreators: Record<string, Function>;\n}\ninterface ReducerHandlingContextMethods<State> {\n /**\n * Adds a case reducer to handle a single action type.\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n * @param reducer - The actual case reducer function.\n */\n addCase<ActionCreator extends TypedActionCreator<string>>(actionCreator: ActionCreator, reducer: CaseReducer<State, ReturnType<ActionCreator>>): ReducerHandlingContextMethods<State>;\n /**\n * Adds a case reducer to handle a single action type.\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n * @param reducer - The actual case reducer function.\n */\n addCase<Type extends string, A extends Action<Type>>(type: Type, reducer: CaseReducer<State, A>): ReducerHandlingContextMethods<State>;\n\n /**\n * Allows you to match incoming actions against your own filter function instead of only the `action.type` property.\n * @remarks\n * If multiple matcher reducers match, all of them will be executed in the order\n * they were defined in - even if a case reducer already matched.\n * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\n * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n * function\n * @param reducer - The actual case reducer function.\n *\n */\n addMatcher<A>(matcher: TypeGuard<A>, reducer: CaseReducer<State, A extends Action ? A : A & Action>): ReducerHandlingContextMethods<State>;\n /**\n * Add an action to be exposed under the final `slice.actions` key.\n * @param name The key to be exposed as.\n * @param actionCreator The action to expose.\n * @example\n * context.exposeAction(\"addPost\", createAction<Post>(\"addPost\"));\n *\n * export const { addPost } = slice.actions\n *\n * dispatch(addPost(post))\n */\n exposeAction(name: string, actionCreator: Function): ReducerHandlingContextMethods<State>;\n /**\n * Add a case reducer to be exposed under the final `slice.caseReducers` key.\n * @param name The key to be exposed as.\n * @param reducer The reducer to expose.\n * @example\n * context.exposeCaseReducer(\"addPost\", (state, action: PayloadAction<Post>) => {\n * state.push(action.payload)\n * })\n *\n * slice.caseReducers.addPost([], addPost(post))\n */\n exposeCaseReducer(name: string, reducer: CaseReducer<State, any> | Pick<AsyncThunkSliceReducerDefinition<State, any, any, any>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>): ReducerHandlingContextMethods<State>;\n}\ninterface ReducerDetails {\n /** The key the reducer was defined under */\n reducerName: string;\n /** The predefined action type, i.e. `${slice.name}/${reducerName}` */\n type: string;\n /** Whether create. notation was used when defining reducers */\n createNotation: boolean;\n}\nfunction buildReducerCreators<State>(): ReducerCreators<State> {\n function asyncThunk(payloadCreator: AsyncThunkPayloadCreator<any, any>, config: AsyncThunkSliceReducerConfig<State, any>): AsyncThunkSliceReducerDefinition<State, any> {\n return {\n _reducerDefinitionType: ReducerType.asyncThunk,\n payloadCreator,\n ...config\n };\n }\n asyncThunk.withTypes = () => asyncThunk;\n return {\n reducer(caseReducer: CaseReducer<State, any>) {\n return Object.assign({\n // hack so the wrapping function has the same name as the original\n // we need to create a wrapper so the `reducerDefinitionType` is not assigned to the original\n [caseReducer.name](...args: Parameters<typeof caseReducer>) {\n return caseReducer(...args);\n }\n }[caseReducer.name], {\n _reducerDefinitionType: ReducerType.reducer\n } as const);\n },\n preparedReducer(prepare, reducer) {\n return {\n _reducerDefinitionType: ReducerType.reducerWithPrepare,\n prepare,\n reducer\n };\n },\n asyncThunk: asyncThunk as any\n };\n}\nfunction handleNormalReducerDefinition<State>({\n type,\n reducerName,\n createNotation\n}: ReducerDetails, maybeReducerWithPrepare: CaseReducer<State, {\n payload: any;\n type: string;\n}> | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>, context: ReducerHandlingContextMethods<State>) {\n let caseReducer: CaseReducer<State, any>;\n let prepareCallback: PrepareAction<any> | undefined;\n if ('reducer' in maybeReducerWithPrepare) {\n if (createNotation && !isCaseReducerWithPrepareDefinition(maybeReducerWithPrepare)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(17) : 'Please use the `create.preparedReducer` notation for prepared action creators with the `create` notation.');\n }\n caseReducer = maybeReducerWithPrepare.reducer;\n prepareCallback = maybeReducerWithPrepare.prepare;\n } else {\n caseReducer = maybeReducerWithPrepare;\n }\n context.addCase(type, caseReducer).exposeCaseReducer(reducerName, caseReducer).exposeAction(reducerName, prepareCallback ? createAction(type, prepareCallback) : createAction(type));\n}\nfunction isAsyncThunkSliceReducerDefinition<State>(reducerDefinition: any): reducerDefinition is AsyncThunkSliceReducerDefinition<State, any, any, any> {\n return reducerDefinition._reducerDefinitionType === ReducerType.asyncThunk;\n}\nfunction isCaseReducerWithPrepareDefinition<State>(reducerDefinition: any): reducerDefinition is CaseReducerWithPrepareDefinition<State, any> {\n return reducerDefinition._reducerDefinitionType === ReducerType.reducerWithPrepare;\n}\nfunction handleThunkCaseReducerDefinition<State>({\n type,\n reducerName\n}: ReducerDetails, reducerDefinition: AsyncThunkSliceReducerDefinition<State, any, any, any>, context: ReducerHandlingContextMethods<State>, cAT: typeof _createAsyncThunk | undefined) {\n if (!cAT) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(18) : 'Cannot use `create.asyncThunk` in the built-in `createSlice`. ' + 'Use `buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })` to create a customised version of `createSlice`.');\n }\n const {\n payloadCreator,\n fulfilled,\n pending,\n rejected,\n settled,\n options\n } = reducerDefinition;\n const thunk = cAT(type, payloadCreator, options as any);\n context.exposeAction(reducerName, thunk);\n if (fulfilled) {\n context.addCase(thunk.fulfilled, fulfilled);\n }\n if (pending) {\n context.addCase(thunk.pending, pending);\n }\n if (rejected) {\n context.addCase(thunk.rejected, rejected);\n }\n if (settled) {\n context.addMatcher(thunk.settled, settled);\n }\n context.exposeCaseReducer(reducerName, {\n fulfilled: fulfilled || noop,\n pending: pending || noop,\n rejected: rejected || noop,\n settled: settled || noop\n });\n}\nfunction noop() {}","import type { SerializedError } from '@reduxjs/toolkit';\nconst task = 'task';\nconst listener = 'listener';\nconst completed = 'completed';\nconst cancelled = 'cancelled';\n\n/* TaskAbortError error codes */\nexport const taskCancelled = `task-${cancelled}` as const;\nexport const taskCompleted = `task-${completed}` as const;\nexport const listenerCancelled = `${listener}-${cancelled}` as const;\nexport const listenerCompleted = `${listener}-${completed}` as const;\nexport class TaskAbortError implements SerializedError {\n name = 'TaskAbortError';\n message: string;\n constructor(public code: string | undefined) {\n this.message = `${task} ${cancelled} (reason: ${code})`;\n }\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { AbortSignalWithReason } from './types';\nexport const assertFunction: (func: unknown, expected: string) => asserts func is (...args: unknown[]) => unknown = (func: unknown, expected: string) => {\n if (typeof func !== 'function') {\n throw new TypeError(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(32) : `${expected} is not a function`);\n }\n};\nexport const noop = () => {};\nexport const catchRejection = <T,>(promise: Promise<T>, onError = noop): Promise<T> => {\n promise.catch(onError);\n return promise;\n};\nexport const addAbortSignalListener = (abortSignal: AbortSignal, callback: (evt: Event) => void) => {\n abortSignal.addEventListener('abort', callback, {\n once: true\n });\n return () => abortSignal.removeEventListener('abort', callback);\n};\n\n/**\n * Calls `abortController.abort(reason)` and patches `signal.reason`.\n * if it is not supported.\n *\n * At the time of writing `signal.reason` is available in FF chrome, edge node 17 and deno.\n * @param abortController\n * @param reason\n * @returns\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/reason\n */\nexport const abortControllerWithReason = <T,>(abortController: AbortController, reason: T): void => {\n type Consumer<T> = (val: T) => void;\n const signal = abortController.signal as AbortSignalWithReason<T>;\n if (signal.aborted) {\n return;\n }\n\n // Patch `reason` if necessary.\n // - We use defineProperty here because reason is a getter of `AbortSignal.__proto__`.\n // - We need to patch 'reason' before calling `.abort()` because listeners to the 'abort'\n // event are are notified immediately.\n if (!('reason' in signal)) {\n Object.defineProperty(signal, 'reason', {\n enumerable: true,\n value: reason,\n configurable: true,\n writable: true\n });\n }\n ;\n (abortController.abort as Consumer<typeof reason>)(reason);\n};","import { TaskAbortError } from './exceptions';\nimport type { AbortSignalWithReason, TaskResult } from './types';\nimport { addAbortSignalListener, catchRejection, noop } from './utils';\n\n/**\n * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.\n * @param signal\n * @param reason\n * @see {TaskAbortError}\n */\nexport const validateActive = (signal: AbortSignal): void => {\n if (signal.aborted) {\n const {\n reason\n } = signal as AbortSignalWithReason<string>;\n throw new TaskAbortError(reason);\n }\n};\n\n/**\n * Generates a race between the promise(s) and the AbortSignal\n * This avoids `Promise.race()`-related memory leaks:\n * https://github.com/nodejs/node/issues/17469#issuecomment-349794909\n */\nexport function raceWithSignal<T>(signal: AbortSignalWithReason<string>, promise: Promise<T>): Promise<T> {\n let cleanup = noop;\n return new Promise<T>((resolve, reject) => {\n const notifyRejection = () => reject(new TaskAbortError(signal.reason));\n if (signal.aborted) {\n notifyRejection();\n return;\n }\n cleanup = addAbortSignalListener(signal, notifyRejection);\n promise.finally(() => cleanup()).then(resolve, reject);\n }).finally(() => {\n // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more\n cleanup = noop;\n });\n}\n\n/**\n * Runs a task and returns promise that resolves to {@link TaskResult}.\n * Second argument is an optional `cleanUp` function that always runs after task.\n *\n * **Note:** `runTask` runs the executor in the next microtask.\n * @returns\n */\nexport const runTask = async <T,>(task: () => Promise<T>, cleanUp?: () => void): Promise<TaskResult<T>> => {\n try {\n await Promise.resolve();\n const value = await task();\n return {\n status: 'ok',\n value\n };\n } catch (error: any) {\n return {\n status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',\n error\n };\n } finally {\n cleanUp?.();\n }\n};\n\n/**\n * Given an input `AbortSignal` and a promise returns another promise that resolves\n * as soon the input promise is provided or rejects as soon as\n * `AbortSignal.abort` is `true`.\n * @param signal\n * @returns\n */\nexport const createPause = <T,>(signal: AbortSignal) => {\n return (promise: Promise<T>): Promise<T> => {\n return catchRejection(raceWithSignal(signal, promise).then(output => {\n validateActive(signal);\n return output;\n }));\n };\n};\n\n/**\n * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves\n * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.\n * @param signal\n * @returns\n */\nexport const createDelay = (signal: AbortSignal) => {\n const pause = createPause<void>(signal);\n return (timeoutMs: number): Promise<void> => {\n return pause(new Promise<void>(resolve => setTimeout(resolve, timeoutMs)));\n };\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport type { Action, Dispatch, MiddlewareAPI, UnknownAction } from 'redux';\nimport { isAction } from '../reduxImports';\nimport type { ThunkDispatch } from 'redux-thunk';\nimport { createAction } from '../createAction';\nimport { nanoid } from '../nanoid';\nimport { TaskAbortError, listenerCancelled, listenerCompleted, taskCancelled, taskCompleted } from './exceptions';\nimport { createDelay, createPause, raceWithSignal, runTask, validateActive } from './task';\nimport type { AbortSignalWithReason, AddListenerOverloads, AnyListenerPredicate, CreateListenerMiddlewareOptions, FallbackAddListenerOptions, ForkOptions, ForkedTask, ForkedTaskExecutor, ListenerEntry, ListenerErrorHandler, ListenerErrorInfo, ListenerMiddleware, ListenerMiddlewareInstance, TakePattern, TaskResult, TypedAddListener, TypedCreateListenerEntry, TypedRemoveListener, UnsubscribeListener, UnsubscribeListenerOptions } from './types';\nimport { abortControllerWithReason, addAbortSignalListener, assertFunction, catchRejection, noop } from './utils';\nexport { TaskAbortError } from './exceptions';\nexport type { AsyncTaskExecutor, CreateListenerMiddlewareOptions, ForkedTask, ForkedTaskAPI, ForkedTaskExecutor, ListenerEffect, ListenerEffectAPI, ListenerErrorHandler, ListenerMiddleware, ListenerMiddlewareInstance, SyncTaskExecutor, TaskCancelled, TaskRejected, TaskResolved, TaskResult, TypedAddListener, TypedRemoveListener, TypedStartListening, TypedStopListening, UnsubscribeListener, UnsubscribeListenerOptions } from './types';\n\n//Overly-aggressive byte-shaving\nconst {\n assign\n} = Object;\n/**\n * @internal\n */\nconst INTERNAL_NIL_TOKEN = {} as const;\nconst alm = 'listenerMiddleware' as const;\nconst createFork = (parentAbortSignal: AbortSignalWithReason<unknown>, parentBlockingPromises: Promise<any>[]) => {\n const linkControllers = (controller: AbortController) => addAbortSignalListener(parentAbortSignal, () => abortControllerWithReason(controller, parentAbortSignal.reason));\n return <T,>(taskExecutor: ForkedTaskExecutor<T>, opts?: ForkOptions): ForkedTask<T> => {\n assertFunction(taskExecutor, 'taskExecutor');\n const childAbortController = new AbortController();\n linkControllers(childAbortController);\n const result = runTask<T>(async (): Promise<T> => {\n validateActive(parentAbortSignal);\n validateActive(childAbortController.signal);\n const result = (await taskExecutor({\n pause: createPause(childAbortController.signal),\n delay: createDelay(childAbortController.signal),\n signal: childAbortController.signal\n })) as T;\n validateActive(childAbortController.signal);\n return result;\n }, () => abortControllerWithReason(childAbortController, taskCompleted));\n if (opts?.autoJoin) {\n parentBlockingPromises.push(result.catch(noop));\n }\n return {\n result: createPause<TaskResult<T>>(parentAbortSignal)(result),\n cancel() {\n abortControllerWithReason(childAbortController, taskCancelled);\n }\n };\n };\n};\nconst createTakePattern = <S,>(startListening: AddListenerOverloads<UnsubscribeListener, S, Dispatch>, signal: AbortSignal): TakePattern<S> => {\n /**\n * A function that takes a ListenerPredicate and an optional timeout,\n * and resolves when either the predicate returns `true` based on an action\n * state combination or when the timeout expires.\n * If the parent listener is canceled while waiting, this will throw a\n * TaskAbortError.\n */\n const take = async <P extends AnyListenerPredicate<S>,>(predicate: P, timeout: number | undefined) => {\n validateActive(signal);\n\n // Placeholder unsubscribe function until the listener is added\n let unsubscribe: UnsubscribeListener = () => {};\n const tuplePromise = new Promise<[Action, S, S]>((resolve, reject) => {\n // Inside the Promise, we synchronously add the listener.\n let stopListening = startListening({\n predicate: predicate as any,\n effect: (action, listenerApi): void => {\n // One-shot listener that cleans up as soon as the predicate passes\n listenerApi.unsubscribe();\n // Resolve the promise with the same arguments the predicate saw\n resolve([action, listenerApi.getState(), listenerApi.getOriginalState()]);\n }\n });\n unsubscribe = () => {\n stopListening();\n reject();\n };\n });\n const promises: (Promise<null> | Promise<[Action, S, S]>)[] = [tuplePromise];\n if (timeout != null) {\n promises.push(new Promise<null>(resolve => setTimeout(resolve, timeout, null)));\n }\n try {\n const output = await raceWithSignal(signal, Promise.race(promises));\n validateActive(signal);\n return output;\n } finally {\n // Always clean up the listener\n unsubscribe();\n }\n };\n return ((predicate: AnyListenerPredicate<S>, timeout: number | undefined) => catchRejection(take(predicate, timeout))) as TakePattern<S>;\n};\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\n let {\n type,\n actionCreator,\n matcher,\n predicate,\n effect\n } = options;\n if (type) {\n predicate = createAction(type).match;\n } else if (actionCreator) {\n type = actionCreator!.type;\n predicate = actionCreator.match;\n } else if (matcher) {\n predicate = matcher;\n } else if (predicate) {\n // pass\n } else {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(21) : 'Creating or removing a listener requires one of the known fields for matching an action');\n }\n assertFunction(effect, 'options.listener');\n return {\n predicate,\n type,\n effect\n };\n};\n\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\nexport const createListenerEntry: TypedCreateListenerEntry<unknown> = /* @__PURE__ */assign((options: FallbackAddListenerOptions) => {\n const {\n type,\n predicate,\n effect\n } = getListenerEntryPropsFrom(options);\n const entry: ListenerEntry<unknown> = {\n id: nanoid(),\n effect,\n type,\n predicate,\n pending: new Set<AbortController>(),\n unsubscribe: () => {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(22) : 'Unsubscribe not initialized');\n }\n };\n return entry;\n}, {\n withTypes: () => createListenerEntry\n}) as unknown as TypedCreateListenerEntry<unknown>;\nconst findListenerEntry = (listenerMap: Map<string, ListenerEntry>, options: FallbackAddListenerOptions) => {\n const {\n type,\n effect,\n predicate\n } = getListenerEntryPropsFrom(options);\n return Array.from(listenerMap.values()).find(entry => {\n const matchPredicateOrType = typeof type === 'string' ? entry.type === type : entry.predicate === predicate;\n return matchPredicateOrType && entry.effect === effect;\n });\n};\nconst cancelActiveListeners = (entry: ListenerEntry<unknown, Dispatch<UnknownAction>>) => {\n entry.pending.forEach(controller => {\n abortControllerWithReason(controller, listenerCancelled);\n });\n};\nconst createClearListenerMiddleware = (listenerMap: Map<string, ListenerEntry>, executingListeners: Map<ListenerEntry, number>) => {\n return () => {\n for (const listener of executingListeners.keys()) {\n cancelActiveListeners(listener);\n }\n listenerMap.clear();\n };\n};\n\n/**\n * Safely reports errors to the `errorHandler` provided.\n * Errors that occur inside `errorHandler` are notified in a new task.\n * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)\n * @param errorHandler\n * @param errorToNotify\n */\nconst safelyNotifyError = (errorHandler: ListenerErrorHandler, errorToNotify: unknown, errorInfo: ListenerErrorInfo): void => {\n try {\n errorHandler(errorToNotify, errorInfo);\n } catch (errorHandlerError) {\n // We cannot let an error raised here block the listener queue.\n // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...\n setTimeout(() => {\n throw errorHandlerError;\n }, 0);\n }\n};\n\n/**\n * @public\n */\nexport const addListener = /* @__PURE__ */assign(/* @__PURE__ */createAction(`${alm}/add`), {\n withTypes: () => addListener\n}) as unknown as TypedAddListener<unknown>;\n\n/**\n * @public\n */\nexport const clearAllListeners = /* @__PURE__ */createAction(`${alm}/removeAll`);\n\n/**\n * @public\n */\nexport const removeListener = /* @__PURE__ */assign(/* @__PURE__ */createAction(`${alm}/remove`), {\n withTypes: () => removeListener\n}) as unknown as TypedRemoveListener<unknown>;\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\n console.error(`${alm}/error`, ...args);\n};\n\n/**\n * @public\n */\nexport const createListenerMiddleware = <StateType = unknown, DispatchType extends Dispatch<Action> = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown>(middlewareOptions: CreateListenerMiddlewareOptions<ExtraArgument> = {}) => {\n const listenerMap = new Map<string, ListenerEntry>();\n\n // Track listeners whose effect is currently executing so clearListeners can\n // abort even listeners that have become unsubscribed while executing.\n const executingListeners = new Map<ListenerEntry, number>();\n const trackExecutingListener = (entry: ListenerEntry) => {\n const count = executingListeners.get(entry) ?? 0;\n executingListeners.set(entry, count + 1);\n };\n const untrackExecutingListener = (entry: ListenerEntry) => {\n const count = executingListeners.get(entry) ?? 1;\n if (count === 1) {\n executingListeners.delete(entry);\n } else {\n executingListeners.set(entry, count - 1);\n }\n };\n const {\n extra,\n onError = defaultErrorHandler\n } = middlewareOptions;\n assertFunction(onError, 'onError');\n const insertEntry = (entry: ListenerEntry) => {\n entry.unsubscribe = () => listenerMap.delete(entry.id);\n listenerMap.set(entry.id, entry);\n return (cancelOptions?: UnsubscribeListenerOptions) => {\n entry.unsubscribe();\n if (cancelOptions?.cancelActive) {\n cancelActiveListeners(entry);\n }\n };\n };\n const startListening = ((options: FallbackAddListenerOptions) => {\n const entry = findListenerEntry(listenerMap, options) ?? createListenerEntry(options as any);\n return insertEntry(entry);\n }) as AddListenerOverloads<any>;\n assign(startListening, {\n withTypes: () => startListening\n });\n const stopListening = (options: FallbackAddListenerOptions & UnsubscribeListenerOptions): boolean => {\n const entry = findListenerEntry(listenerMap, options);\n if (entry) {\n entry.unsubscribe();\n if (options.cancelActive) {\n cancelActiveListeners(entry);\n }\n }\n return !!entry;\n };\n assign(stopListening, {\n withTypes: () => stopListening\n });\n const notifyListener = async (entry: ListenerEntry<unknown, Dispatch<UnknownAction>>, action: unknown, api: MiddlewareAPI, getOriginalState: () => StateType) => {\n const internalTaskController = new AbortController();\n const take = createTakePattern(startListening as AddListenerOverloads<any>, internalTaskController.signal);\n const autoJoinPromises: Promise<any>[] = [];\n try {\n entry.pending.add(internalTaskController);\n trackExecutingListener(entry);\n await Promise.resolve(entry.effect(action,\n // Use assign() rather than ... to avoid extra helper functions added to bundle\n assign({}, api, {\n getOriginalState,\n condition: (predicate: AnyListenerPredicate<any>, timeout?: number) => take(predicate, timeout).then(Boolean),\n take,\n delay: createDelay(internalTaskController.signal),\n pause: createPause<any>(internalTaskController.signal),\n extra,\n signal: internalTaskController.signal,\n fork: createFork(internalTaskController.signal, autoJoinPromises),\n unsubscribe: entry.unsubscribe,\n subscribe: () => {\n listenerMap.set(entry.id, entry);\n },\n cancelActiveListeners: () => {\n entry.pending.forEach((controller, _, set) => {\n if (controller !== internalTaskController) {\n abortControllerWithReason(controller, listenerCancelled);\n set.delete(controller);\n }\n });\n },\n cancel: () => {\n abortControllerWithReason(internalTaskController, listenerCancelled);\n entry.pending.delete(internalTaskController);\n },\n throwIfCancelled: () => {\n validateActive(internalTaskController.signal);\n }\n })));\n } catch (listenerError) {\n if (!(listenerError instanceof TaskAbortError)) {\n safelyNotifyError(onError, listenerError, {\n raisedBy: 'effect'\n });\n }\n } finally {\n await Promise.all(autoJoinPromises);\n abortControllerWithReason(internalTaskController, listenerCompleted); // Notify that the task has completed\n untrackExecutingListener(entry);\n entry.pending.delete(internalTaskController);\n }\n };\n const clearListenerMiddleware = createClearListenerMiddleware(listenerMap, executingListeners);\n const middleware: ListenerMiddleware<StateType, DispatchType, ExtraArgument> = api => next => action => {\n if (!isAction(action)) {\n // we only want to notify listeners for action objects\n return next(action);\n }\n if (addListener.match(action)) {\n return startListening(action.payload as any);\n }\n if (clearAllListeners.match(action)) {\n clearListenerMiddleware();\n return;\n }\n if (removeListener.match(action)) {\n return stopListening(action.payload);\n }\n\n // Need to get this state _before_ the reducer processes the action\n let originalState: StateType | typeof INTERNAL_NIL_TOKEN = api.getState();\n\n // `getOriginalState` can only be called synchronously.\n // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\n const getOriginalState = (): StateType => {\n if (originalState === INTERNAL_NIL_TOKEN) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(23) : `${alm}: getOriginalState can only be called synchronously`);\n }\n return originalState as StateType;\n };\n let result: unknown;\n try {\n // Actually forward the action to the reducer before we handle listeners\n result = next(action);\n if (listenerMap.size > 0) {\n const currentState = api.getState();\n // Work around ESBuild+TS transpilation issue\n const listenerEntries = Array.from(listenerMap.values());\n for (const entry of listenerEntries) {\n let runListener = false;\n try {\n runListener = entry.predicate(action, currentState, originalState);\n } catch (predicateError) {\n runListener = false;\n safelyNotifyError(onError, predicateError, {\n raisedBy: 'predicate'\n });\n }\n if (!runListener) {\n continue;\n }\n notifyListener(entry, action, api, getOriginalState);\n }\n }\n } finally {\n // Remove `originalState` store from this scope.\n originalState = INTERNAL_NIL_TOKEN;\n }\n return result;\n };\n return {\n middleware,\n startListening,\n stopListening,\n clearListeners: clearListenerMiddleware\n } as ListenerMiddlewareInstance<StateType, DispatchType, ExtraArgument>;\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport type { PreloadedStateShapeFromReducersMapObject, Reducer, StateFromReducersMapObject, UnknownAction } from 'redux';\nimport { combineReducers } from 'redux';\nimport { nanoid } from './nanoid';\nimport type { Id, NonUndefined, Tail, UnionToIntersection, WithOptionalProp } from './tsHelpers';\nimport { getOrInsertComputed } from './utils';\ntype SliceLike<ReducerPath extends string, State, PreloadedState = State> = {\n reducerPath: ReducerPath;\n reducer: Reducer<State, any, PreloadedState>;\n};\ntype AnySliceLike = SliceLike<string, any>;\ntype SliceLikeReducerPath<A extends AnySliceLike> = A extends SliceLike<infer ReducerPath, any> ? ReducerPath : never;\ntype SliceLikeState<A extends AnySliceLike> = A extends SliceLike<any, infer State, any> ? State : never;\ntype SliceLikePreloadedState<A extends AnySliceLike> = A extends SliceLike<any, any, infer PreloadedState> ? PreloadedState : never;\nexport type WithSlice<A extends AnySliceLike> = { [Path in SliceLikeReducerPath<A>]: SliceLikeState<A> };\nexport type WithSlicePreloadedState<A extends AnySliceLike> = { [Path in SliceLikeReducerPath<A>]: SliceLikePreloadedState<A> };\ntype ReducerMap = Record<string, Reducer>;\ntype ExistingSliceLike<DeclaredState, PreloadedState> = { [ReducerPath in keyof DeclaredState]: SliceLike<ReducerPath & string, NonUndefined<DeclaredState[ReducerPath]>, NonUndefined<PreloadedState[ReducerPath & keyof PreloadedState]>> }[keyof DeclaredState];\nexport type InjectConfig = {\n /**\n * Allow replacing reducer with a different reference. Normally, an error will be thrown if a different reducer instance to the one already injected is used.\n */\n overrideExisting?: boolean;\n};\n\n/**\n * A reducer that allows for slices/reducers to be injected after initialisation.\n */\nexport interface CombinedSliceReducer<InitialState, DeclaredState extends InitialState = InitialState, PreloadedState extends Partial<Record<keyof PreloadedState, any>> = Partial<DeclaredState>> extends Reducer<DeclaredState, UnknownAction, PreloadedState> {\n /**\n * Provide a type for slices that will be injected lazily.\n *\n * One way to do this would be with interface merging:\n * ```ts\n *\n * export interface LazyLoadedSlices {}\n *\n * export const rootReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n *\n * // elsewhere\n *\n * declare module './reducer' {\n * export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n * }\n *\n * const withBoolean = rootReducer.inject(booleanSlice);\n *\n * // elsewhere again\n *\n * declare module './reducer' {\n * export interface LazyLoadedSlices {\n * customName: CustomState\n * }\n * }\n *\n * const withCustom = rootReducer.inject({ reducerPath: \"customName\", reducer: customSlice.reducer })\n * ```\n */\n withLazyLoadedSlices<Lazy = {}, LazyPreloaded = Lazy>(): CombinedSliceReducer<InitialState, Id<DeclaredState & Partial<Lazy>>, Id<PreloadedState & Partial<LazyPreloaded>>>;\n\n /**\n * Inject a slice.\n *\n * Accepts an individual slice, RTKQ API instance, or a \"slice-like\" { reducerPath, reducer } object.\n *\n * ```ts\n * rootReducer.inject(booleanSlice)\n * rootReducer.inject(baseApi)\n * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })\n * ```\n *\n */\n inject<Sl extends Id<ExistingSliceLike<DeclaredState, PreloadedState>>>(slice: Sl, config?: InjectConfig): CombinedSliceReducer<InitialState, Id<DeclaredState & WithSlice<Sl>>, Id<PreloadedState & Partial<WithSlicePreloadedState<Sl>>>>;\n\n /**\n * Inject a slice.\n *\n * Accepts an individual slice, RTKQ API instance, or a \"slice-like\" { reducerPath, reducer } object.\n *\n * ```ts\n * rootReducer.inject(booleanSlice)\n * rootReducer.inject(baseApi)\n * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })\n * ```\n *\n */\n inject<ReducerPath extends string, State, PreloadedState = State>(slice: SliceLike<ReducerPath, State & (ReducerPath extends keyof DeclaredState ? never : State), PreloadedState & (ReducerPath extends keyof PreloadedState ? never : PreloadedState)>, config?: InjectConfig): CombinedSliceReducer<InitialState, Id<DeclaredState & WithSlice<SliceLike<ReducerPath, State>>>, Id<PreloadedState & WithSlicePreloadedState<SliceLike<ReducerPath, State, PreloadedState>>>>;\n\n /**\n * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n *\n * ```ts\n * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n * // ^? boolean | undefined\n *\n * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n * // if action hasn't been dispatched since slice was injected, this would usually be undefined\n * // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n * return state.boolean;\n * // ^? boolean\n * })\n * ```\n *\n * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.\n *\n * ```ts\n *\n * export interface LazyLoadedSlices {};\n *\n * export const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n *\n * export const rootReducer = combineSlices({ inner: innerReducer });\n *\n * export type RootState = ReturnType<typeof rootReducer>;\n *\n * // elsewhere\n *\n * declare module \"./reducer.ts\" {\n * export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n * }\n *\n * const withBool = innerReducer.inject(booleanSlice);\n *\n * const selectBoolean = withBool.selector(\n * (state) => state.boolean,\n * (rootState: RootState) => state.inner\n * );\n * // now expects to be passed RootState instead of innerReducer state\n *\n * ```\n *\n * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n *\n * ```ts\n * const injectedReducer = rootReducer.inject(booleanSlice);\n * const selectBoolean = injectedReducer.selector((state) => {\n * console.log(injectedReducer.selector.original(state).boolean) // possibly undefined\n * return state.boolean\n * })\n * ```\n */\n selector: {\n /**\n * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n *\n * ```ts\n * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n * // ^? boolean | undefined\n *\n * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n * // if action hasn't been dispatched since slice was injected, this would usually be undefined\n * // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n * return state.boolean;\n * // ^? boolean\n * })\n * ```\n *\n * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n *\n * ```ts\n * const injectedReducer = rootReducer.inject(booleanSlice);\n * const selectBoolean = injectedReducer.selector((state) => {\n * console.log(injectedReducer.selector.original(state).boolean) // undefined\n * return state.boolean\n * })\n * ```\n */\n <Selector extends (state: DeclaredState, ...args: any[]) => unknown>(selectorFn: Selector): (state: WithOptionalProp<Parameters<Selector>[0], Exclude<keyof DeclaredState, keyof InitialState>>, ...args: Tail<Parameters<Selector>>) => ReturnType<Selector>;\n\n /**\n * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n *\n * ```ts\n * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n * // ^? boolean | undefined\n *\n * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n * // if action hasn't been dispatched since slice was injected, this would usually be undefined\n * // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n * return state.boolean;\n * // ^? boolean\n * })\n * ```\n *\n * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.\n *\n * ```ts\n *\n * interface LazyLoadedSlices {};\n *\n * const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n *\n * const rootReducer = combineSlices({ inner: innerReducer });\n *\n * type RootState = ReturnType<typeof rootReducer>;\n *\n * // elsewhere\n *\n * declare module \"./reducer.ts\" {\n * interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n * }\n *\n * const withBool = innerReducer.inject(booleanSlice);\n *\n * const selectBoolean = withBool.selector(\n * (state) => state.boolean,\n * (rootState: RootState) => state.inner\n * );\n * // now expects to be passed RootState instead of innerReducer state\n *\n * ```\n *\n * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n *\n * ```ts\n * const injectedReducer = rootReducer.inject(booleanSlice);\n * const selectBoolean = injectedReducer.selector((state) => {\n * console.log(injectedReducer.selector.original(state).boolean) // possibly undefined\n * return state.boolean\n * })\n * ```\n */\n <Selector extends (state: DeclaredState, ...args: any[]) => unknown, RootState>(selectorFn: Selector, selectState: (rootState: RootState, ...args: Tail<Parameters<Selector>>) => WithOptionalProp<Parameters<Selector>[0], Exclude<keyof DeclaredState, keyof InitialState>>): (state: RootState, ...args: Tail<Parameters<Selector>>) => ReturnType<Selector>;\n /**\n * Returns the unproxied state. Useful for debugging.\n * @param state state Proxy, that ensures injected reducers have value\n * @returns original, unproxied state\n * @throws if value passed is not a state Proxy\n */\n original: (state: DeclaredState) => InitialState & Partial<DeclaredState>;\n };\n}\ntype InitialState<Slices extends Array<AnySliceLike | ReducerMap>> = UnionToIntersection<Slices[number] extends infer Slice ? Slice extends AnySliceLike ? WithSlice<Slice> : StateFromReducersMapObject<Slice> : never>;\ntype InitialPreloadedState<Slices extends Array<AnySliceLike | ReducerMap>> = UnionToIntersection<Slices[number] extends infer Slice ? Slice extends AnySliceLike ? WithSlicePreloadedState<Slice> : PreloadedStateShapeFromReducersMapObject<Slice> : never>;\nconst isSliceLike = (maybeSliceLike: AnySliceLike | ReducerMap): maybeSliceLike is AnySliceLike => 'reducerPath' in maybeSliceLike && typeof maybeSliceLike.reducerPath === 'string';\nconst getReducers = (slices: Array<AnySliceLike | ReducerMap>) => slices.flatMap<[string, Reducer]>(sliceOrMap => isSliceLike(sliceOrMap) ? [[sliceOrMap.reducerPath, sliceOrMap.reducer]] : Object.entries(sliceOrMap));\nconst ORIGINAL_STATE = Symbol.for('rtk-state-proxy-original');\nconst isStateProxy = (value: any) => !!value && !!value[ORIGINAL_STATE];\nconst stateProxyMap = new WeakMap<object, object>();\nconst createStateProxy = <State extends object,>(state: State, reducerMap: Partial<Record<PropertyKey, Reducer>>, initialStateCache: Record<PropertyKey, unknown>) => getOrInsertComputed(stateProxyMap, state, () => new Proxy(state, {\n get: (target, prop, receiver) => {\n if (prop === ORIGINAL_STATE) return target;\n const result = Reflect.get(target, prop, receiver);\n if (typeof result === 'undefined') {\n const cached = initialStateCache[prop];\n if (typeof cached !== 'undefined') return cached;\n const reducer = reducerMap[prop];\n if (reducer) {\n // ensure action type is random, to prevent reducer treating it differently\n const reducerResult = reducer(undefined, {\n type: nanoid()\n });\n if (typeof reducerResult === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(24) : `The slice reducer for key \"${prop.toString()}\" returned undefined when called for selector(). ` + `If the state passed to the reducer is undefined, you must ` + `explicitly return the initial state. The initial state may ` + `not be undefined. If you don't want to set a value for this reducer, ` + `you can use null instead of undefined.`);\n }\n initialStateCache[prop] = reducerResult;\n return reducerResult;\n }\n }\n return result;\n }\n})) as State;\nconst original = (state: any) => {\n if (!isStateProxy(state)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(25) : 'original must be used on state Proxy');\n }\n return state[ORIGINAL_STATE];\n};\nconst emptyObject = {};\nconst noopReducer: Reducer<Record<string, any>> = (state = emptyObject) => state;\nexport function combineSlices<Slices extends Array<AnySliceLike | ReducerMap>>(...slices: Slices): CombinedSliceReducer<Id<InitialState<Slices>>, Id<InitialState<Slices>>, Partial<Id<InitialPreloadedState<Slices>>>> {\n const reducerMap = Object.fromEntries(getReducers(slices));\n const getReducer = () => Object.keys(reducerMap).length ? combineReducers(reducerMap) : noopReducer;\n let reducer = getReducer();\n function combinedReducer(state: Record<string, unknown>, action: UnknownAction) {\n return reducer(state, action);\n }\n combinedReducer.withLazyLoadedSlices = () => combinedReducer;\n const initialStateCache: Record<PropertyKey, unknown> = {};\n const inject = (slice: AnySliceLike, config: InjectConfig = {}): typeof combinedReducer => {\n const {\n reducerPath,\n reducer: reducerToInject\n } = slice;\n const currentReducer = reducerMap[reducerPath];\n if (!config.overrideExisting && currentReducer && currentReducer !== reducerToInject) {\n if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n console.error(`called \\`inject\\` to override already-existing reducer ${reducerPath} without specifying \\`overrideExisting: true\\``);\n }\n return combinedReducer;\n }\n if (config.overrideExisting && currentReducer !== reducerToInject) {\n delete initialStateCache[reducerPath];\n }\n reducerMap[reducerPath] = reducerToInject;\n reducer = getReducer();\n return combinedReducer;\n };\n const selector = Object.assign(function makeSelector<State extends object, RootState, Args extends any[]>(selectorFn: (state: State, ...args: Args) => any, selectState?: (rootState: RootState, ...args: Args) => State) {\n return function selector(state: State, ...args: Args) {\n return selectorFn(createStateProxy(selectState ? selectState(state as any, ...args) : state, reducerMap, initialStateCache), ...args);\n };\n }, {\n original\n });\n return Object.assign(combinedReducer, {\n inject,\n selector\n }) as any;\n}","/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nexport function formatProdErrorMessage(code: number) {\n return `Minified Redux Toolkit error #${code}; visit https://redux-toolkit.js.org/Errors?code=${code} for the full message or ` + 'use the non-minified dev environment for full errors. ';\n}","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import { runIdentityFunctionCheck } from './devModeChecks/identityFunctionCheck'\r\nimport { runInputStabilityCheck } from './devModeChecks/inputStabilityCheck'\r\nimport { globalDevModeChecks } from './devModeChecks/setGlobalDevModeChecks'\r\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\r\nimport type {\r\n DevModeChecks,\r\n Selector,\r\n SelectorArray,\r\n DevModeChecksExecutionInfo\r\n} from './types'\r\n\r\nexport const NOT_FOUND = /* @__PURE__ */ Symbol('NOT_FOUND')\r\nexport type NOT_FOUND_TYPE = typeof NOT_FOUND\r\n\r\n/**\r\n * Assert that the provided value is a function. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param func - The value to be checked.\r\n * @param errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsFunction<FunctionType extends Function>(\r\n func: unknown,\r\n errorMessage = `expected a function, instead received ${typeof func}`\r\n): asserts func is FunctionType {\r\n if (typeof func !== 'function') {\r\n throw new TypeError(errorMessage)\r\n }\r\n}\r\n\r\n/**\r\n * Assert that the provided value is an object. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param object - The value to be checked.\r\n * @param errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsObject<ObjectType extends Record<string, unknown>>(\r\n object: unknown,\r\n errorMessage = `expected an object, instead received ${typeof object}`\r\n): asserts object is ObjectType {\r\n if (typeof object !== 'object') {\r\n throw new TypeError(errorMessage)\r\n }\r\n}\r\n\r\n/**\r\n * Assert that the provided array is an array of functions. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param array - The array to be checked.\r\n * @param errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsArrayOfFunctions<FunctionType extends Function>(\r\n array: unknown[],\r\n errorMessage = `expected all items to be functions, instead received the following types: `\r\n): asserts array is FunctionType[] {\r\n if (\r\n !array.every((item): item is FunctionType => typeof item === 'function')\r\n ) {\r\n const itemTypes = array\r\n .map(item =>\r\n typeof item === 'function'\r\n ? `function ${item.name || 'unnamed'}()`\r\n : typeof item\r\n )\r\n .join(', ')\r\n throw new TypeError(`${errorMessage}[${itemTypes}]`)\r\n }\r\n}\r\n\r\n/**\r\n * Ensure that the input is an array. If it's already an array, it's returned as is.\r\n * If it's not an array, it will be wrapped in a new array.\r\n *\r\n * @param item - The item to be checked.\r\n * @returns An array containing the input item. If the input is already an array, it's returned without modification.\r\n */\r\nexport const ensureIsArray = (item: unknown) => {\r\n return Array.isArray(item) ? item : [item]\r\n}\r\n\r\n/**\r\n * Extracts the \"dependencies\" / \"input selectors\" from the arguments of `createSelector`.\r\n *\r\n * @param createSelectorArgs - Arguments passed to `createSelector` as an array.\r\n * @returns An array of \"input selectors\" / \"dependencies\".\r\n * @throws A `TypeError` if any of the input selectors is not function.\r\n */\r\nexport function getDependencies(createSelectorArgs: unknown[]) {\r\n const dependencies = Array.isArray(createSelectorArgs[0])\r\n ? createSelectorArgs[0]\r\n : createSelectorArgs\r\n\r\n assertIsArrayOfFunctions<Selector>(\r\n dependencies,\r\n `createSelector expects all input-selectors to be functions, but received the following types: `\r\n )\r\n\r\n return dependencies as SelectorArray\r\n}\r\n\r\n/**\r\n * Runs each input selector and returns their collective results as an array.\r\n *\r\n * @param dependencies - An array of \"dependencies\" or \"input selectors\".\r\n * @param inputSelectorArgs - An array of arguments being passed to the input selectors.\r\n * @returns An array of input selector results.\r\n */\r\nexport function collectInputSelectorResults(\r\n dependencies: SelectorArray,\r\n inputSelectorArgs: unknown[] | IArguments\r\n) {\r\n const inputSelectorResults = []\r\n const { length } = dependencies\r\n for (let i = 0; i < length; i++) {\r\n // @ts-ignore\r\n // apply arguments instead of spreading and mutate a local list of params for performance.\r\n inputSelectorResults.push(dependencies[i].apply(null, inputSelectorArgs))\r\n }\r\n return inputSelectorResults\r\n}\r\n\r\n/**\r\n * Retrieves execution information for development mode checks.\r\n *\r\n * @param devModeChecks - Custom Settings for development mode checks. These settings will override the global defaults.\r\n * @param firstRun - Indicates whether it is the first time the selector has run.\r\n * @returns An object containing the execution information for each development mode check.\r\n */\r\nexport const getDevModeChecksExecutionInfo = (\r\n firstRun: boolean,\r\n devModeChecks: Partial<DevModeChecks>\r\n) => {\r\n const { identityFunctionCheck, inputStabilityCheck } = {\r\n ...globalDevModeChecks,\r\n ...devModeChecks\r\n }\r\n return {\r\n identityFunctionCheck: {\r\n shouldRun:\r\n identityFunctionCheck === 'always' ||\r\n (identityFunctionCheck === 'once' && firstRun),\r\n run: runIdentityFunctionCheck\r\n },\r\n inputStabilityCheck: {\r\n shouldRun:\r\n inputStabilityCheck === 'always' ||\r\n (inputStabilityCheck === 'once' && firstRun),\r\n run: runInputStabilityCheck\r\n }\r\n } satisfies DevModeChecksExecutionInfo\r\n}\r\n","// Original source:\r\n// - https://github.com/simonihmig/tracked-redux/blob/master/packages/tracked-redux/src/-private/proxy.ts\r\n\r\nimport type { Node, Tag } from './tracking'\r\nimport {\r\n consumeCollection,\r\n consumeTag,\r\n createTag,\r\n dirtyCollection,\r\n dirtyTag\r\n} from './tracking'\r\n\r\nexport const REDUX_PROXY_LABEL = Symbol()\r\n\r\nlet nextId = 0\r\n\r\nconst proto = Object.getPrototypeOf({})\r\n\r\nclass ObjectTreeNode<T extends Record<string, unknown>> implements Node<T> {\r\n proxy: T = new Proxy(this, objectProxyHandler) as unknown as T\r\n tag = createTag()\r\n tags = {} as Record<string, Tag>\r\n children = {} as Record<string, Node>\r\n collectionTag = null\r\n id = nextId++\r\n\r\n constructor(public value: T) {\r\n this.value = value\r\n this.tag.value = value\r\n }\r\n}\r\n\r\nconst objectProxyHandler = {\r\n get(node: Node, key: string | symbol): unknown {\r\n function calculateResult() {\r\n const { value } = node\r\n\r\n const childValue = Reflect.get(value, key)\r\n\r\n if (typeof key === 'symbol') {\r\n return childValue\r\n }\r\n\r\n if (key in proto) {\r\n return childValue\r\n }\r\n\r\n if (typeof childValue === 'object' && childValue !== null) {\r\n let childNode = node.children[key]\r\n\r\n if (childNode === undefined) {\r\n childNode = node.children[key] = createNode(childValue)\r\n }\r\n\r\n if (childNode.tag) {\r\n consumeTag(childNode.tag)\r\n }\r\n\r\n return childNode.proxy\r\n } else {\r\n let tag = node.tags[key]\r\n\r\n if (tag === undefined) {\r\n tag = node.tags[key] = createTag()\r\n tag.value = childValue\r\n }\r\n\r\n consumeTag(tag)\r\n\r\n return childValue\r\n }\r\n }\r\n const res = calculateResult()\r\n return res\r\n },\r\n\r\n ownKeys(node: Node): ArrayLike<string | symbol> {\r\n consumeCollection(node)\r\n return Reflect.ownKeys(node.value)\r\n },\r\n\r\n getOwnPropertyDescriptor(\r\n node: Node,\r\n prop: string | symbol\r\n ): PropertyDescriptor | undefined {\r\n return Reflect.getOwnPropertyDescriptor(node.value, prop)\r\n },\r\n\r\n has(node: Node, prop: string | symbol): boolean {\r\n return Reflect.has(node.value, prop)\r\n }\r\n}\r\n\r\nclass ArrayTreeNode<T extends Array<unknown>> implements Node<T> {\r\n proxy: T = new Proxy([this], arrayProxyHandler) as unknown as T\r\n tag = createTag()\r\n tags = {}\r\n children = {}\r\n collectionTag = null\r\n id = nextId++\r\n\r\n constructor(public value: T) {\r\n this.value = value\r\n this.tag.value = value\r\n }\r\n}\r\n\r\nconst arrayProxyHandler = {\r\n get([node]: [Node], key: string | symbol): unknown {\r\n if (key === 'length') {\r\n consumeCollection(node)\r\n }\r\n\r\n return objectProxyHandler.get(node, key)\r\n },\r\n\r\n ownKeys([node]: [Node]): ArrayLike<string | symbol> {\r\n return objectProxyHandler.ownKeys(node)\r\n },\r\n\r\n getOwnPropertyDescriptor(\r\n [node]: [Node],\r\n prop: string | symbol\r\n ): PropertyDescriptor | undefined {\r\n return objectProxyHandler.getOwnPropertyDescriptor(node, prop)\r\n },\r\n\r\n has([node]: [Node], prop: string | symbol): boolean {\r\n return objectProxyHandler.has(node, prop)\r\n }\r\n}\r\n\r\nexport function createNode<T extends Array<unknown> | Record<string, unknown>>(\r\n value: T\r\n): Node<T> {\r\n if (Array.isArray(value)) {\r\n return new ArrayTreeNode(value)\r\n }\r\n\r\n return new ObjectTreeNode(value) as Node<T>\r\n}\r\n\r\nconst keysMap = new WeakMap<\r\n Array<unknown> | Record<string, unknown>,\r\n Set<string>\r\n>()\r\n\r\nexport function updateNode<T extends Array<unknown> | Record<string, unknown>>(\r\n node: Node<T>,\r\n newValue: T\r\n): void {\r\n const { value, tags, children } = node\r\n\r\n node.value = newValue\r\n\r\n if (\r\n Array.isArray(value) &&\r\n Array.isArray(newValue) &&\r\n value.length !== newValue.length\r\n ) {\r\n dirtyCollection(node)\r\n } else {\r\n if (value !== newValue) {\r\n let oldKeysSize = 0\r\n let newKeysSize = 0\r\n let anyKeysAdded = false\r\n\r\n for (const _key in value) {\r\n oldKeysSize++\r\n }\r\n\r\n for (const key in newValue) {\r\n newKeysSize++\r\n if (!(key in value)) {\r\n anyKeysAdded = true\r\n break\r\n }\r\n }\r\n\r\n const isDifferent = anyKeysAdded || oldKeysSize !== newKeysSize\r\n\r\n if (isDifferent) {\r\n dirtyCollection(node)\r\n }\r\n }\r\n }\r\n\r\n for (const key in tags) {\r\n const childValue = (value as Record<string, unknown>)[key]\r\n const newChildValue = (newValue as Record<string, unknown>)[key]\r\n\r\n if (childValue !== newChildValue) {\r\n dirtyCollection(node)\r\n dirtyTag(tags[key], newChildValue)\r\n }\r\n\r\n if (typeof newChildValue === 'object' && newChildValue !== null) {\r\n delete tags[key]\r\n }\r\n }\r\n\r\n for (const key in children) {\r\n const childNode = children[key]\r\n const newChildValue = (newValue as Record<string, unknown>)[key]\r\n\r\n const childValue = childNode.value\r\n\r\n if (childValue === newChildValue) {\r\n continue\r\n } else if (typeof newChildValue === 'object' && newChildValue !== null) {\r\n updateNode(childNode, newChildValue as Record<string, unknown>)\r\n } else {\r\n deleteNode(childNode)\r\n delete children[key]\r\n }\r\n }\r\n}\r\n\r\nfunction deleteNode(node: Node): void {\r\n if (node.tag) {\r\n dirtyTag(node.tag, null)\r\n }\r\n dirtyCollection(node)\r\n for (const key in node.tags) {\r\n dirtyTag(node.tags[key], null)\r\n }\r\n for (const key in node.children) {\r\n deleteNode(node.children[key])\r\n }\r\n}\r\n","// Original source:\r\n// - https://github.com/facebook/react/blob/0b974418c9a56f6c560298560265dcf4b65784bc/packages/react/src/ReactCache.js\r\n\r\nimport type {\r\n AnyFunction,\r\n DefaultMemoizeFields,\r\n EqualityFn,\r\n Simplify\r\n} from './types'\r\n\r\nclass StrongRef<T> {\r\n constructor(private value: T) {}\r\n deref() {\r\n return this.value\r\n }\r\n}\r\n\r\nconst Ref =\r\n typeof WeakRef !== 'undefined'\r\n ? WeakRef\r\n : (StrongRef as unknown as typeof WeakRef)\r\n\r\nconst UNTERMINATED = 0\r\nconst TERMINATED = 1\r\n\r\ninterface UnterminatedCacheNode<T> {\r\n /**\r\n * Status, represents whether the cached computation returned a value or threw an error.\r\n */\r\n s: 0\r\n /**\r\n * Value, either the cached result or an error, depending on status.\r\n */\r\n v: void\r\n /**\r\n * Object cache, a `WeakMap` where non-primitive arguments are stored.\r\n */\r\n o: null | WeakMap<Function | Object, CacheNode<T>>\r\n /**\r\n * Primitive cache, a regular Map where primitive arguments are stored.\r\n */\r\n p: null | Map<string | number | null | void | symbol | boolean, CacheNode<T>>\r\n}\r\n\r\ninterface TerminatedCacheNode<T> {\r\n /**\r\n * Status, represents whether the cached computation returned a value or threw an error.\r\n */\r\n s: 1\r\n /**\r\n * Value, either the cached result or an error, depending on status.\r\n */\r\n v: T\r\n /**\r\n * Object cache, a `WeakMap` where non-primitive arguments are stored.\r\n */\r\n o: null | WeakMap<Function | Object, CacheNode<T>>\r\n /**\r\n * Primitive cache, a regular `Map` where primitive arguments are stored.\r\n */\r\n p: null | Map<string | number | null | void | symbol | boolean, CacheNode<T>>\r\n}\r\n\r\ntype CacheNode<T> = TerminatedCacheNode<T> | UnterminatedCacheNode<T>\r\n\r\nfunction createCacheNode<T>(): CacheNode<T> {\r\n return {\r\n s: UNTERMINATED,\r\n v: undefined,\r\n o: null,\r\n p: null\r\n }\r\n}\r\n\r\n/**\r\n * Configuration options for a memoization function utilizing `WeakMap` for\r\n * its caching mechanism.\r\n *\r\n * @template Result - The type of the return value of the memoized function.\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport interface WeakMapMemoizeOptions<Result = any> {\r\n /**\r\n * If provided, used to compare a newly generated output value against previous values in the cache.\r\n * If a match is found, the old value is returned. This addresses the common\r\n * ```ts\r\n * todos.map(todo => todo.id)\r\n * ```\r\n * use case, where an update to another field in the original data causes a recalculation\r\n * due to changed references, but the output is still effectively the same.\r\n *\r\n * @since 5.0.0\r\n */\r\n resultEqualityCheck?: EqualityFn<Result>\r\n}\r\n\r\n/**\r\n * Creates a tree of `WeakMap`-based cache nodes based on the identity of the\r\n * arguments it's been called with (in this case, the extracted values from your input selectors).\r\n * This allows `weakMapMemoize` to have an effectively infinite cache size.\r\n * Cache results will be kept in memory as long as references to the arguments still exist,\r\n * and then cleared out as the arguments are garbage-collected.\r\n *\r\n * __Design Tradeoffs for `weakMapMemoize`:__\r\n * - Pros:\r\n * - It has an effectively infinite cache size, but you have no control over\r\n * how long values are kept in cache as it's based on garbage collection and `WeakMap`s.\r\n * - Cons:\r\n * - There's currently no way to alter the argument comparisons.\r\n * They're based on strict reference equality.\r\n * - It's roughly the same speed as `lruMemoize`, although likely a fraction slower.\r\n *\r\n * __Use Cases for `weakMapMemoize`:__\r\n * - This memoizer is likely best used for cases where you need to call the\r\n * same selector instance with many different arguments, such as a single\r\n * selector instance that is used in a list item component and called with\r\n * item IDs like:\r\n * ```ts\r\n * useSelector(state => selectSomeData(state, props.category))\r\n * ```\r\n * @param func - The function to be memoized.\r\n * @returns A memoized function with a `.clearCache()` method attached.\r\n *\r\n * @example\r\n * <caption>Using `createSelector`</caption>\r\n * ```ts\r\n * import { createSelector, weakMapMemoize } from 'reselect'\r\n *\r\n * interface RootState {\r\n * items: { id: number; category: string; name: string }[]\r\n * }\r\n *\r\n * const selectItemsByCategory = createSelector(\r\n * [\r\n * (state: RootState) => state.items,\r\n * (state: RootState, category: string) => category\r\n * ],\r\n * (items, category) => items.filter(item => item.category === category),\r\n * {\r\n * memoize: weakMapMemoize,\r\n * argsMemoize: weakMapMemoize\r\n * }\r\n * )\r\n * ```\r\n *\r\n * @example\r\n * <caption>Using `createSelectorCreator`</caption>\r\n * ```ts\r\n * import { createSelectorCreator, weakMapMemoize } from 'reselect'\r\n *\r\n * const createSelectorWeakMap = createSelectorCreator({ memoize: weakMapMemoize, argsMemoize: weakMapMemoize })\r\n *\r\n * const selectItemsByCategory = createSelectorWeakMap(\r\n * [\r\n * (state: RootState) => state.items,\r\n * (state: RootState, category: string) => category\r\n * ],\r\n * (items, category) => items.filter(item => item.category === category)\r\n * )\r\n * ```\r\n *\r\n * @template Func - The type of the function that is memoized.\r\n *\r\n * @see {@link https://reselect.js.org/api/weakMapMemoize `weakMapMemoize`}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n * @experimental\r\n */\r\nexport function weakMapMemoize<Func extends AnyFunction>(\r\n func: Func,\r\n options: WeakMapMemoizeOptions<ReturnType<Func>> = {}\r\n) {\r\n let fnNode = createCacheNode()\r\n const { resultEqualityCheck } = options\r\n\r\n let lastResult: WeakRef<object> | undefined\r\n\r\n let resultsCount = 0\r\n\r\n function memoized() {\r\n let cacheNode = fnNode\r\n const { length } = arguments\r\n for (let i = 0, l = length; i < l; i++) {\r\n const arg = arguments[i]\r\n if (\r\n typeof arg === 'function' ||\r\n (typeof arg === 'object' && arg !== null)\r\n ) {\r\n // Objects go into a WeakMap\r\n let objectCache = cacheNode.o\r\n if (objectCache === null) {\r\n cacheNode.o = objectCache = new WeakMap()\r\n }\r\n const objectNode = objectCache.get(arg)\r\n if (objectNode === undefined) {\r\n cacheNode = createCacheNode()\r\n objectCache.set(arg, cacheNode)\r\n } else {\r\n cacheNode = objectNode\r\n }\r\n } else {\r\n // Primitives go into a regular Map\r\n let primitiveCache = cacheNode.p\r\n if (primitiveCache === null) {\r\n cacheNode.p = primitiveCache = new Map()\r\n }\r\n const primitiveNode = primitiveCache.get(arg)\r\n if (primitiveNode === undefined) {\r\n cacheNode = createCacheNode()\r\n primitiveCache.set(arg, cacheNode)\r\n } else {\r\n cacheNode = primitiveNode\r\n }\r\n }\r\n }\r\n\r\n const terminatedNode = cacheNode as unknown as TerminatedCacheNode<any>\r\n\r\n let result\r\n\r\n if (cacheNode.s === TERMINATED) {\r\n result = cacheNode.v\r\n } else {\r\n // Allow errors to propagate\r\n result = func.apply(null, arguments as unknown as any[])\r\n resultsCount++\r\n\r\n if (resultEqualityCheck) {\r\n const lastResultValue = lastResult?.deref?.() ?? lastResult\r\n\r\n if (\r\n lastResultValue != null &&\r\n resultEqualityCheck(lastResultValue as ReturnType<Func>, result)\r\n ) {\r\n result = lastResultValue\r\n\r\n resultsCount !== 0 && resultsCount--\r\n }\r\n\r\n const needsWeakRef =\r\n (typeof result === 'object' && result !== null) ||\r\n typeof result === 'function'\r\n\r\n lastResult = needsWeakRef ? new Ref(result) : result\r\n }\r\n }\r\n\r\n terminatedNode.s = TERMINATED\r\n\r\n terminatedNode.v = result\r\n return result\r\n }\r\n\r\n memoized.clearCache = () => {\r\n fnNode = createCacheNode()\r\n memoized.resetResultsCount()\r\n }\r\n\r\n memoized.resultsCount = () => resultsCount\r\n\r\n memoized.resetResultsCount = () => {\r\n resultsCount = 0\r\n }\r\n\r\n return memoized as Func & Simplify<DefaultMemoizeFields>\r\n}\r\n","import { weakMapMemoize } from './weakMapMemoize'\r\n\r\nimport type {\r\n Combiner,\r\n CreateSelectorOptions,\r\n DropFirstParameter,\r\n ExtractMemoizerFields,\r\n GetParamsFromSelectors,\r\n GetStateFromSelectors,\r\n InterruptRecursion,\r\n OutputSelector,\r\n Selector,\r\n SelectorArray,\r\n SetRequired,\r\n Simplify,\r\n UnknownMemoizer\r\n} from './types'\r\n\r\nimport {\r\n assertIsFunction,\r\n collectInputSelectorResults,\r\n ensureIsArray,\r\n getDependencies,\r\n getDevModeChecksExecutionInfo\r\n} from './utils'\r\n\r\n/**\r\n * An instance of `createSelector`, customized with a given memoize implementation.\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n * @template StateType - The type of state that the selectors created with this selector creator will operate on.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSelectorFunction<\r\n MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n StateType = any\r\n> {\r\n /**\r\n * Creates a memoized selector function.\r\n *\r\n * @param createSelectorArgs - An arbitrary number of input selectors as separate inline arguments and a `combiner` function.\r\n * @returns A memoized output selector.\r\n *\r\n * @template InputSelectors - The type of the input selectors as an array.\r\n * @template Result - The return type of the `combiner` as well as the output selector.\r\n * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n *\r\n * @see {@link https://reselect.js.org/api/createselector `createSelector`}\r\n */\r\n <InputSelectors extends SelectorArray<StateType>, Result>(\r\n ...createSelectorArgs: [\r\n ...inputSelectors: InputSelectors,\r\n combiner: Combiner<InputSelectors, Result>\r\n ]\r\n ): OutputSelector<\r\n InputSelectors,\r\n Result,\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n > &\r\n InterruptRecursion\r\n\r\n /**\r\n * Creates a memoized selector function.\r\n *\r\n * @param createSelectorArgs - An arbitrary number of input selectors as separate inline arguments, a `combiner` function and an `options` object.\r\n * @returns A memoized output selector.\r\n *\r\n * @template InputSelectors - The type of the input selectors as an array.\r\n * @template Result - The return type of the `combiner` as well as the output selector.\r\n * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n *\r\n * @see {@link https://reselect.js.org/api/createselector `createSelector`}\r\n */\r\n <\r\n InputSelectors extends SelectorArray<StateType>,\r\n Result,\r\n OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n >(\r\n ...createSelectorArgs: [\r\n ...inputSelectors: InputSelectors,\r\n combiner: Combiner<InputSelectors, Result>,\r\n createSelectorOptions: Simplify<\r\n CreateSelectorOptions<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n >\r\n >\r\n ]\r\n ): OutputSelector<\r\n InputSelectors,\r\n Result,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n > &\r\n InterruptRecursion\r\n\r\n /**\r\n * Creates a memoized selector function.\r\n *\r\n * @param inputSelectors - An array of input selectors.\r\n * @param combiner - A function that Combines the input selectors and returns an output selector. Otherwise known as the result function.\r\n * @param createSelectorOptions - An optional options object that allows for further customization per selector.\r\n * @returns A memoized output selector.\r\n *\r\n * @template InputSelectors - The type of the input selectors array.\r\n * @template Result - The return type of the `combiner` as well as the output selector.\r\n * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n *\r\n * @see {@link https://reselect.js.org/api/createselector `createSelector`}\r\n */\r\n <\r\n InputSelectors extends SelectorArray<StateType>,\r\n Result,\r\n OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n >(\r\n inputSelectors: [...InputSelectors],\r\n combiner: Combiner<InputSelectors, Result>,\r\n createSelectorOptions?: Simplify<\r\n CreateSelectorOptions<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n >\r\n >\r\n ): OutputSelector<\r\n InputSelectors,\r\n Result,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n > &\r\n InterruptRecursion\r\n\r\n /**\r\n * Creates a \"pre-typed\" version of {@linkcode createSelector createSelector}\r\n * where the `state` type is predefined.\r\n *\r\n * This allows you to set the `state` type once, eliminating the need to\r\n * specify it with every {@linkcode createSelector createSelector} call.\r\n *\r\n * @returns A pre-typed `createSelector` with the state type already defined.\r\n *\r\n * @example\r\n * ```ts\r\n * import { createSelector } from 'reselect'\r\n *\r\n * export interface RootState {\r\n * todos: { id: number; completed: boolean }[]\r\n * alerts: { id: number; read: boolean }[]\r\n * }\r\n *\r\n * export const createAppSelector = createSelector.withTypes<RootState>()\r\n *\r\n * const selectTodoIds = createAppSelector(\r\n * [\r\n * // Type of `state` is set to `RootState`, no need to manually set the type\r\n * state => state.todos\r\n * ],\r\n * todos => todos.map(({ id }) => id)\r\n * )\r\n * ```\r\n * @template OverrideStateType - The specific type of state used by all selectors created with this selector creator.\r\n *\r\n * @see {@link https://reselect.js.org/api/createselector#defining-a-pre-typed-createselector `createSelector.withTypes`}\r\n *\r\n * @since 5.1.0\r\n */\r\n withTypes: <OverrideStateType extends StateType>() => CreateSelectorFunction<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction,\r\n OverrideStateType\r\n >\r\n}\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization function\r\n * and options for customizing memoization behavior.\r\n *\r\n * @param options - An options object containing the `memoize` function responsible for memoizing the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). It also provides additional options for customizing memoization. While the `memoize` property is mandatory, the rest are optional.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @example\r\n * ```ts\r\n * const customCreateSelector = createSelectorCreator({\r\n * memoize: customMemoize, // Function to be used to memoize `resultFunc`\r\n * memoizeOptions: [memoizeOption1, memoizeOption2], // Options passed to `customMemoize` as the second argument onwards\r\n * argsMemoize: customArgsMemoize, // Function to be used to memoize the selector's arguments\r\n * argsMemoizeOptions: [argsMemoizeOption1, argsMemoizeOption2] // Options passed to `customArgsMemoize` as the second argument onwards\r\n * })\r\n *\r\n * const customSelector = customCreateSelector(\r\n * [inputSelector1, inputSelector2],\r\n * resultFunc // `resultFunc` will be passed as the first argument to `customMemoize`\r\n * )\r\n *\r\n * customSelector(\r\n * ...selectorArgs // Will be memoized by `customArgsMemoize`\r\n * )\r\n * ```\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelectorCreator#using-options-since-500 `createSelectorCreator`}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport function createSelectorCreator<\r\n MemoizeFunction extends UnknownMemoizer,\r\n ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n>(\r\n options: Simplify<\r\n SetRequired<\r\n CreateSelectorOptions<\r\n typeof weakMapMemoize,\r\n typeof weakMapMemoize,\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n >,\r\n 'memoize'\r\n >\r\n >\r\n): CreateSelectorFunction<MemoizeFunction, ArgsMemoizeFunction>\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization function\r\n * and options for customizing memoization behavior.\r\n *\r\n * @param memoize - The `memoize` function responsible for memoizing the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @param memoizeOptionsFromArgs - Optional configuration options for the memoization function. These options are then passed to the memoize function as the second argument onwards.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @example\r\n * ```ts\r\n * const customCreateSelector = createSelectorCreator(customMemoize, // Function to be used to memoize `resultFunc`\r\n * option1, // Will be passed as second argument to `customMemoize`\r\n * option2, // Will be passed as third argument to `customMemoize`\r\n * option3 // Will be passed as fourth argument to `customMemoize`\r\n * )\r\n *\r\n * const customSelector = customCreateSelector(\r\n * [inputSelector1, inputSelector2],\r\n * resultFunc // `resultFunc` will be passed as the first argument to `customMemoize`\r\n * )\r\n * ```\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelectorCreator#using-memoize-and-memoizeoptions `createSelectorCreator`}\r\n *\r\n * @public\r\n */\r\nexport function createSelectorCreator<MemoizeFunction extends UnknownMemoizer>(\r\n memoize: MemoizeFunction,\r\n ...memoizeOptionsFromArgs: DropFirstParameter<MemoizeFunction>\r\n): CreateSelectorFunction<MemoizeFunction>\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization\r\n * function and options for customizing memoization behavior.\r\n *\r\n * @param memoizeOrOptions - Either A `memoize` function or an `options` object containing the `memoize` function.\r\n * @param memoizeOptionsFromArgs - Optional configuration options for the memoization function. These options are then passed to the memoize function as the second argument onwards.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n * @template MemoizeOrOptions - The type of the first argument. It can either be a `memoize` function or an `options` object containing the `memoize` function.\r\n */\r\nexport function createSelectorCreator<\r\n MemoizeFunction extends UnknownMemoizer,\r\n ArgsMemoizeFunction extends UnknownMemoizer,\r\n MemoizeOrOptions extends\r\n | MemoizeFunction\r\n | SetRequired<\r\n CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>,\r\n 'memoize'\r\n >\r\n>(\r\n memoizeOrOptions: MemoizeOrOptions,\r\n ...memoizeOptionsFromArgs: MemoizeOrOptions extends SetRequired<\r\n CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>,\r\n 'memoize'\r\n >\r\n ? never\r\n : DropFirstParameter<MemoizeFunction>\r\n) {\r\n /** options initially passed into `createSelectorCreator`. */\r\n const createSelectorCreatorOptions: SetRequired<\r\n CreateSelectorOptions<MemoizeFunction, ArgsMemoizeFunction>,\r\n 'memoize'\r\n > = typeof memoizeOrOptions === 'function'\r\n ? {\r\n memoize: memoizeOrOptions as MemoizeFunction,\r\n memoizeOptions: memoizeOptionsFromArgs\r\n }\r\n : memoizeOrOptions\r\n\r\n const createSelector = <\r\n InputSelectors extends SelectorArray,\r\n Result,\r\n OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n >(\r\n ...createSelectorArgs: [\r\n ...inputSelectors: [...InputSelectors],\r\n combiner: Combiner<InputSelectors, Result>,\r\n createSelectorOptions?: CreateSelectorOptions<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n >\r\n ]\r\n ) => {\r\n let recomputations = 0\r\n let dependencyRecomputations = 0\r\n let lastResult: Result\r\n\r\n // Due to the intricacies of rest params, we can't do an optional arg after `...createSelectorArgs`.\r\n // So, start by declaring the default value here.\r\n // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\r\n let directlyPassedOptions: CreateSelectorOptions<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n > = {}\r\n\r\n // Normally, the result func or \"combiner\" is the last arg\r\n let resultFunc = createSelectorArgs.pop() as\r\n | Combiner<InputSelectors, Result>\r\n | CreateSelectorOptions<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n >\r\n\r\n // If the result func is actually an _object_, assume it's our options object\r\n if (typeof resultFunc === 'object') {\r\n directlyPassedOptions = resultFunc\r\n // and pop the real result func off\r\n resultFunc = createSelectorArgs.pop() as Combiner<InputSelectors, Result>\r\n }\r\n\r\n assertIsFunction(\r\n resultFunc,\r\n `createSelector expects an output function after the inputs, but received: [${typeof resultFunc}]`\r\n )\r\n\r\n // Determine which set of options we're using. Prefer options passed directly,\r\n // but fall back to options given to `createSelectorCreator`.\r\n const combinedOptions = {\r\n ...createSelectorCreatorOptions,\r\n ...directlyPassedOptions\r\n }\r\n\r\n const {\r\n memoize,\r\n memoizeOptions = [],\r\n argsMemoize = weakMapMemoize,\r\n argsMemoizeOptions = [],\r\n devModeChecks = {}\r\n } = combinedOptions\r\n\r\n // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\r\n // is an array. In most libs I've looked at, it's an equality function or options object.\r\n // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\r\n // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\r\n // we wrap it in an array so we can apply it.\r\n const finalMemoizeOptions = ensureIsArray(memoizeOptions)\r\n const finalArgsMemoizeOptions = ensureIsArray(argsMemoizeOptions)\r\n const dependencies = getDependencies(createSelectorArgs) as InputSelectors\r\n\r\n const memoizedResultFunc = memoize(function recomputationWrapper() {\r\n recomputations++\r\n // apply arguments instead of spreading for performance.\r\n // @ts-ignore\r\n return (resultFunc as Combiner<InputSelectors, Result>).apply(\r\n null,\r\n arguments as unknown as Parameters<Combiner<InputSelectors, Result>>\r\n )\r\n }, ...finalMemoizeOptions) as Combiner<InputSelectors, Result> &\r\n ExtractMemoizerFields<OverrideMemoizeFunction>\r\n\r\n let firstRun = true\r\n\r\n // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\r\n const selector = argsMemoize(function dependenciesChecker() {\r\n dependencyRecomputations++\r\n /** Return values of input selectors which the `resultFunc` takes as arguments. */\r\n const inputSelectorResults = collectInputSelectorResults(\r\n dependencies,\r\n arguments\r\n )\r\n\r\n // apply arguments instead of spreading for performance.\r\n // @ts-ignore\r\n lastResult = memoizedResultFunc.apply(null, inputSelectorResults)\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n const { identityFunctionCheck, inputStabilityCheck } =\r\n getDevModeChecksExecutionInfo(firstRun, devModeChecks)\r\n if (identityFunctionCheck.shouldRun) {\r\n identityFunctionCheck.run(\r\n resultFunc as Combiner<InputSelectors, Result>,\r\n inputSelectorResults,\r\n lastResult\r\n )\r\n }\r\n\r\n if (inputStabilityCheck.shouldRun) {\r\n // make a second copy of the params, to check if we got the same results\r\n const inputSelectorResultsCopy = collectInputSelectorResults(\r\n dependencies,\r\n arguments\r\n )\r\n\r\n inputStabilityCheck.run(\r\n { inputSelectorResults, inputSelectorResultsCopy },\r\n { memoize, memoizeOptions: finalMemoizeOptions },\r\n arguments\r\n )\r\n }\r\n\r\n if (firstRun) firstRun = false\r\n }\r\n\r\n return lastResult\r\n }, ...finalArgsMemoizeOptions) as unknown as Selector<\r\n GetStateFromSelectors<InputSelectors>,\r\n Result,\r\n GetParamsFromSelectors<InputSelectors>\r\n > &\r\n ExtractMemoizerFields<OverrideArgsMemoizeFunction>\r\n\r\n return Object.assign(selector, {\r\n resultFunc,\r\n memoizedResultFunc,\r\n dependencies,\r\n dependencyRecomputations: () => dependencyRecomputations,\r\n resetDependencyRecomputations: () => {\r\n dependencyRecomputations = 0\r\n },\r\n lastResult: () => lastResult,\r\n recomputations: () => recomputations,\r\n resetRecomputations: () => {\r\n recomputations = 0\r\n },\r\n memoize,\r\n argsMemoize\r\n }) as OutputSelector<\r\n InputSelectors,\r\n Result,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n >\r\n }\r\n\r\n Object.assign(createSelector, {\r\n withTypes: () => createSelector\r\n })\r\n\r\n return createSelector as CreateSelectorFunction<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n >\r\n}\r\n\r\n/**\r\n * Accepts one or more \"input selectors\" (either as separate arguments or a single array),\r\n * a single \"result function\" / \"combiner\", and an optional options object, and\r\n * generates a memoized selector function.\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelector `createSelector`}\r\n *\r\n * @public\r\n */\r\nexport const createSelector =\r\n /* #__PURE__ */ createSelectorCreator(weakMapMemoize)\r\n","import { createSelector } from './createSelectorCreator'\r\n\r\nimport type { CreateSelectorFunction } from './createSelectorCreator'\r\nimport type {\r\n InterruptRecursion,\r\n ObjectValuesToTuple,\r\n OutputSelector,\r\n Selector,\r\n Simplify,\r\n UnknownMemoizer\r\n} from './types'\r\nimport { assertIsObject } from './utils'\r\nimport type { weakMapMemoize } from './weakMapMemoize'\r\n\r\n/**\r\n * Represents a mapping of selectors to their return types.\r\n *\r\n * @template TObject - An object type where each property is a selector function.\r\n *\r\n * @public\r\n */\r\nexport type SelectorResultsMap<TObject extends SelectorsObject> = {\r\n [Key in keyof TObject]: ReturnType<TObject[Key]>\r\n}\r\n\r\n/**\r\n * Represents a mapping of selectors for each key in a given root state.\r\n *\r\n * This type is a utility that takes a root state object type and\r\n * generates a corresponding set of selectors. Each selector is associated\r\n * with a key in the root state, allowing for the selection\r\n * of specific parts of the state.\r\n *\r\n * @template RootState - The type of the root state object.\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport type RootStateSelectors<RootState = any> = {\r\n [Key in keyof RootState]: Selector<RootState, RootState[Key], []>\r\n}\r\n\r\n/**\r\n * @deprecated Please use {@linkcode StructuredSelectorCreator.withTypes createStructuredSelector.withTypes<RootState>()} instead. This type will be removed in the future.\r\n * @template RootState - The type of the root state object.\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport type TypedStructuredSelectorCreator<RootState = any> =\r\n /**\r\n * A convenience function that simplifies returning an object\r\n * made up of selector results.\r\n *\r\n * @param inputSelectorsObject - A key value pair consisting of input selectors.\r\n * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.\r\n * @returns A memoized structured selector.\r\n *\r\n * @example\r\n * <caption>Modern Use Case</caption>\r\n * ```ts\r\n * import { createSelector, createStructuredSelector } from 'reselect'\r\n *\r\n * interface RootState {\r\n * todos: {\r\n * id: number\r\n * completed: boolean\r\n * title: string\r\n * description: string\r\n * }[]\r\n * alerts: { id: number; read: boolean }[]\r\n * }\r\n *\r\n * // This:\r\n * const structuredSelector = createStructuredSelector(\r\n * {\r\n * todos: (state: RootState) => state.todos,\r\n * alerts: (state: RootState) => state.alerts,\r\n * todoById: (state: RootState, id: number) => state.todos[id]\r\n * },\r\n * createSelector\r\n * )\r\n *\r\n * // Is essentially the same as this:\r\n * const selector = createSelector(\r\n * [\r\n * (state: RootState) => state.todos,\r\n * (state: RootState) => state.alerts,\r\n * (state: RootState, id: number) => state.todos[id]\r\n * ],\r\n * (todos, alerts, todoById) => {\r\n * return {\r\n * todos,\r\n * alerts,\r\n * todoById\r\n * }\r\n * }\r\n * )\r\n * ```\r\n *\r\n * @example\r\n * <caption>In your component:</caption>\r\n * ```tsx\r\n * import type { RootState } from 'createStructuredSelector/modernUseCase'\r\n * import { structuredSelector } from 'createStructuredSelector/modernUseCase'\r\n * import type { FC } from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * interface Props {\r\n * id: number\r\n * }\r\n *\r\n * const MyComponent: FC<Props> = ({ id }) => {\r\n * const { todos, alerts, todoById } = useSelector((state: RootState) =>\r\n * structuredSelector(state, id)\r\n * )\r\n *\r\n * return (\r\n * <div>\r\n * Next to do is:\r\n * <h2>{todoById.title}</h2>\r\n * <p>Description: {todoById.description}</p>\r\n * <ul>\r\n * <h3>All other to dos:</h3>\r\n * {todos.map(todo => (\r\n * <li key={todo.id}>{todo.title}</li>\r\n * ))}\r\n * </ul>\r\n * </div>\r\n * )\r\n * }\r\n * ```\r\n *\r\n * @example\r\n * <caption>Simple Use Case</caption>\r\n * ```ts\r\n * const selectA = state => state.a\r\n * const selectB = state => state.b\r\n *\r\n * // The result function in the following selector\r\n * // is simply building an object from the input selectors\r\n * const structuredSelector = createSelector(selectA, selectB, (a, b) => ({\r\n * a,\r\n * b\r\n * }))\r\n *\r\n * const result = structuredSelector({ a: 1, b: 2 }) // will produce { x: 1, y: 2 }\r\n * ```\r\n *\r\n * @template InputSelectorsObject - The shape of the input selectors object.\r\n * @template MemoizeFunction - The type of the memoize function that is used to create the structured selector. It defaults to `weakMapMemoize`.\r\n * @template ArgsMemoizeFunction - The type of the of the memoize function that is used to memoize the arguments passed into the generated structured selector. It defaults to `weakMapMemoize`.\r\n *\r\n * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n */\r\n <\r\n InputSelectorsObject extends RootStateSelectors<RootState> = RootStateSelectors<RootState>,\r\n MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n >(\r\n inputSelectorsObject: InputSelectorsObject,\r\n selectorCreator?: CreateSelectorFunction<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n >\r\n ) => OutputSelector<\r\n ObjectValuesToTuple<InputSelectorsObject>,\r\n Simplify<SelectorResultsMap<InputSelectorsObject>>,\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n > &\r\n InterruptRecursion\r\n\r\n/**\r\n * Represents an object where each property is a selector function.\r\n *\r\n * @template StateType - The type of state that all the selectors operate on.\r\n *\r\n * @public\r\n */\r\nexport type SelectorsObject<StateType = any> = Record<\r\n string,\r\n Selector<StateType>\r\n>\r\n\r\n/**\r\n * It provides a way to create structured selectors.\r\n * The structured selector can take multiple input selectors\r\n * and map their output to an object with specific keys.\r\n *\r\n * @template StateType - The type of state that the structured selectors created with this structured selector creator will operate on.\r\n *\r\n * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n *\r\n * @public\r\n */\r\nexport interface StructuredSelectorCreator<StateType = any> {\r\n /**\r\n * A convenience function that simplifies returning an object\r\n * made up of selector results.\r\n *\r\n * @param inputSelectorsObject - A key value pair consisting of input selectors.\r\n * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.\r\n * @returns A memoized structured selector.\r\n *\r\n * @example\r\n * <caption>Modern Use Case</caption>\r\n * ```ts\r\n * import { createSelector, createStructuredSelector } from 'reselect'\r\n *\r\n * interface RootState {\r\n * todos: {\r\n * id: number\r\n * completed: boolean\r\n * title: string\r\n * description: string\r\n * }[]\r\n * alerts: { id: number; read: boolean }[]\r\n * }\r\n *\r\n * // This:\r\n * const structuredSelector = createStructuredSelector(\r\n * {\r\n * todos: (state: RootState) => state.todos,\r\n * alerts: (state: RootState) => state.alerts,\r\n * todoById: (state: RootState, id: number) => state.todos[id]\r\n * },\r\n * createSelector\r\n * )\r\n *\r\n * // Is essentially the same as this:\r\n * const selector = createSelector(\r\n * [\r\n * (state: RootState) => state.todos,\r\n * (state: RootState) => state.alerts,\r\n * (state: RootState, id: number) => state.todos[id]\r\n * ],\r\n * (todos, alerts, todoById) => {\r\n * return {\r\n * todos,\r\n * alerts,\r\n * todoById\r\n * }\r\n * }\r\n * )\r\n * ```\r\n *\r\n * @example\r\n * <caption>In your component:</caption>\r\n * ```tsx\r\n * import type { RootState } from 'createStructuredSelector/modernUseCase'\r\n * import { structuredSelector } from 'createStructuredSelector/modernUseCase'\r\n * import type { FC } from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * interface Props {\r\n * id: number\r\n * }\r\n *\r\n * const MyComponent: FC<Props> = ({ id }) => {\r\n * const { todos, alerts, todoById } = useSelector((state: RootState) =>\r\n * structuredSelector(state, id)\r\n * )\r\n *\r\n * return (\r\n * <div>\r\n * Next to do is:\r\n * <h2>{todoById.title}</h2>\r\n * <p>Description: {todoById.description}</p>\r\n * <ul>\r\n * <h3>All other to dos:</h3>\r\n * {todos.map(todo => (\r\n * <li key={todo.id}>{todo.title}</li>\r\n * ))}\r\n * </ul>\r\n * </div>\r\n * )\r\n * }\r\n * ```\r\n *\r\n * @example\r\n * <caption>Simple Use Case</caption>\r\n * ```ts\r\n * const selectA = state => state.a\r\n * const selectB = state => state.b\r\n *\r\n * // The result function in the following selector\r\n * // is simply building an object from the input selectors\r\n * const structuredSelector = createSelector(selectA, selectB, (a, b) => ({\r\n * a,\r\n * b\r\n * }))\r\n *\r\n * const result = structuredSelector({ a: 1, b: 2 }) // will produce { x: 1, y: 2 }\r\n * ```\r\n *\r\n * @template InputSelectorsObject - The shape of the input selectors object.\r\n * @template MemoizeFunction - The type of the memoize function that is used to create the structured selector. It defaults to `weakMapMemoize`.\r\n * @template ArgsMemoizeFunction - The type of the of the memoize function that is used to memoize the arguments passed into the generated structured selector. It defaults to `weakMapMemoize`.\r\n *\r\n * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n */\r\n <\r\n InputSelectorsObject extends SelectorsObject<StateType>,\r\n MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n >(\r\n inputSelectorsObject: InputSelectorsObject,\r\n selectorCreator?: CreateSelectorFunction<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n >\r\n ): OutputSelector<\r\n ObjectValuesToTuple<InputSelectorsObject>,\r\n Simplify<SelectorResultsMap<InputSelectorsObject>>,\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n > &\r\n InterruptRecursion\r\n\r\n /**\r\n * Creates a \"pre-typed\" version of\r\n * {@linkcode createStructuredSelector createStructuredSelector}\r\n * where the `state` type is predefined.\r\n *\r\n * This allows you to set the `state` type once, eliminating the need to\r\n * specify it with every\r\n * {@linkcode createStructuredSelector createStructuredSelector} call.\r\n *\r\n * @returns A pre-typed `createStructuredSelector` with the state type already defined.\r\n *\r\n * @example\r\n * ```ts\r\n * import { createStructuredSelector } from 'reselect'\r\n *\r\n * export interface RootState {\r\n * todos: { id: number; completed: boolean }[]\r\n * alerts: { id: number; read: boolean }[]\r\n * }\r\n *\r\n * export const createStructuredAppSelector =\r\n * createStructuredSelector.withTypes<RootState>()\r\n *\r\n * const structuredAppSelector = createStructuredAppSelector({\r\n * // Type of `state` is set to `RootState`, no need to manually set the type\r\n * todos: state => state.todos,\r\n * alerts: state => state.alerts,\r\n * todoById: (state, id: number) => state.todos[id]\r\n * })\r\n *\r\n * ```\r\n * @template OverrideStateType - The specific type of state used by all structured selectors created with this structured selector creator.\r\n *\r\n * @see {@link https://reselect.js.org/api/createstructuredselector#defining-a-pre-typed-createstructuredselector `createSelector.withTypes`}\r\n *\r\n * @since 5.1.0\r\n */\r\n withTypes: <\r\n OverrideStateType extends StateType\r\n >() => StructuredSelectorCreator<OverrideStateType>\r\n}\r\n\r\n/**\r\n * A convenience function that simplifies returning an object\r\n * made up of selector results.\r\n *\r\n * @param inputSelectorsObject - A key value pair consisting of input selectors.\r\n * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.\r\n * @returns A memoized structured selector.\r\n *\r\n * @example\r\n * <caption>Modern Use Case</caption>\r\n * ```ts\r\n * import { createSelector, createStructuredSelector } from 'reselect'\r\n *\r\n * interface RootState {\r\n * todos: {\r\n * id: number\r\n * completed: boolean\r\n * title: string\r\n * description: string\r\n * }[]\r\n * alerts: { id: number; read: boolean }[]\r\n * }\r\n *\r\n * // This:\r\n * const structuredSelector = createStructuredSelector(\r\n * {\r\n * todos: (state: RootState) => state.todos,\r\n * alerts: (state: RootState) => state.alerts,\r\n * todoById: (state: RootState, id: number) => state.todos[id]\r\n * },\r\n * createSelector\r\n * )\r\n *\r\n * // Is essentially the same as this:\r\n * const selector = createSelector(\r\n * [\r\n * (state: RootState) => state.todos,\r\n * (state: RootState) => state.alerts,\r\n * (state: RootState, id: number) => state.todos[id]\r\n * ],\r\n * (todos, alerts, todoById) => {\r\n * return {\r\n * todos,\r\n * alerts,\r\n * todoById\r\n * }\r\n * }\r\n * )\r\n * ```\r\n *\r\n * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n *\r\n * @public\r\n */\r\nexport const createStructuredSelector: StructuredSelectorCreator =\r\n Object.assign(\r\n <\r\n InputSelectorsObject extends SelectorsObject,\r\n MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n >(\r\n inputSelectorsObject: InputSelectorsObject,\r\n selectorCreator: CreateSelectorFunction<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n > = createSelector as CreateSelectorFunction<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n >\r\n ) => {\r\n assertIsObject(\r\n inputSelectorsObject,\r\n 'createStructuredSelector expects first argument to be an object ' +\r\n `where each property is a selector, instead received a ${typeof inputSelectorsObject}`\r\n )\r\n const inputSelectorKeys = Object.keys(inputSelectorsObject)\r\n const dependencies = inputSelectorKeys.map(\r\n key => inputSelectorsObject[key]\r\n )\r\n const structuredSelector = selectorCreator(\r\n dependencies,\r\n (...inputSelectorResults: any[]) => {\r\n return inputSelectorResults.reduce((composition, value, index) => {\r\n composition[inputSelectorKeys[index]] = value\r\n return composition\r\n }, {})\r\n }\r\n )\r\n return structuredSelector\r\n },\r\n { withTypes: () => createStructuredSelector }\r\n ) as StructuredSelectorCreator\r\n","export function getSliced(arr, startIndex, endIndex) {\n if (!Array.isArray(arr)) {\n return arr;\n }\n if (arr && startIndex + endIndex !== 0) {\n return arr.slice(startIndex, endIndex + 1);\n }\n return arr;\n}","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isArrayLike = require('./isArrayLike.js');\nconst isObjectLike = require('./isObjectLike.js');\n\nfunction isArrayLikeObject(value) {\n return isObjectLike.isObjectLike(value) && isArrayLike.isArrayLike(value);\n}\n\nexports.isArrayLikeObject = isArrayLikeObject;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isObject = require('./isObject.js');\nconst isPrimitive = require('../../predicate/isPrimitive.js');\nconst eq = require('../util/eq.js');\n\nfunction isMatchWith(target, source, compare) {\n if (typeof compare !== 'function') {\n return isMatchWith(target, source, () => undefined);\n }\n return isMatchWithInternal(target, source, function doesMatch(objValue, srcValue, key, object, source, stack) {\n const isEqual = compare(objValue, srcValue, key, object, source, stack);\n if (isEqual !== undefined) {\n return Boolean(isEqual);\n }\n return isMatchWithInternal(objValue, srcValue, doesMatch, stack);\n }, new Map());\n}\nfunction isMatchWithInternal(target, source, compare, stack) {\n if (source === target) {\n return true;\n }\n switch (typeof source) {\n case 'object': {\n return isObjectMatch(target, source, compare, stack);\n }\n case 'function': {\n const sourceKeys = Object.keys(source);\n if (sourceKeys.length > 0) {\n return isMatchWithInternal(target, { ...source }, compare, stack);\n }\n return eq.eq(target, source);\n }\n default: {\n if (!isObject.isObject(target)) {\n return eq.eq(target, source);\n }\n if (typeof source === 'string') {\n return source === '';\n }\n return true;\n }\n }\n}\nfunction isObjectMatch(target, source, compare, stack) {\n if (source == null) {\n return true;\n }\n if (Array.isArray(source)) {\n return isArrayMatch(target, source, compare, stack);\n }\n if (source instanceof Map) {\n return isMapMatch(target, source, compare, stack);\n }\n if (source instanceof Set) {\n return isSetMatch(target, source, compare, stack);\n }\n const keys = Object.keys(source);\n if (target == null) {\n return keys.length === 0;\n }\n if (keys.length === 0) {\n return true;\n }\n if (stack?.has(source)) {\n return stack.get(source) === target;\n }\n stack?.set(source, target);\n try {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (!isPrimitive.isPrimitive(target) && !(key in target)) {\n return false;\n }\n if (source[key] === undefined && target[key] !== undefined) {\n return false;\n }\n if (source[key] === null && target[key] !== null) {\n return false;\n }\n const isEqual = compare(target[key], source[key], key, target, source, stack);\n if (!isEqual) {\n return false;\n }\n }\n return true;\n }\n finally {\n stack?.delete(source);\n }\n}\nfunction isMapMatch(target, source, compare, stack) {\n if (source.size === 0) {\n return true;\n }\n if (!(target instanceof Map)) {\n return false;\n }\n for (const [key, sourceValue] of source.entries()) {\n const targetValue = target.get(key);\n const isEqual = compare(targetValue, sourceValue, key, target, source, stack);\n if (isEqual === false) {\n return false;\n }\n }\n return true;\n}\nfunction isArrayMatch(target, source, compare, stack) {\n if (source.length === 0) {\n return true;\n }\n if (!Array.isArray(target)) {\n return false;\n }\n const countedIndex = new Set();\n for (let i = 0; i < source.length; i++) {\n const sourceItem = source[i];\n let found = false;\n for (let j = 0; j < target.length; j++) {\n if (countedIndex.has(j)) {\n continue;\n }\n const targetItem = target[j];\n let matches = false;\n const isEqual = compare(targetItem, sourceItem, i, target, source, stack);\n if (isEqual) {\n matches = true;\n }\n if (matches) {\n countedIndex.add(j);\n found = true;\n break;\n }\n }\n if (!found) {\n return false;\n }\n }\n return true;\n}\nfunction isSetMatch(target, source, compare, stack) {\n if (source.size === 0) {\n return true;\n }\n if (!(target instanceof Set)) {\n return false;\n }\n return isArrayMatch([...target], [...source], compare, stack);\n}\n\nexports.isMatchWith = isMatchWith;\nexports.isSetMatch = isSetMatch;\n","var _excluded = [\"dangerouslySetInnerHTML\", \"ticks\"],\n _excluded2 = [\"id\"],\n _excluded3 = [\"domain\"],\n _excluded4 = [\"domain\"];\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); }\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; }\n/**\n * @fileOverview X Axis\n */\nimport * as React from 'react';\nimport { useLayoutEffect } from 'react';\nimport { clsx } from 'clsx';\nimport { CartesianAxis } from './CartesianAxis';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { addXAxis, removeXAxis } from '../state/cartesianAxisSlice';\nimport { implicitXAxis, selectAxisScale, selectTicksOfAxis, selectXAxisPosition, selectXAxisSettingsNoDefaults, selectXAxisSize } from '../state/selectors/axisSelectors';\nimport { selectAxisViewBox } from '../state/selectors/selectChartOffsetInternal';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nfunction SetXAxisSettings(settings) {\n var dispatch = useAppDispatch();\n useLayoutEffect(() => {\n dispatch(addXAxis(settings));\n return () => {\n dispatch(removeXAxis(settings));\n };\n }, [settings, dispatch]);\n return null;\n}\nvar XAxisImpl = props => {\n var {\n xAxisId,\n className\n } = props;\n var viewBox = useAppSelector(selectAxisViewBox);\n var isPanorama = useIsPanorama();\n var axisType = 'xAxis';\n var scale = useAppSelector(state => selectAxisScale(state, axisType, xAxisId, isPanorama));\n var cartesianTickItems = useAppSelector(state => selectTicksOfAxis(state, axisType, xAxisId, isPanorama));\n var axisSize = useAppSelector(state => selectXAxisSize(state, xAxisId));\n var position = useAppSelector(state => selectXAxisPosition(state, xAxisId));\n /*\n * Here we select settings from the store and prefer to use them instead of the actual props\n * so that the chart is consistent. If we used the props directly, some components will use axis settings\n * from state and some from props and because there is a render step between these two, they might be showing different things.\n * https://github.com/recharts/recharts/issues/6257\n */\n var synchronizedSettings = useAppSelector(state => selectXAxisSettingsNoDefaults(state, xAxisId));\n if (axisSize == null || position == null || synchronizedSettings == null) {\n return null;\n }\n var {\n dangerouslySetInnerHTML,\n ticks\n } = props,\n allOtherProps = _objectWithoutProperties(props, _excluded);\n var {\n id\n } = synchronizedSettings,\n restSynchronizedSettings = _objectWithoutProperties(synchronizedSettings, _excluded2);\n return /*#__PURE__*/React.createElement(CartesianAxis, _extends({}, allOtherProps, restSynchronizedSettings, {\n scale: scale,\n x: position.x,\n y: position.y,\n width: axisSize.width,\n height: axisSize.height,\n className: clsx(\"recharts-\".concat(axisType, \" \").concat(axisType), className),\n viewBox: viewBox,\n ticks: cartesianTickItems,\n axisType: axisType\n }));\n};\nvar xAxisDefaultProps = {\n allowDataOverflow: implicitXAxis.allowDataOverflow,\n allowDecimals: implicitXAxis.allowDecimals,\n allowDuplicatedCategory: implicitXAxis.allowDuplicatedCategory,\n height: implicitXAxis.height,\n hide: false,\n mirror: implicitXAxis.mirror,\n orientation: implicitXAxis.orientation,\n padding: implicitXAxis.padding,\n reversed: implicitXAxis.reversed,\n scale: implicitXAxis.scale,\n tickCount: implicitXAxis.tickCount,\n type: implicitXAxis.type,\n xAxisId: 0\n};\nvar XAxisSettingsDispatcher = outsideProps => {\n var _props$interval, _props$includeHidden, _props$angle, _props$minTickGap, _props$tick;\n var props = resolveDefaultProps(outsideProps, xAxisDefaultProps);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetXAxisSettings, {\n interval: (_props$interval = props.interval) !== null && _props$interval !== void 0 ? _props$interval : 'preserveEnd',\n id: props.xAxisId,\n scale: props.scale,\n type: props.type,\n padding: props.padding,\n allowDataOverflow: props.allowDataOverflow,\n domain: props.domain,\n dataKey: props.dataKey,\n allowDuplicatedCategory: props.allowDuplicatedCategory,\n allowDecimals: props.allowDecimals,\n tickCount: props.tickCount,\n includeHidden: (_props$includeHidden = props.includeHidden) !== null && _props$includeHidden !== void 0 ? _props$includeHidden : false,\n reversed: props.reversed,\n ticks: props.ticks,\n height: props.height,\n orientation: props.orientation,\n mirror: props.mirror,\n hide: props.hide,\n unit: props.unit,\n name: props.name,\n angle: (_props$angle = props.angle) !== null && _props$angle !== void 0 ? _props$angle : 0,\n minTickGap: (_props$minTickGap = props.minTickGap) !== null && _props$minTickGap !== void 0 ? _props$minTickGap : 5,\n tick: (_props$tick = props.tick) !== null && _props$tick !== void 0 ? _props$tick : true,\n tickFormatter: props.tickFormatter\n }), /*#__PURE__*/React.createElement(XAxisImpl, props));\n};\nvar XAxisMemoComparator = (prevProps, nextProps) => {\n var {\n domain: prevDomain\n } = prevProps,\n prevRest = _objectWithoutProperties(prevProps, _excluded3);\n var {\n domain: nextDomain\n } = nextProps,\n nextRest = _objectWithoutProperties(nextProps, _excluded4);\n if (!shallowEqual(prevRest, nextRest)) {\n return false;\n }\n if (Array.isArray(prevDomain) && prevDomain.length === 2 && Array.isArray(nextDomain) && nextDomain.length === 2) {\n return prevDomain[0] === nextDomain[0] && prevDomain[1] === nextDomain[1];\n }\n return shallowEqual({\n domain: prevDomain\n }, {\n domain: nextDomain\n });\n};\nexport var XAxis = /*#__PURE__*/React.memo(XAxisSettingsDispatcher, XAxisMemoComparator);\nXAxis.displayName = 'XAxis';","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst orderBy = require('./orderBy.js');\nconst flatten = require('../../array/flatten.js');\nconst isIterateeCall = require('../_internal/isIterateeCall.js');\n\nfunction sortBy(collection, ...criteria) {\n const length = criteria.length;\n if (length > 1 && isIterateeCall.isIterateeCall(collection, criteria[0], criteria[1])) {\n criteria = [];\n }\n else if (length > 2 && isIterateeCall.isIterateeCall(criteria[0], criteria[1], criteria[2])) {\n criteria = [criteria[0]];\n }\n return orderBy.orderBy(collection, flatten.flatten(criteria), ['asc']);\n}\n\nexports.sortBy = sortBy;\n","import { useAppSelector } from '../hooks';\nexport var selectDefaultTooltipEventType = state => state.options.defaultTooltipEventType;\nexport var selectValidateTooltipEventTypes = state => state.options.validateTooltipEventTypes;\nexport function combineTooltipEventType(shared, defaultTooltipEventType, validateTooltipEventTypes) {\n if (shared == null) {\n return defaultTooltipEventType;\n }\n var eventType = shared ? 'axis' : 'item';\n if (validateTooltipEventTypes == null) {\n return defaultTooltipEventType;\n }\n return validateTooltipEventTypes.includes(eventType) ? eventType : defaultTooltipEventType;\n}\nexport function selectTooltipEventType(state, shared) {\n var defaultTooltipEventType = selectDefaultTooltipEventType(state);\n var validateTooltipEventTypes = selectValidateTooltipEventTypes(state);\n return combineTooltipEventType(shared, defaultTooltipEventType, validateTooltipEventTypes);\n}\nexport function useTooltipEventType(shared) {\n return useAppSelector(state => selectTooltipEventType(state, shared));\n}","/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","import { createSelector } from 'reselect';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nexport var selectChartOffset = createSelector([selectChartOffsetInternal], offsetInternal => {\n return {\n top: offsetInternal.top,\n bottom: offsetInternal.bottom,\n left: offsetInternal.left,\n right: offsetInternal.right\n };\n});","import { createSelector } from 'reselect';\nimport { selectChartOffset } from './selectChartOffset';\nimport { selectChartHeight, selectChartWidth } from './containerSelectors';\nexport var selectPlotArea = createSelector([selectChartOffset, selectChartWidth, selectChartHeight], (offset, chartWidth, chartHeight) => {\n if (!offset || chartWidth == null || chartHeight == null) {\n return undefined;\n }\n return {\n x: offset.left,\n y: offset.top,\n width: Math.max(0, chartWidth - offset.left - offset.right),\n height: Math.max(0, chartHeight - offset.top - offset.bottom)\n };\n});","import { defaultAxisId } from './state/cartesianAxisSlice';\nimport { selectAxisDomain, selectAxisWithScale } from './state/selectors/axisSelectors';\nimport { useAppSelector } from './state/hooks';\nimport { useIsPanorama } from './context/PanoramaContext';\nimport { selectActiveLabel, selectActiveTooltipDataPoints } from './state/selectors/tooltipSelectors';\nimport { selectChartOffset } from './state/selectors/selectChartOffset';\nimport { selectPlotArea } from './state/selectors/selectPlotArea';\nexport var useXAxis = xAxisId => {\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama));\n};\nexport var useYAxis = yAxisId => {\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama));\n};\n\n/**\n * Returns the active tooltip label. The label is one of the values from the chart data,\n * and is used to display in the tooltip content.\n *\n * Returns undefined if there is no active user interaction or if used outside a chart context\n *\n * @returns string | undefined\n */\nexport var useActiveTooltipLabel = () => {\n return useAppSelector(selectActiveLabel);\n};\n\n/**\n * Offset defines the blank space between the chart and the plot area.\n * This blank space is occupied by supporting elements like axes, legends, and brushes.\n * This also includes any margins that might be applied to the chart.\n * If you are interested in the margin alone, use `useMargin` instead.\n *\n * @returns Offset of the chart in pixels, or undefined if used outside a chart context.\n */\nexport var useOffset = () => {\n return useAppSelector(selectChartOffset);\n};\n\n/**\n * Plot area is the area where the actual chart data is rendered.\n * This means: bars, lines, scatter points, etc.\n *\n * The plot area is calculated based on the chart dimensions and the offset.\n *\n * @returns Plot area of the chart in pixels, or undefined if used outside a chart context.\n */\nexport var usePlotArea = () => {\n return useAppSelector(selectPlotArea);\n};\n\n/**\n * Returns the currently active data points being displayed in the Tooltip.\n * Active means that it is currently visible; this hook will return `undefined` if there is no current interaction.\n *\n * This follows the `<Tooltip />` props, if the Tooltip element is present in the chart.\n * If there is no `<Tooltip />` then this hook will follow the default Tooltip props.\n *\n * Data point is whatever you pass as an input to the chart using the `data={}` prop.\n *\n * This returns an array because a chart can have multiple graphical items in it (multiple Lines for example)\n * and tooltip with `shared={true}` will display all items at the same time.\n *\n * Returns undefined when used outside a chart context.\n *\n * @returns Data points that are currently visible in a Tooltip\n */\nexport var useActiveTooltipDataPoints = () => {\n return useAppSelector(selectActiveTooltipDataPoints);\n};\n\n/**\n * Returns the calculated domain of an X-axis.\n *\n * The domain can be numerical: `[min, max]`, or categorical: `['a', 'b', 'c']`.\n *\n * The type of the domain is defined by the `type` prop of the XAxis.\n *\n * The values of the domain are calculated based on the data and the `dataKey` of the axis.\n *\n * If the chart has a Brush, the domain will be filtered to the brushed indexes if the hook is used outside a Brush context,\n * and the full domain will be returned if the hook is used inside a Brush context.\n *\n * @param xAxisId The `xAxisId` of the X-axis. Defaults to `0` if not provided.\n * @returns The domain of the X-axis, or `undefined` if it cannot be calculated or if used outside a chart context.\n */\nexport var useXAxisDomain = function useXAxisDomain() {\n var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisDomain(state, 'xAxis', xAxisId, isPanorama));\n};\n\n/**\n * Returns the calculated domain of a Y-axis.\n *\n * The domain can be numerical: `[min, max]`, or categorical: `['a', 'b', 'c']`.\n *\n * The type of the domain is defined by the `type` prop of the YAxis.\n *\n * The values of the domain are calculated based on the data and the `dataKey` of the axis.\n *\n * Does not interact with Brushes, as Y-axes do not support brushing.\n *\n * @param yAxisId The `yAxisId` of the Y-axis. Defaults to `0` if not provided.\n * @returns The domain of the Y-axis, or `undefined` if it cannot be calculated or if used outside a chart context.\n */\nexport var useYAxisDomain = function useYAxisDomain() {\n var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisDomain(state, 'yAxis', yAxisId, isPanorama));\n};","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isDeepKey(key) {\n switch (typeof key) {\n case 'number':\n case 'symbol': {\n return false;\n }\n case 'string': {\n return key.includes('.') || key.includes('[') || key.includes(']');\n }\n }\n}\n\nexports.isDeepKey = isDeepKey;\n","export var combineCoordinateForDefaultIndex = (width, height, layout, offset, tooltipTicks, defaultIndex, tooltipConfigurations, tooltipPayloadSearcher) => {\n if (defaultIndex == null || tooltipPayloadSearcher == null) {\n return undefined;\n }\n // With defaultIndex alone, we don't have enough information to decide _which_ of the multiple tooltips to display. So we choose the first one.\n var firstConfiguration = tooltipConfigurations[0];\n // @ts-expect-error we need to rethink the tooltipPayloadSearcher type\n var maybePosition = firstConfiguration == null ? undefined : tooltipPayloadSearcher(firstConfiguration.positions, defaultIndex);\n if (maybePosition != null) {\n return maybePosition;\n }\n var tick = tooltipTicks === null || tooltipTicks === void 0 ? void 0 : tooltipTicks[Number(defaultIndex)];\n if (!tick) {\n return undefined;\n }\n switch (layout) {\n case 'horizontal':\n {\n return {\n x: tick.coordinate,\n y: (offset.top + height) / 2\n };\n }\n default:\n {\n // This logic is not super sound - it conflates vertical, radial, centric layouts into just one. TODO improve!\n return {\n x: (offset.left + width) / 2,\n y: tick.coordinate\n };\n }\n }\n};","export function isWellBehavedNumber(n) {\n return Number.isFinite(n);\n}\nexport function isPositiveNumber(n) {\n return typeof n === 'number' && n > 0 && Number.isFinite(n);\n}","var _excluded = [\"labelRef\"];\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); }\nimport * as React from 'react';\nimport { cloneElement, createContext, createElement, isValidElement, useContext, useMemo } from 'react';\nimport { clsx } from 'clsx';\nimport { isValidTextAnchor, Text } from './Text';\nimport { getPercentValue, isNullish, isNumber, isNumOrStr, isPercent, mathSign, uniqueId } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { cartesianViewBoxToTrapezoid, useViewBox } from '../context/chartLayoutContext';\nimport { useAppSelector } from '../state/hooks';\nimport { selectPolarViewBox } from '../state/selectors/polarAxisSelectors';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nvar CartesianLabelContext = /*#__PURE__*/createContext(null);\nexport var CartesianLabelContextProvider = _ref => {\n var {\n x,\n y,\n upperWidth,\n lowerWidth,\n width,\n height,\n children\n } = _ref;\n var viewBox = useMemo(() => ({\n x,\n y,\n upperWidth,\n lowerWidth,\n width,\n height\n }), [x, y, upperWidth, lowerWidth, width, height]);\n return /*#__PURE__*/React.createElement(CartesianLabelContext.Provider, {\n value: viewBox\n }, children);\n};\nvar useCartesianLabelContext = () => {\n var labelChildContext = useContext(CartesianLabelContext);\n var chartContext = useViewBox();\n return labelChildContext || cartesianViewBoxToTrapezoid(chartContext);\n};\nvar PolarLabelContext = /*#__PURE__*/createContext(null);\nexport var PolarLabelContextProvider = _ref2 => {\n var {\n cx,\n cy,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle,\n clockWise,\n children\n } = _ref2;\n var viewBox = useMemo(() => ({\n cx,\n cy,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle,\n clockWise\n }), [cx, cy, innerRadius, outerRadius, startAngle, endAngle, clockWise]);\n return /*#__PURE__*/React.createElement(PolarLabelContext.Provider, {\n value: viewBox\n }, children);\n};\nexport var usePolarLabelContext = () => {\n var labelChildContext = useContext(PolarLabelContext);\n var chartContext = useAppSelector(selectPolarViewBox);\n return labelChildContext || chartContext;\n};\nvar getLabel = props => {\n var {\n value,\n formatter\n } = props;\n var label = isNullish(props.children) ? value : props.children;\n if (typeof formatter === 'function') {\n return formatter(label);\n }\n return label;\n};\nexport var isLabelContentAFunction = content => {\n return content != null && typeof content === 'function';\n};\nvar getDeltaAngle = (startAngle, endAngle) => {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\nvar renderRadialLabel = (labelProps, position, label, attrs, viewBox) => {\n var {\n offset,\n className\n } = labelProps;\n var {\n cx,\n cy,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle,\n clockWise\n } = viewBox;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n switch (position) {\n case 'insideStart':\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n break;\n case 'insideEnd':\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n break;\n case 'end':\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n break;\n default:\n throw new Error(\"Unsupported position \".concat(position));\n }\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = isNullish(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: clsx('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\nvar getAttrsOfPolarLabel = (viewBox, offset, position) => {\n var {\n cx,\n cy,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle\n } = viewBox;\n var midAngle = (startAngle + endAngle) / 2;\n if (position === 'outside') {\n var {\n x: _x,\n y: _y\n } = polarToCartesian(cx, cy, outerRadius + offset, midAngle);\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n var r = (innerRadius + outerRadius) / 2;\n var {\n x,\n y\n } = polarToCartesian(cx, cy, r, midAngle);\n return {\n x,\n y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\nvar isPolar = viewBox => 'cx' in viewBox && isNumber(viewBox.cx);\nexport var getAttrsOfCartesianLabel = (props, viewBox) => {\n var {\n parentViewBox: parentViewBoxFromProps,\n offset,\n position\n } = props;\n var parentViewBox;\n if (parentViewBoxFromProps != null && !isPolar(parentViewBoxFromProps)) {\n // Check that nobody is trying to pass a polar viewBox to a cartesian label\n parentViewBox = parentViewBoxFromProps;\n }\n var {\n x,\n y,\n upperWidth,\n lowerWidth,\n height\n } = viewBox;\n\n // Funnel.tsx provides a viewBox where `x` is the top-left of the trapezoid shape.\n var upperX = x;\n // The trapezoid is centered, so we can calculate the other corners from the top-left.\n var lowerX = x + (upperWidth - lowerWidth) / 2;\n // middleX is the x-coordinate of the left edge at the vertical midpoint of the trapezoid.\n var middleX = (upperX + lowerX) / 2;\n // The width of the trapezoid at its vertical midpoint.\n var midHeightWidth = (upperWidth + lowerWidth) / 2;\n // The center x-coordinate is constant for the entire height of the trapezoid.\n var centerX = upperX + upperWidth / 2;\n\n // Define vertical offsets and position inverts based on the value being positive or negative.\n // This allows labels to be positioned correctly for bars with negative height.\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end';\n\n // Define horizontal offsets and position inverts based on the value being positive or negative.\n // This allows labels to be positioned correctly for bars with negative width.\n var horizontalSign = upperWidth >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n if (position === 'top') {\n var attrs = {\n x: upperX + upperWidth / 2,\n y: y - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {\n height: Math.max(y - parentViewBox.y, 0),\n width: upperWidth\n } : {});\n }\n if (position === 'bottom') {\n var _attrs = {\n x: lowerX + lowerWidth / 2,\n y: y + height + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {\n height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),\n width: lowerWidth\n } : {});\n }\n if (position === 'left') {\n var _attrs2 = {\n x: middleX - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {\n width: Math.max(_attrs2.x - parentViewBox.x, 0),\n height\n } : {});\n }\n if (position === 'right') {\n var _attrs3 = {\n x: middleX + midHeightWidth + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {\n width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),\n height\n } : {});\n }\n var sizeAttrs = parentViewBox ? {\n width: midHeightWidth,\n height\n } : {};\n if (position === 'insideLeft') {\n return _objectSpread({\n x: middleX + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideRight') {\n return _objectSpread({\n x: middleX + midHeightWidth - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideTop') {\n return _objectSpread({\n x: upperX + upperWidth / 2,\n y: y + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottom') {\n return _objectSpread({\n x: lowerX + lowerWidth / 2,\n y: y + height - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: upperX + horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: upperX + upperWidth - horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: lowerX + horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: lowerX + lowerWidth - horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (!!position && typeof position === 'object' && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n // TODO: This is not quite right. The width of the trapezoid changes with y.\n // A percentage-based x should be relative to the width at that y.\n // For now, we use the mid-height width as a reasonable approximation.\n return _objectSpread({\n x: x + getPercentValue(position.x, midHeightWidth),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n return _objectSpread({\n x: centerX,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\nvar defaultLabelProps = {\n offset: 5,\n zIndex: DefaultZIndexes.label\n};\nexport function Label(outerProps) {\n var props = resolveDefaultProps(outerProps, defaultLabelProps);\n var {\n viewBox: viewBoxFromProps,\n position,\n value,\n children,\n content,\n className = '',\n textBreakAll,\n labelRef\n } = props;\n var polarViewBox = usePolarLabelContext();\n var cartesianViewBox = useCartesianLabelContext();\n\n /*\n * I am not proud about this solution, but it's a quick fix for https://github.com/recharts/recharts/issues/6030#issuecomment-3155352460.\n * What we should really do is split Label into two components: CartesianLabel and PolarLabel and then handle their respective viewBoxes separately.\n * Also other components should set its own viewBox in a context so that we can fix https://github.com/recharts/recharts/issues/6156\n */\n var resolvedViewBox = position === 'center' ? cartesianViewBox : polarViewBox !== null && polarViewBox !== void 0 ? polarViewBox : cartesianViewBox;\n var viewBox, label, positionAttrs;\n if (viewBoxFromProps == null) {\n viewBox = resolvedViewBox;\n } else if (isPolar(viewBoxFromProps)) {\n viewBox = viewBoxFromProps;\n } else {\n viewBox = cartesianViewBoxToTrapezoid(viewBoxFromProps);\n }\n if (!viewBox || isNullish(value) && isNullish(children) && ! /*#__PURE__*/isValidElement(content) && typeof content !== 'function') {\n return null;\n }\n var propsWithViewBox = _objectSpread(_objectSpread({}, props), {}, {\n viewBox\n });\n if (/*#__PURE__*/isValidElement(content)) {\n var {\n labelRef: _\n } = propsWithViewBox,\n propsWithoutLabelRef = _objectWithoutProperties(propsWithViewBox, _excluded);\n return /*#__PURE__*/cloneElement(content, propsWithoutLabelRef);\n }\n if (typeof content === 'function') {\n // @ts-expect-error we're not checking if the content component returns something that Text is able to render\n label = /*#__PURE__*/createElement(content, propsWithViewBox);\n if (/*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n var attrs = svgPropertiesAndEvents(props);\n if (isPolar(viewBox)) {\n if (position === 'insideStart' || position === 'insideEnd' || position === 'end') {\n return renderRadialLabel(props, position, label, attrs, viewBox);\n }\n positionAttrs = getAttrsOfPolarLabel(viewBox, props.offset, props.position);\n } else {\n positionAttrs = getAttrsOfCartesianLabel(props, viewBox);\n }\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(Text, _extends({\n ref: labelRef,\n className: clsx('recharts-label', className)\n }, attrs, positionAttrs, {\n /*\n * textAnchor is decided by default based on the `position`\n * but we allow overriding via props for precise control.\n */\n textAnchor: isValidTextAnchor(attrs.textAnchor) ? attrs.textAnchor : positionAttrs.textAnchor,\n breakAll: textBreakAll\n }), label));\n}\nLabel.displayName = 'Label';\nvar parseLabel = (label, viewBox, labelRef) => {\n if (!label) {\n return null;\n }\n var commonProps = {\n viewBox,\n labelRef\n };\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n key: \"label-implicit\"\n }, commonProps));\n }\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n key: \"label-implicit\",\n value: label\n }, commonProps));\n }\n if (/*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, _objectSpread({\n key: 'label-implicit'\n }, commonProps));\n }\n return /*#__PURE__*/React.createElement(Label, _extends({\n key: \"label-implicit\",\n content: label\n }, commonProps));\n }\n if (isLabelContentAFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n key: \"label-implicit\",\n content: label\n }, commonProps));\n }\n if (label && typeof label === 'object') {\n return /*#__PURE__*/React.createElement(Label, _extends({}, label, {\n key: \"label-implicit\"\n }, commonProps));\n }\n return null;\n};\nexport function CartesianLabelFromLabelProp(_ref3) {\n var {\n label,\n labelRef\n } = _ref3;\n var viewBox = useCartesianLabelContext();\n return parseLabel(label, viewBox, labelRef) || null;\n}\nexport function PolarLabelFromLabelProp(_ref4) {\n var {\n label\n } = _ref4;\n var viewBox = usePolarLabelContext();\n return parseLabel(label, viewBox) || null;\n}","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isPlainObject(object) {\n if (typeof object !== 'object') {\n return false;\n }\n if (object == null) {\n return false;\n }\n if (Object.getPrototypeOf(object) === null) {\n return true;\n }\n if (Object.prototype.toString.call(object) !== '[object Object]') {\n const tag = object[Symbol.toStringTag];\n if (tag == null) {\n return false;\n }\n const isTagReadonly = !Object.getOwnPropertyDescriptor(object, Symbol.toStringTag)?.writable;\n if (isTagReadonly) {\n return false;\n }\n return object.toString() === `[object ${tag}]`;\n }\n let proto = object;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(object) === proto;\n}\n\nexports.isPlainObject = isPlainObject;\n","import { createSelector } from 'reselect';\nimport { combineAppliedValues, combineAreasDomain, combineAxisDomain, combineAxisDomainWithNiceTicks, combineCategoricalDomain, combineDisplayedData, combineDomainOfAllAppliedNumericalValuesIncludingErrorValues, combineDomainOfStackGroups, combineDotsDomain, combineDuplicateDomain, combineGraphicalItemsData, combineGraphicalItemsSettings, combineLinesDomain, combineNiceTicks, combineNumericalDomain, combineRealScaleType, combineScaleFunction, combineStackGroups, filterGraphicalNotStackedItems, filterReferenceElements, getDomainDefinition, itemAxisPredicate, mergeDomains, selectAllErrorBarSettings, selectAxisRange, selectHasBar, selectReferenceAreas, selectReferenceDots, selectReferenceLines, selectTooltipAxis, selectTooltipAxisDataKey } from './axisSelectors';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { isCategoricalAxis } from '../../util/ChartUtils';\nimport { selectChartDataWithIndexes } from './dataSelectors';\nimport { selectChartName, selectStackOffsetType } from './rootPropsSelectors';\nimport { mathSign } from '../../util/DataUtils';\nimport { combineAxisRangeWithReverse } from './combiners/combineAxisRangeWithReverse';\nimport { combineTooltipEventType, selectDefaultTooltipEventType, selectValidateTooltipEventTypes } from './selectTooltipEventType';\nimport { combineActiveLabel } from './combiners/combineActiveLabel';\nimport { selectTooltipSettings } from './selectTooltipSettings';\nimport { combineTooltipInteractionState } from './combiners/combineTooltipInteractionState';\nimport { combineActiveTooltipIndex } from './combiners/combineActiveTooltipIndex';\nimport { combineCoordinateForDefaultIndex } from './combiners/combineCoordinateForDefaultIndex';\nimport { selectChartHeight, selectChartWidth } from './containerSelectors';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { combineTooltipPayloadConfigurations } from './combiners/combineTooltipPayloadConfigurations';\nimport { selectTooltipPayloadSearcher } from './selectTooltipPayloadSearcher';\nimport { selectTooltipState } from './selectTooltipState';\nimport { combineTooltipPayload } from './combiners/combineTooltipPayload';\nimport { selectTooltipAxisId } from './selectTooltipAxisId';\nimport { selectTooltipAxisType } from './selectTooltipAxisType';\nimport { combineDisplayedStackedData } from './combiners/combineDisplayedStackedData';\nimport { isStacked } from '../types/StackedGraphicalItem';\nimport { numericalDomainSpecifiedWithoutRequiringData } from '../../util/isDomainSpecifiedByUser';\nimport { numberDomainEqualityCheck } from './numberDomainEqualityCheck';\nimport { emptyArraysAreEqualCheck } from './arrayEqualityCheck';\nexport var selectTooltipAxisRealScaleType = createSelector([selectTooltipAxis, selectChartLayout, selectHasBar, selectChartName, selectTooltipAxisType], combineRealScaleType);\nexport var selectAllUnfilteredGraphicalItems = createSelector([state => state.graphicalItems.cartesianItems, state => state.graphicalItems.polarItems], (cartesianItems, polarItems) => [...cartesianItems, ...polarItems]);\nvar selectTooltipAxisPredicate = createSelector([selectTooltipAxisType, selectTooltipAxisId], itemAxisPredicate);\nexport var selectAllGraphicalItemsSettings = createSelector([selectAllUnfilteredGraphicalItems, selectTooltipAxis, selectTooltipAxisPredicate], combineGraphicalItemsSettings, {\n memoizeOptions: {\n resultEqualityCheck: emptyArraysAreEqualCheck\n }\n});\nvar selectAllStackedGraphicalItemsSettings = createSelector([selectAllGraphicalItemsSettings], graphicalItems => graphicalItems.filter(isStacked));\nexport var selectTooltipGraphicalItemsData = createSelector([selectAllGraphicalItemsSettings], combineGraphicalItemsData, {\n memoizeOptions: {\n resultEqualityCheck: emptyArraysAreEqualCheck\n }\n});\n\n/**\n * Data for tooltip always use the data with indexes set by a Brush,\n * and never accept the isPanorama flag:\n * because Tooltip never displays inside the panorama anyway\n * so we don't need to worry what would happen there.\n */\nexport var selectTooltipDisplayedData = createSelector([selectTooltipGraphicalItemsData, selectChartDataWithIndexes], combineDisplayedData);\nvar selectTooltipStackedData = createSelector([selectAllStackedGraphicalItemsSettings, selectChartDataWithIndexes, selectTooltipAxis], combineDisplayedStackedData);\nvar selectAllTooltipAppliedValues = createSelector([selectTooltipDisplayedData, selectTooltipAxis, selectAllGraphicalItemsSettings], combineAppliedValues);\nvar selectTooltipAxisDomainDefinition = createSelector([selectTooltipAxis], getDomainDefinition);\nvar selectTooltipDataOverflow = createSelector([selectTooltipAxis], axisSettings => axisSettings.allowDataOverflow);\nvar selectTooltipDomainFromUserPreferences = createSelector([selectTooltipAxisDomainDefinition, selectTooltipDataOverflow], numericalDomainSpecifiedWithoutRequiringData);\nvar selectAllStackedGraphicalItems = createSelector([selectAllGraphicalItemsSettings], graphicalItems => graphicalItems.filter(isStacked));\nvar selectTooltipStackGroups = createSelector([selectTooltipStackedData, selectAllStackedGraphicalItems, selectStackOffsetType], combineStackGroups);\nvar selectTooltipDomainOfStackGroups = createSelector([selectTooltipStackGroups, selectChartDataWithIndexes, selectTooltipAxisType, selectTooltipDomainFromUserPreferences], combineDomainOfStackGroups);\nvar selectTooltipItemsSettingsExceptStacked = createSelector([selectAllGraphicalItemsSettings], filterGraphicalNotStackedItems);\nvar selectDomainOfAllAppliedNumericalValuesIncludingErrorValues = createSelector([selectTooltipDisplayedData, selectTooltipAxis, selectTooltipItemsSettingsExceptStacked, selectAllErrorBarSettings, selectTooltipAxisType], combineDomainOfAllAppliedNumericalValuesIncludingErrorValues, {\n memoizeOptions: {\n resultEqualityCheck: numberDomainEqualityCheck\n }\n});\nvar selectReferenceDotsByTooltipAxis = createSelector([selectReferenceDots, selectTooltipAxisType, selectTooltipAxisId], filterReferenceElements);\nvar selectTooltipReferenceDotsDomain = createSelector([selectReferenceDotsByTooltipAxis, selectTooltipAxisType], combineDotsDomain);\nvar selectReferenceAreasByTooltipAxis = createSelector([selectReferenceAreas, selectTooltipAxisType, selectTooltipAxisId], filterReferenceElements);\nvar selectTooltipReferenceAreasDomain = createSelector([selectReferenceAreasByTooltipAxis, selectTooltipAxisType], combineAreasDomain);\nvar selectReferenceLinesByTooltipAxis = createSelector([selectReferenceLines, selectTooltipAxisType, selectTooltipAxisId], filterReferenceElements);\nvar selectTooltipReferenceLinesDomain = createSelector([selectReferenceLinesByTooltipAxis, selectTooltipAxisType], combineLinesDomain);\nvar selectTooltipReferenceElementsDomain = createSelector([selectTooltipReferenceDotsDomain, selectTooltipReferenceLinesDomain, selectTooltipReferenceAreasDomain], mergeDomains);\nvar selectTooltipNumericalDomain = createSelector([selectTooltipAxis, selectTooltipAxisDomainDefinition, selectTooltipDomainFromUserPreferences, selectTooltipDomainOfStackGroups, selectDomainOfAllAppliedNumericalValuesIncludingErrorValues, selectTooltipReferenceElementsDomain, selectChartLayout, selectTooltipAxisType], combineNumericalDomain);\nexport var selectTooltipAxisDomain = createSelector([selectTooltipAxis, selectChartLayout, selectTooltipDisplayedData, selectAllTooltipAppliedValues, selectStackOffsetType, selectTooltipAxisType, selectTooltipNumericalDomain], combineAxisDomain);\nvar selectTooltipNiceTicks = createSelector([selectTooltipAxisDomain, selectTooltipAxis, selectTooltipAxisRealScaleType], combineNiceTicks);\nexport var selectTooltipAxisDomainIncludingNiceTicks = createSelector([selectTooltipAxis, selectTooltipAxisDomain, selectTooltipNiceTicks, selectTooltipAxisType], combineAxisDomainWithNiceTicks);\nvar selectTooltipAxisRange = state => {\n var axisType = selectTooltipAxisType(state);\n var axisId = selectTooltipAxisId(state);\n var isPanorama = false; // Tooltip never displays in panorama so this is safe to assume\n return selectAxisRange(state, axisType, axisId, isPanorama);\n};\nexport var selectTooltipAxisRangeWithReverse = createSelector([selectTooltipAxis, selectTooltipAxisRange], combineAxisRangeWithReverse);\nexport var selectTooltipAxisScale = createSelector([selectTooltipAxis, selectTooltipAxisRealScaleType, selectTooltipAxisDomainIncludingNiceTicks, selectTooltipAxisRangeWithReverse], combineScaleFunction);\nvar selectTooltipDuplicateDomain = createSelector([selectChartLayout, selectAllTooltipAppliedValues, selectTooltipAxis, selectTooltipAxisType], combineDuplicateDomain);\nexport var selectTooltipCategoricalDomain = createSelector([selectChartLayout, selectAllTooltipAppliedValues, selectTooltipAxis, selectTooltipAxisType], combineCategoricalDomain);\nvar combineTicksOfTooltipAxis = (layout, axis, realScaleType, scale, range, duplicateDomain, categoricalDomain, axisType) => {\n if (!axis) {\n return undefined;\n }\n var {\n type\n } = axis;\n var isCategorical = isCategoricalAxis(layout, axisType);\n if (!scale) {\n return undefined;\n }\n var offsetForBand = realScaleType === 'scaleBand' && scale.bandwidth ? scale.bandwidth() / 2 : 2;\n var offset = type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n offset = axisType === 'angleAxis' && range != null && (range === null || range === void 0 ? void 0 : range.length) >= 2 ? mathSign(range[0] - range[1]) * 2 * offset : offset;\n\n // When axis is a categorical axis, but the type of axis is number or the scale of axis is not \"auto\"\n if (isCategorical && categoricalDomain) {\n return categoricalDomain.map((entry, index) => ({\n coordinate: scale(entry) + offset,\n value: entry,\n index,\n offset\n }));\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map((entry, index) => ({\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index,\n offset\n }));\n};\nexport var selectTooltipAxisTicks = createSelector([selectChartLayout, selectTooltipAxis, selectTooltipAxisRealScaleType, selectTooltipAxisScale, selectTooltipAxisRange, selectTooltipDuplicateDomain, selectTooltipCategoricalDomain, selectTooltipAxisType], combineTicksOfTooltipAxis);\nvar selectTooltipEventType = createSelector([selectDefaultTooltipEventType, selectValidateTooltipEventTypes, selectTooltipSettings], (defaultTooltipEventType, validateTooltipEventType, settings) => combineTooltipEventType(settings.shared, defaultTooltipEventType, validateTooltipEventType));\nvar selectTooltipTrigger = state => state.tooltip.settings.trigger;\nvar selectDefaultIndex = state => state.tooltip.settings.defaultIndex;\nvar selectTooltipInteractionState = createSelector([selectTooltipState, selectTooltipEventType, selectTooltipTrigger, selectDefaultIndex], combineTooltipInteractionState);\nexport var selectActiveTooltipIndex = createSelector([selectTooltipInteractionState, selectTooltipDisplayedData], combineActiveTooltipIndex);\nexport var selectActiveLabel = createSelector([selectTooltipAxisTicks, selectActiveTooltipIndex], combineActiveLabel);\nexport var selectActiveTooltipDataKey = createSelector([selectTooltipInteractionState], tooltipInteraction => {\n if (!tooltipInteraction) {\n return undefined;\n }\n return tooltipInteraction.dataKey;\n});\nvar selectTooltipPayloadConfigurations = createSelector([selectTooltipState, selectTooltipEventType, selectTooltipTrigger, selectDefaultIndex], combineTooltipPayloadConfigurations);\nvar selectTooltipCoordinateForDefaultIndex = createSelector([selectChartWidth, selectChartHeight, selectChartLayout, selectChartOffsetInternal, selectTooltipAxisTicks, selectDefaultIndex, selectTooltipPayloadConfigurations, selectTooltipPayloadSearcher], combineCoordinateForDefaultIndex);\nexport var selectActiveTooltipCoordinate = createSelector([selectTooltipInteractionState, selectTooltipCoordinateForDefaultIndex], (tooltipInteractionState, defaultIndexCoordinate) => {\n if (tooltipInteractionState !== null && tooltipInteractionState !== void 0 && tooltipInteractionState.coordinate) {\n return tooltipInteractionState.coordinate;\n }\n return defaultIndexCoordinate;\n});\nexport var selectIsTooltipActive = createSelector([selectTooltipInteractionState], tooltipInteractionState => tooltipInteractionState.active);\nexport var selectActiveTooltipPayload = createSelector([selectTooltipPayloadConfigurations, selectActiveTooltipIndex, selectChartDataWithIndexes, selectTooltipAxisDataKey, selectActiveLabel, selectTooltipPayloadSearcher, selectTooltipEventType], combineTooltipPayload);\nexport var selectActiveTooltipDataPoints = createSelector([selectActiveTooltipPayload], payload => {\n if (payload == null) {\n return undefined;\n }\n var dataPoints = payload.map(p => p.payload).filter(p => p != null);\n return Array.from(new Set(dataPoints));\n});","export var selectTooltipSettings = state => state.tooltip.settings;","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst identity = require('../../function/identity.js');\nconst property = require('../object/property.js');\nconst matches = require('../predicate/matches.js');\nconst matchesProperty = require('../predicate/matchesProperty.js');\n\nfunction iteratee(value) {\n if (value == null) {\n return identity.identity;\n }\n switch (typeof value) {\n case 'function': {\n return value;\n }\n case 'object': {\n if (Array.isArray(value) && value.length === 2) {\n return matchesProperty.matchesProperty(value[0], value[1]);\n }\n return matches.matches(value);\n }\n case 'string':\n case 'symbol':\n case 'number': {\n return property.property(value);\n }\n }\n}\n\nexports.iteratee = iteratee;\n","import { createSlice, current, prepareAutoBatched } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\n\n/**\n * One Tooltip can display multiple TooltipPayloadEntries at a time.\n */\n\n/**\n * So what happens is that the tooltip payload is decided based on the available data, and the dataKey.\n * The dataKey can either be defined on the graphical element (like Line, or Bar)\n * or on the tooltip itself.\n *\n * The data can be defined in the chart element, or in the graphical item.\n *\n * So this type is all the settings, other than the data + dataKey complications.\n */\n\n/**\n * This is what Tooltip renders.\n */\n\n/**\n * null means no active index\n * string means: whichever index from the chart data it is.\n * Different charts have different requirements on data shapes,\n * and are also responsible for providing a function that will accept this index\n * and return data.\n */\n\n/**\n * Different items have different data shapes so the state has no opinion on what the data shape should be;\n * the only requirement is that the chart also provides a searcher function\n * that accepts the data, and a key, and returns whatever the payload in Tooltip should be.\n */\n\n/**\n * So this informs the \"tooltip event type\". Tooltip event type can be either \"axis\" or \"item\"\n * and it is used for two things:\n * 1. Sets the active area\n * 2. Sets the background and cursor highlights\n *\n * Some charts only allow to have one type of tooltip event type, some allow both.\n * Those charts that allow both will have one default, and the \"shared\" prop will be used to switch between them.\n * Undefined means \"use the chart default\".\n *\n * Charts that only allow one tooltip event type, will ignore the shared prop.\n */\n\n/**\n * A generic state for user interaction with the chart.\n * User interaction can come through multiple channels: mouse events, keyboard events, or hardcoded in props, or synchronised from other charts.\n *\n * Each of the interaction states is represented as TooltipInteractionState,\n * and then the selectors and Tooltip will decide which of the interaction states to use.\n */\n\nexport var noInteraction = {\n active: false,\n index: null,\n dataKey: undefined,\n coordinate: undefined\n};\n\n/**\n * The tooltip interaction state stores:\n *\n * - Which graphical item is user interacting with at the moment,\n * - which axis (or, which part of chart background) is user interacting with at the moment\n * - The data that individual graphical items wish to be displayed in case the tooltip gets activated\n */\n\nexport var initialState = {\n itemInteraction: {\n click: noInteraction,\n hover: noInteraction\n },\n axisInteraction: {\n click: noInteraction,\n hover: noInteraction\n },\n keyboardInteraction: noInteraction,\n syncInteraction: {\n active: false,\n index: null,\n dataKey: undefined,\n label: undefined,\n coordinate: undefined,\n sourceViewBox: undefined\n },\n tooltipItemPayloads: [],\n settings: {\n shared: undefined,\n trigger: 'hover',\n axisId: 0,\n active: false,\n defaultIndex: undefined\n }\n};\nvar tooltipSlice = createSlice({\n name: 'tooltip',\n initialState,\n reducers: {\n addTooltipEntrySettings: {\n reducer(state, action) {\n state.tooltipItemPayloads.push(castDraft(action.payload));\n },\n prepare: prepareAutoBatched()\n },\n removeTooltipEntrySettings: {\n reducer(state, action) {\n var index = current(state).tooltipItemPayloads.indexOf(castDraft(action.payload));\n if (index > -1) {\n state.tooltipItemPayloads.splice(index, 1);\n }\n },\n prepare: prepareAutoBatched()\n },\n setTooltipSettingsState(state, action) {\n state.settings = action.payload;\n },\n setActiveMouseOverItemIndex(state, action) {\n state.syncInteraction.active = false;\n state.keyboardInteraction.active = false;\n state.itemInteraction.hover.active = true;\n state.itemInteraction.hover.index = action.payload.activeIndex;\n state.itemInteraction.hover.dataKey = action.payload.activeDataKey;\n state.itemInteraction.hover.coordinate = action.payload.activeCoordinate;\n },\n mouseLeaveChart(state) {\n /*\n * Clear only the active flags. Why?\n * 1. Keep Coordinate to preserve animation - next time the Tooltip appears, we want to render it from\n * the last place where it was when it disappeared.\n * 2. We want to keep all the properties anyway just in case the tooltip has `active=true` prop\n * and continues being visible even after the mouse has left the chart.\n */\n state.itemInteraction.hover.active = false;\n state.axisInteraction.hover.active = false;\n },\n mouseLeaveItem(state) {\n state.itemInteraction.hover.active = false;\n },\n setActiveClickItemIndex(state, action) {\n state.syncInteraction.active = false;\n state.itemInteraction.click.active = true;\n state.keyboardInteraction.active = false;\n state.itemInteraction.click.index = action.payload.activeIndex;\n state.itemInteraction.click.dataKey = action.payload.activeDataKey;\n state.itemInteraction.click.coordinate = action.payload.activeCoordinate;\n },\n setMouseOverAxisIndex(state, action) {\n state.syncInteraction.active = false;\n state.axisInteraction.hover.active = true;\n state.keyboardInteraction.active = false;\n state.axisInteraction.hover.index = action.payload.activeIndex;\n state.axisInteraction.hover.dataKey = action.payload.activeDataKey;\n state.axisInteraction.hover.coordinate = action.payload.activeCoordinate;\n },\n setMouseClickAxisIndex(state, action) {\n state.syncInteraction.active = false;\n state.keyboardInteraction.active = false;\n state.axisInteraction.click.active = true;\n state.axisInteraction.click.index = action.payload.activeIndex;\n state.axisInteraction.click.dataKey = action.payload.activeDataKey;\n state.axisInteraction.click.coordinate = action.payload.activeCoordinate;\n },\n setSyncInteraction(state, action) {\n state.syncInteraction = action.payload;\n },\n setKeyboardInteraction(state, action) {\n state.keyboardInteraction.active = action.payload.active;\n state.keyboardInteraction.index = action.payload.activeIndex;\n state.keyboardInteraction.coordinate = action.payload.activeCoordinate;\n state.keyboardInteraction.dataKey = action.payload.activeDataKey;\n }\n }\n});\nexport var {\n addTooltipEntrySettings,\n removeTooltipEntrySettings,\n setTooltipSettingsState,\n setActiveMouseOverItemIndex,\n mouseLeaveItem,\n mouseLeaveChart,\n setActiveClickItemIndex,\n setMouseOverAxisIndex,\n setMouseClickAxisIndex,\n setSyncInteraction,\n setKeyboardInteraction\n} = tooltipSlice.actions;\nexport var tooltipReducer = tooltipSlice.reducer;","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isSymbol(value) {\n return typeof value === 'symbol' || value instanceof Symbol;\n}\n\nexports.isSymbol = isSymbol;\n","import { createSlice, current, prepareAutoBatched } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\n\n/**\n * The properties inside this state update independently of each other and quite often.\n * When selecting, never select the whole state because you are going to get\n * unnecessary re-renders. Select only the properties you need.\n *\n * This is why this state type is not exported - don't use it directly.\n */\n\nvar initialState = {\n settings: {\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n itemSorter: 'value'\n },\n size: {\n width: 0,\n height: 0\n },\n payload: []\n};\nvar legendSlice = createSlice({\n name: 'legend',\n initialState,\n reducers: {\n setLegendSize(state, action) {\n state.size.width = action.payload.width;\n state.size.height = action.payload.height;\n },\n setLegendSettings(state, action) {\n state.settings.align = action.payload.align;\n state.settings.layout = action.payload.layout;\n state.settings.verticalAlign = action.payload.verticalAlign;\n state.settings.itemSorter = action.payload.itemSorter;\n },\n addLegendPayload: {\n reducer(state, action) {\n state.payload.push(castDraft(action.payload));\n },\n prepare: prepareAutoBatched()\n },\n removeLegendPayload: {\n reducer(state, action) {\n var index = current(state).payload.indexOf(castDraft(action.payload));\n if (index > -1) {\n state.payload.splice(index, 1);\n }\n },\n prepare: prepareAutoBatched()\n }\n }\n});\nexport var {\n setLegendSize,\n setLegendSettings,\n addLegendPayload,\n removeLegendPayload\n} = legendSlice.actions;\nexport var legendReducer = legendSlice.reducer;","import { useRef } from 'react';\nimport { uniqueId } from './DataUtils';\n\n/**\n * This hook returns a unique animation id for the object input.\n * If input changes (as in, reference equality is different), the animation id will change.\n * If input does not change, the animation id will not change.\n *\n * This is useful for animations. The Animate component\n * does have a `shouldReAnimate` prop but that doesn't seem to be doing what the name implies.\n * Also, we don't always want to re-animate on every render;\n * we only want to re-animate when the input changes. Not the internal state (e.g. `isAnimating`).\n *\n * @param input The object to check for changes. Uses reference equality (=== operator)\n * @param prefix Optional prefix to use for the animation id\n * @returns A unique animation id\n */\nexport function useAnimationId(input) {\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'animation-';\n var animationId = useRef(uniqueId(prefix));\n var prevProps = useRef(input);\n if (prevProps.current !== input) {\n animationId.current = uniqueId(prefix);\n prevProps.current = input;\n }\n return animationId.current;\n}","var defineProperty = require(\"./defineProperty.js\");\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { createSelector } from 'reselect';\nimport { arrayContentsAreEqualCheck } from '../state/selectors/arrayEqualityCheck';\nimport { DefaultZIndexes } from './DefaultZIndexes';\n\n/**\n * Given a zIndex, returns the corresponding portal element ID.\n * If no zIndex is provided or if the zIndex is not registered, returns undefined.\n *\n * It also returns undefined in case the z-index portal has not been rendered yet.\n */\nexport var selectZIndexPortalId = createSelector(state => state.zIndex.zIndexMap, (_, zIndex) => zIndex, (_, _zIndex, isPanorama) => isPanorama, (zIndexMap, zIndex, isPanorama) => {\n if (zIndex == null) {\n return undefined;\n }\n var entry = zIndexMap[zIndex];\n if (entry == null) {\n return undefined;\n }\n if (isPanorama) {\n return entry.panoramaElementId;\n }\n return entry.elementId;\n});\nexport var selectAllRegisteredZIndexes = createSelector(state => state.zIndex.zIndexMap, zIndexMap => {\n var allNumbers = Object.keys(zIndexMap).map(zIndexStr => parseInt(zIndexStr, 10)).concat(Object.values(DefaultZIndexes));\n var uniqueNumbers = Array.from(new Set(allNumbers));\n return uniqueNumbers.sort((a, b) => a - b);\n}, {\n memoizeOptions: {\n resultEqualityCheck: arrayContentsAreEqualCheck\n }\n});","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction toKey(value) {\n if (typeof value === 'string' || typeof value === 'symbol') {\n return value;\n }\n if (Object.is(value?.valueOf?.(), -0)) {\n return '-0';\n }\n return String(value);\n}\n\nexports.toKey = toKey;\n","var EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture'];\nexport function isEventKey(key) {\n if (typeof key !== 'string') {\n return false;\n }\n var allowedEventKeys = EventKeys;\n return allowedEventKeys.includes(key);\n}","function _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); }\n/**\n * Simple LRU (Least Recently Used) cache implementation\n */\nexport class LRUCache {\n constructor(maxSize) {\n _defineProperty(this, \"cache\", new Map());\n this.maxSize = maxSize;\n }\n get(key) {\n var value = this.cache.get(key);\n if (value !== undefined) {\n this.cache.delete(key);\n this.cache.set(key, value);\n }\n return value;\n }\n set(key, value) {\n if (this.cache.has(key)) {\n this.cache.delete(key);\n } else if (this.cache.size >= this.maxSize) {\n var firstKey = this.cache.keys().next().value;\n this.cache.delete(firstKey);\n }\n this.cache.set(key, value);\n }\n clear() {\n this.cache.clear();\n }\n size() {\n return this.cache.size;\n }\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 { Global } from './Global';\nimport { LRUCache } from './LRUCache';\nvar defaultConfig = {\n cacheSize: 2000,\n enableCache: true\n};\nvar currentConfig = _objectSpread({}, defaultConfig);\nvar stringCache = new LRUCache(currentConfig.cacheSize);\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\nfunction createCacheKey(text, style) {\n // Simple string concatenation for better performance than JSON.stringify\n var fontSize = style.fontSize || '';\n var fontFamily = style.fontFamily || '';\n var fontWeight = style.fontWeight || '';\n var fontStyle = style.fontStyle || '';\n var letterSpacing = style.letterSpacing || '';\n var textTransform = style.textTransform || '';\n return \"\".concat(text, \"|\").concat(fontSize, \"|\").concat(fontFamily, \"|\").concat(fontWeight, \"|\").concat(fontStyle, \"|\").concat(letterSpacing, \"|\").concat(textTransform);\n}\n\n/**\n * Measure text using DOM (accurate but slower)\n * @param text - The text to measure\n * @param style - CSS style properties to apply\n * @returns The size of the text\n */\nvar measureTextWithDOM = (text, style) => {\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n measurementSpan.setAttribute('aria-hidden', 'true');\n document.body.appendChild(measurementSpan);\n }\n\n // Apply styles directly without unnecessary object creation\n Object.assign(measurementSpan.style, SPAN_STYLE, style);\n measurementSpan.textContent = \"\".concat(text);\n var rect = measurementSpan.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height\n };\n } catch (_unused) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n\n // If caching is disabled, measure directly\n if (!currentConfig.enableCache) {\n return measureTextWithDOM(text, style);\n }\n var cacheKey = createCacheKey(text, style);\n var cachedResult = stringCache.get(cacheKey);\n if (cachedResult) {\n return cachedResult;\n }\n\n // Measure using DOM\n var result = measureTextWithDOM(text, style);\n\n // Store in LRU cache\n stringCache.set(cacheKey, result);\n return result;\n};\n\n/**\n * Configure text measurement behavior\n * @param config - Partial configuration to apply\n * @returns void\n */\nexport var configureTextMeasurement = config => {\n var newConfig = _objectSpread(_objectSpread({}, currentConfig), config);\n if (newConfig.cacheSize !== currentConfig.cacheSize) {\n stringCache = new LRUCache(newConfig.cacheSize);\n }\n currentConfig = newConfig;\n};\n\n/**\n * Get current text measurement configuration\n * @returns Current configuration\n */\nexport var getTextMeasurementConfig = () => _objectSpread({}, currentConfig);\n\n/**\n * Clear the string size cache. Useful for testing or memory management.\n * @returns void\n */\nexport var clearStringCache = () => {\n stringCache.clear();\n};\n\n/**\n * Get cache statistics for debugging purposes.\n * @returns Cache statistics including size and max size\n */\nexport var getStringCacheStats = () => ({\n size: stringCache.size(),\n maxSize: currentConfig.cacheSize\n});","// Default to a dummy \"batch\" implementation that just runs the callback\r\nexport function defaultNoopBatch(callback: () => void) {\r\n callback()\r\n}\r\n","import { defaultNoopBatch as batch } from './batch'\n\n// encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\ntype VoidFunc = () => void\n\ntype Listener = {\n callback: VoidFunc\n next: Listener | null\n prev: Listener | null\n}\n\nfunction createListenerCollection() {\n let first: Listener | null = null\n let last: Listener | null = null\n\n return {\n clear() {\n first = null\n last = null\n },\n\n notify() {\n batch(() => {\n let listener = first\n while (listener) {\n listener.callback()\n listener = listener.next\n }\n })\n },\n\n get() {\n const listeners: Listener[] = []\n let listener = first\n while (listener) {\n listeners.push(listener)\n listener = listener.next\n }\n return listeners\n },\n\n subscribe(callback: () => void) {\n let isSubscribed = true\n\n const listener: Listener = (last = {\n callback,\n next: null,\n prev: last,\n })\n\n if (listener.prev) {\n listener.prev.next = listener\n } else {\n first = listener\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return\n isSubscribed = false\n\n if (listener.next) {\n listener.next.prev = listener.prev\n } else {\n last = listener.prev\n }\n if (listener.prev) {\n listener.prev.next = listener.next\n } else {\n first = listener.next\n }\n }\n },\n }\n}\n\ntype ListenerCollection = ReturnType<typeof createListenerCollection>\n\nexport interface Subscription {\n addNestedSub: (listener: VoidFunc) => VoidFunc\n notifyNestedSubs: VoidFunc\n handleChangeWrapper: VoidFunc\n isSubscribed: () => boolean\n onStateChange?: VoidFunc | null\n trySubscribe: VoidFunc\n tryUnsubscribe: VoidFunc\n getListeners: () => ListenerCollection\n}\n\nconst nullListeners = {\n notify() {},\n get: () => [],\n} as unknown as ListenerCollection\n\nexport function createSubscription(store: any, parentSub?: Subscription) {\n let unsubscribe: VoidFunc | undefined\n let listeners: ListenerCollection = nullListeners\n\n // Reasons to keep the subscription active\n let subscriptionsAmount = 0\n\n // Is this specific subscription subscribed (or only nested ones?)\n let selfSubscribed = false\n\n function addNestedSub(listener: () => void) {\n trySubscribe()\n\n const cleanupListener = listeners.subscribe(listener)\n\n // cleanup nested sub\n let removed = false\n return () => {\n if (!removed) {\n removed = true\n cleanupListener()\n tryUnsubscribe()\n }\n }\n }\n\n function notifyNestedSubs() {\n listeners.notify()\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange()\n }\n }\n\n function isSubscribed() {\n return selfSubscribed\n }\n\n function trySubscribe() {\n subscriptionsAmount++\n if (!unsubscribe) {\n unsubscribe = parentSub\n ? parentSub.addNestedSub(handleChangeWrapper)\n : store.subscribe(handleChangeWrapper)\n\n listeners = createListenerCollection()\n }\n }\n\n function tryUnsubscribe() {\n subscriptionsAmount--\n if (unsubscribe && subscriptionsAmount === 0) {\n unsubscribe()\n unsubscribe = undefined\n listeners.clear()\n listeners = nullListeners\n }\n }\n\n function trySubscribeSelf() {\n if (!selfSubscribed) {\n selfSubscribed = true\n trySubscribe()\n }\n }\n\n function tryUnsubscribeSelf() {\n if (selfSubscribed) {\n selfSubscribed = false\n tryUnsubscribe()\n }\n }\n\n const subscription: Subscription = {\n addNestedSub,\n notifyNestedSubs,\n handleChangeWrapper,\n isSubscribed,\n trySubscribe: trySubscribeSelf,\n tryUnsubscribe: tryUnsubscribeSelf,\n getListeners: () => listeners,\n }\n\n return subscription\n}\n","import { React } from '../utils/react'\n\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\n// Matches logic in React's `shared/ExecutionEnvironment` file\nconst canUseDOM = () =>\n !!(\n typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined'\n )\n\nconst isDOM = /* @__PURE__ */ canUseDOM()\n\n// Under React Native, we know that we always want to use useLayoutEffect\n\n/**\n * Checks if the code is running in a React Native environment.\n *\n * @returns Whether the code is running in a React Native environment.\n *\n * @see {@link https://github.com/facebook/react-native/issues/1331 Reference}\n */\nconst isRunningInReactNative = () =>\n typeof navigator !== 'undefined' && navigator.product === 'ReactNative'\n\nconst isReactNative = /* @__PURE__ */ isRunningInReactNative()\n\nconst getUseIsomorphicLayoutEffect = () =>\n isDOM || isReactNative ? React.useLayoutEffect : React.useEffect\n\nexport const useIsomorphicLayoutEffect =\n /* @__PURE__ */ getUseIsomorphicLayoutEffect()\n","// Copied directly from:\n// https://github.com/mridgway/hoist-non-react-statics/blob/main/src/index.js\n// https://unpkg.com/browse/@types/hoist-non-react-statics@3.3.6/index.d.ts\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nimport type { ForwardRefExoticComponent, MemoExoticComponent } from 'react'\nimport { ForwardRef, Memo, isMemo } from '../utils/react-is'\n\nconst REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true,\n} as const\n\nconst KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true,\n} as const\n\nconst FORWARD_REF_STATICS = {\n $$typeof: true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n} as const\n\nconst MEMO_STATICS = {\n $$typeof: true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true,\n} as const\n\nconst TYPE_STATICS = {\n [ForwardRef]: FORWARD_REF_STATICS,\n [Memo]: MEMO_STATICS,\n} as const\n\nfunction getStatics(component: any) {\n // React v16.11 and below\n if (isMemo(component)) {\n return MEMO_STATICS\n }\n\n // React v16.12 and above\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS\n}\n\nexport type NonReactStatics<\n Source,\n C extends {\n [key: string]: true\n } = {},\n> = {\n [key in Exclude<\n keyof Source,\n Source extends MemoExoticComponent<any>\n ? keyof typeof MEMO_STATICS | keyof C\n : Source extends ForwardRefExoticComponent<any>\n ? keyof typeof FORWARD_REF_STATICS | keyof C\n : keyof typeof REACT_STATICS | keyof typeof KNOWN_STATICS | keyof C\n >]: Source[key]\n}\n\nconst defineProperty = Object.defineProperty\nconst getOwnPropertyNames = Object.getOwnPropertyNames\nconst getOwnPropertySymbols = Object.getOwnPropertySymbols\nconst getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor\nconst getPrototypeOf = Object.getPrototypeOf\nconst objectPrototype = Object.prototype\n\nexport default function hoistNonReactStatics<\n Target,\n Source,\n CustomStatic extends {\n [key: string]: true\n } = {},\n>(\n targetComponent: Target,\n sourceComponent: Source,\n): Target & NonReactStatics<Source, CustomStatic> {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n if (objectPrototype) {\n const inheritedComponent = getPrototypeOf(sourceComponent)\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent)\n }\n }\n\n let keys: (string | symbol)[] = getOwnPropertyNames(sourceComponent)\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent))\n }\n\n const targetStatics = getStatics(targetComponent)\n const sourceStatics = getStatics(sourceComponent)\n\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i]\n if (\n !KNOWN_STATICS[key as keyof typeof KNOWN_STATICS] &&\n !(sourceStatics && sourceStatics[key as keyof typeof sourceStatics]) &&\n !(targetStatics && targetStatics[key as keyof typeof targetStatics])\n ) {\n const descriptor = getOwnPropertyDescriptor(sourceComponent, key)\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor!)\n } catch (e) {\n // ignore\n }\n }\n }\n }\n\n return targetComponent as any\n}\n","import type { Context } from 'react'\nimport { React } from '../utils/react'\nimport type { Action, Store, UnknownAction } from 'redux'\nimport type { Subscription } from '../utils/Subscription'\nimport type { ProviderProps } from './Provider'\n\nexport interface ReactReduxContextValue<\n SS = any,\n A extends Action<string> = UnknownAction,\n> extends Pick<ProviderProps, 'stabilityCheck' | 'identityFunctionCheck'> {\n store: Store<SS, A>\n subscription: Subscription\n getServerState?: () => SS\n}\n\nconst ContextKey = /* @__PURE__ */ Symbol.for(`react-redux-context`)\nconst gT: {\n [ContextKey]?: Map<\n typeof React.createContext,\n Context<ReactReduxContextValue | null>\n >\n} = (\n typeof globalThis !== 'undefined'\n ? globalThis\n : /* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */ {}\n) as any\n\nfunction getContext(): Context<ReactReduxContextValue | null> {\n if (!React.createContext) return {} as any\n\n const contextMap = (gT[ContextKey] ??= new Map<\n typeof React.createContext,\n Context<ReactReduxContextValue | null>\n >())\n let realContext = contextMap.get(React.createContext)\n if (!realContext) {\n realContext = React.createContext<ReactReduxContextValue | null>(\n null as any,\n )\n if (process.env.NODE_ENV !== 'production') {\n realContext.displayName = 'ReactRedux'\n }\n contextMap.set(React.createContext, realContext)\n }\n return realContext\n}\n\nexport const ReactReduxContext = /*#__PURE__*/ getContext()\n\nexport type ReactReduxContextInstance = typeof ReactReduxContext\n","import type { Context, ReactNode } from 'react'\nimport { React } from '../utils/react'\nimport type { Action, Store, UnknownAction } from 'redux'\nimport type { DevModeCheckFrequency } from '../hooks/useSelector'\nimport { createSubscription } from '../utils/Subscription'\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'\nimport type { ReactReduxContextValue } from './Context'\nimport { ReactReduxContext } from './Context'\n\nexport interface ProviderProps<\n A extends Action<string> = UnknownAction,\n S = unknown,\n> {\n /**\n * The single Redux store in your application.\n */\n store: Store<S, A>\n\n /**\n * An optional server state snapshot. Will be used during initial hydration render if available, to ensure that the UI output is consistent with the HTML generated on the server.\n */\n serverState?: S\n\n /**\n * Optional context to be used internally in react-redux. Use React.createContext() to create a context to be used.\n * If this is used, you'll need to customize `connect` by supplying the same context provided to the Provider.\n * Set the initial value to null, and the hooks will error\n * if this is not overwritten by Provider.\n */\n context?: Context<ReactReduxContextValue<S, A> | null>\n\n /**\n * Determines the frequency of stability checks for all selectors.\n * This setting overrides the global configuration for\n * the `useSelector` stability check, allowing you to specify how often\n * these checks should occur in development mode.\n *\n * @since 8.1.0\n */\n stabilityCheck?: DevModeCheckFrequency\n\n /**\n * Determines the frequency of identity function checks for all selectors.\n * This setting overrides the global configuration for\n * the `useSelector` identity function check, allowing you to specify how often\n * these checks should occur in development mode.\n *\n * **Note**: Previously referred to as `noopCheck`.\n *\n * @since 9.0.0\n */\n identityFunctionCheck?: DevModeCheckFrequency\n\n children: ReactNode\n}\n\nfunction Provider<A extends Action<string> = UnknownAction, S = unknown>(\n providerProps: ProviderProps<A, S>,\n) {\n const { children, context, serverState, store } = providerProps\n\n const contextValue = React.useMemo(() => {\n const subscription = createSubscription(store)\n\n const baseContextValue = {\n store,\n subscription,\n getServerState: serverState ? () => serverState : undefined,\n }\n\n if (process.env.NODE_ENV === 'production') {\n return baseContextValue\n } else {\n const { identityFunctionCheck = 'once', stabilityCheck = 'once' } =\n providerProps\n\n return /* @__PURE__ */ Object.assign(baseContextValue, {\n stabilityCheck,\n identityFunctionCheck,\n })\n }\n }, [store, serverState])\n\n const previousState = React.useMemo(() => store.getState(), [store])\n\n useIsomorphicLayoutEffect(() => {\n const { subscription } = contextValue\n subscription.onStateChange = subscription.notifyNestedSubs\n subscription.trySubscribe()\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs()\n }\n return () => {\n subscription.tryUnsubscribe()\n subscription.onStateChange = undefined\n }\n }, [contextValue, previousState])\n\n const Context = context || ReactReduxContext\n\n return <Context.Provider value={contextValue}>{children}</Context.Provider>\n}\n\nexport default Provider\n","//import * as React from 'react'\nimport { React } from '../utils/react'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector.js'\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport type { EqualityFn, NoInfer } from '../types'\nimport {\n createReduxContextHook,\n useReduxContext as useDefaultReduxContext,\n} from './useReduxContext'\n\n/**\n * The frequency of development mode checks.\n *\n * @since 8.1.0\n * @internal\n */\nexport type DevModeCheckFrequency = 'never' | 'once' | 'always'\n\n/**\n * Represents the configuration for development mode checks.\n *\n * @since 9.0.0\n * @internal\n */\nexport interface DevModeChecks {\n /**\n * Overrides the global stability check for the selector.\n * - `once` - Run only the first time the selector is called.\n * - `always` - Run every time the selector is called.\n * - `never` - Never run the stability check.\n *\n * @default 'once'\n *\n * @since 8.1.0\n */\n stabilityCheck: DevModeCheckFrequency\n\n /**\n * Overrides the global identity function check for the selector.\n * - `once` - Run only the first time the selector is called.\n * - `always` - Run every time the selector is called.\n * - `never` - Never run the identity function check.\n *\n * **Note**: Previously referred to as `noopCheck`.\n *\n * @default 'once'\n *\n * @since 9.0.0\n */\n identityFunctionCheck: DevModeCheckFrequency\n}\n\nexport interface UseSelectorOptions<Selected = unknown> {\n equalityFn?: EqualityFn<Selected>\n\n /**\n * `useSelector` performs additional checks in development mode to help\n * identify and warn about potential issues in selector behavior. This\n * option allows you to customize the behavior of these checks per selector.\n *\n * @since 9.0.0\n */\n devModeChecks?: Partial<DevModeChecks>\n}\n\n/**\n * Represents a custom hook that allows you to extract data from the\n * Redux store state, using a selector function. The selector function\n * takes the current state as an argument and returns a part of the state\n * or some derived data. The hook also supports an optional equality\n * function or options object to customize its behavior.\n *\n * @template StateType - The specific type of state this hook operates on.\n *\n * @public\n */\nexport interface UseSelector<StateType = unknown> {\n /**\n * A function that takes a selector function as its first argument.\n * The selector function is responsible for selecting a part of\n * the Redux store's state or computing derived data.\n *\n * @param selector - A function that receives the current state and returns a part of the state or some derived data.\n * @param equalityFnOrOptions - An optional equality function or options object for customizing the behavior of the selector.\n * @returns The selected part of the state or derived data.\n *\n * @template TState - The specific type of state this hook operates on.\n * @template Selected - The type of the value that the selector function will return.\n */\n <TState extends StateType = StateType, Selected = unknown>(\n selector: (state: TState) => Selected,\n equalityFnOrOptions?: EqualityFn<Selected> | UseSelectorOptions<Selected>,\n ): Selected\n\n /**\n * Creates a \"pre-typed\" version of {@linkcode useSelector useSelector}\n * where the `state` type is predefined.\n *\n * This allows you to set the `state` type once, eliminating the need to\n * specify it with every {@linkcode useSelector useSelector} call.\n *\n * @returns A pre-typed `useSelector` with the state type already defined.\n *\n * @example\n * ```ts\n * export const useAppSelector = useSelector.withTypes<RootState>()\n * ```\n *\n * @template OverrideStateType - The specific type of state this hook operates on.\n *\n * @since 9.1.0\n */\n withTypes: <\n OverrideStateType extends StateType,\n >() => UseSelector<OverrideStateType>\n}\n\nconst refEquality: EqualityFn<any> = (a, b) => a === b\n\n/**\n * Hook factory, which creates a `useSelector` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useSelector` hook bound to the specified context.\n */\nexport function createSelectorHook(\n context: React.Context<ReactReduxContextValue<\n any,\n any\n > | null> = ReactReduxContext,\n): UseSelector {\n const useReduxContext =\n context === ReactReduxContext\n ? useDefaultReduxContext\n : createReduxContextHook(context)\n\n const useSelector = <TState, Selected>(\n selector: (state: TState) => Selected,\n equalityFnOrOptions:\n | EqualityFn<NoInfer<Selected>>\n | UseSelectorOptions<NoInfer<Selected>> = {},\n ): Selected => {\n const { equalityFn = refEquality } =\n typeof equalityFnOrOptions === 'function'\n ? { equalityFn: equalityFnOrOptions }\n : equalityFnOrOptions\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(`You must pass a selector to useSelector`)\n }\n if (typeof selector !== 'function') {\n throw new Error(`You must pass a function as a selector to useSelector`)\n }\n if (typeof equalityFn !== 'function') {\n throw new Error(\n `You must pass a function as an equality function to useSelector`,\n )\n }\n }\n\n const reduxContext = useReduxContext()\n\n const { store, subscription, getServerState } = reduxContext\n\n const firstRun = React.useRef(true)\n\n const wrappedSelector = React.useCallback<typeof selector>(\n {\n [selector.name](state: TState) {\n const selected = selector(state)\n if (process.env.NODE_ENV !== 'production') {\n const { devModeChecks = {} } =\n typeof equalityFnOrOptions === 'function'\n ? {}\n : equalityFnOrOptions\n const { identityFunctionCheck, stabilityCheck } = reduxContext\n const {\n identityFunctionCheck: finalIdentityFunctionCheck,\n stabilityCheck: finalStabilityCheck,\n } = {\n stabilityCheck,\n identityFunctionCheck,\n ...devModeChecks,\n }\n if (\n finalStabilityCheck === 'always' ||\n (finalStabilityCheck === 'once' && firstRun.current)\n ) {\n const toCompare = selector(state)\n if (!equalityFn(selected, toCompare)) {\n let stack: string | undefined = undefined\n try {\n throw new Error()\n } catch (e) {\n // eslint-disable-next-line no-extra-semi\n ;({ stack } = e as Error)\n }\n console.warn(\n 'Selector ' +\n (selector.name || 'unknown') +\n ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' +\n '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization',\n {\n state,\n selected,\n selected2: toCompare,\n stack,\n },\n )\n }\n }\n if (\n finalIdentityFunctionCheck === 'always' ||\n (finalIdentityFunctionCheck === 'once' && firstRun.current)\n ) {\n // @ts-ignore\n if (selected === state) {\n let stack: string | undefined = undefined\n try {\n throw new Error()\n } catch (e) {\n // eslint-disable-next-line no-extra-semi\n ;({ stack } = e as Error)\n }\n console.warn(\n 'Selector ' +\n (selector.name || 'unknown') +\n ' returned the root state when called. This can lead to unnecessary rerenders.' +\n '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.',\n { stack },\n )\n }\n }\n if (firstRun.current) firstRun.current = false\n }\n return selected\n },\n }[selector.name],\n [selector],\n )\n\n const selectedState = useSyncExternalStoreWithSelector(\n subscription.addNestedSub,\n store.getState,\n getServerState || store.getState,\n wrappedSelector,\n equalityFn,\n )\n\n React.useDebugValue(selectedState)\n\n return selectedState\n }\n\n Object.assign(useSelector, {\n withTypes: () => useSelector,\n })\n\n return useSelector as UseSelector\n}\n\n/**\n * A hook to access the redux store's state. This hook takes a selector function\n * as an argument. The selector is called with the store state.\n *\n * This hook takes an optional equality comparison function as the second parameter\n * that allows you to customize the way the selected state is compared to determine\n * whether the component needs to be re-rendered.\n *\n * @param {Function} selector the selector function\n * @param {Function=} equalityFn the function that will be used to determine equality\n *\n * @returns {any} the selected state\n *\n * @example\n *\n * import React from 'react'\n * import { useSelector } from 'react-redux'\n *\n * export const CounterComponent = () => {\n * const counter = useSelector(state => state.counter)\n * return <div>{counter}</div>\n * }\n */\nexport const useSelector = /*#__PURE__*/ createSelectorHook()\n","import { createSelector } from 'reselect';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { selectTooltipAxisRangeWithReverse, selectTooltipAxisTicks } from './tooltipSelectors';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { combineActiveProps, selectOrderedTooltipTicks } from './selectors';\nimport { selectPolarViewBox } from './polarAxisSelectors';\nimport { selectTooltipAxisType } from './selectTooltipAxisType';\nvar pickChartPointer = (_state, chartPointer) => chartPointer;\nexport var selectActivePropsFromChartPointer = createSelector([pickChartPointer, selectChartLayout, selectPolarViewBox, selectTooltipAxisType, selectTooltipAxisRangeWithReverse, selectTooltipAxisTicks, selectOrderedTooltipTicks, selectChartOffsetInternal], combineActiveProps);","/**\n * Computes the chart coordinates from the mouse event.\n *\n * The coordinates are relative to the top-left corner of the chart,\n * where the top-left corner of the chart is (0, 0).\n * Moving right, the x-coordinate increases, and moving down, the y-coordinate increases.\n *\n * The coordinates are rounded to the nearest integer and are including a CSS transform scale.\n * So a chart that's scaled will return the same coordinates as a chart that's not scaled.\n *\n * @param event The mouse event from React event handlers\n * @return chartPointer The chart coordinates relative to the top-left corner of the chart\n */\nexport var getChartPointer = event => {\n var rect = event.currentTarget.getBoundingClientRect();\n var scaleX = rect.width / event.currentTarget.offsetWidth;\n var scaleY = rect.height / event.currentTarget.offsetHeight;\n return {\n /*\n * Here it's important to use:\n * - event.clientX and event.clientY to get the mouse position relative to the viewport, including scroll.\n * - pageX and pageY are not used because they are relative to the whole document, and ignore scroll.\n * - rect.left and rect.top are used to get the position of the chart relative to the viewport.\n * - offsetX and offsetY are not used because they are relative to the offset parent\n * which may or may not be the same as the clientX and clientY, depending on the position of the chart in the DOM\n * and surrounding element styles. CSS position: relative, absolute, fixed, will change the offset parent.\n * - scaleX and scaleY are necessary for when the chart element is scaled using CSS `transform: scale(N)`.\n */\n chartX: Math.round((event.clientX - rect.left) / scaleX),\n chartY: Math.round((event.clientY - rect.top) / scaleY)\n };\n};","import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';\nimport { mouseLeaveChart, setMouseClickAxisIndex, setMouseOverAxisIndex } from './tooltipSlice';\nimport { selectActivePropsFromChartPointer } from './selectors/selectActivePropsFromChartPointer';\nimport { selectTooltipEventType } from './selectors/selectTooltipEventType';\nimport { getChartPointer } from '../util/getChartPointer';\nexport var mouseClickAction = createAction('mouseClick');\nexport var mouseClickMiddleware = createListenerMiddleware();\n\n// TODO: there's a bug here when you click the chart the activeIndex resets to zero\nmouseClickMiddleware.startListening({\n actionCreator: mouseClickAction,\n effect: (action, listenerApi) => {\n var mousePointer = action.payload;\n var activeProps = selectActivePropsFromChartPointer(listenerApi.getState(), getChartPointer(mousePointer));\n if ((activeProps === null || activeProps === void 0 ? void 0 : activeProps.activeIndex) != null) {\n listenerApi.dispatch(setMouseClickAxisIndex({\n activeIndex: activeProps.activeIndex,\n activeDataKey: undefined,\n activeCoordinate: activeProps.activeCoordinate\n }));\n }\n }\n});\nexport var mouseMoveAction = createAction('mouseMove');\nexport var mouseMoveMiddleware = createListenerMiddleware();\nmouseMoveMiddleware.startListening({\n actionCreator: mouseMoveAction,\n effect: (action, listenerApi) => {\n var mousePointer = action.payload;\n var state = listenerApi.getState();\n var tooltipEventType = selectTooltipEventType(state, state.tooltip.settings.shared);\n var activeProps = selectActivePropsFromChartPointer(state, getChartPointer(mousePointer));\n\n // this functionality only applies to charts that have axes\n if (tooltipEventType === 'axis') {\n if ((activeProps === null || activeProps === void 0 ? void 0 : activeProps.activeIndex) != null) {\n listenerApi.dispatch(setMouseOverAxisIndex({\n activeIndex: activeProps.activeIndex,\n activeDataKey: undefined,\n activeCoordinate: activeProps.activeCoordinate\n }));\n } else {\n // this is needed to clear tooltip state when the mouse moves out of the inRange (svg - offset) function, but not yet out of the svg\n listenerApi.dispatch(mouseLeaveChart());\n }\n }\n }\n});","export function reduxDevtoolsJsonStringifyReplacer(_key, value) {\n if (value instanceof HTMLElement) {\n return \"HTMLElement <\".concat(value.tagName, \" class=\\\"\").concat(value.className, \"\\\">\");\n }\n if (value === window) {\n return 'global.window';\n }\n return value;\n}","import { createSlice, current } from '@reduxjs/toolkit';\nvar initialState = {\n dots: [],\n areas: [],\n lines: []\n};\nexport var referenceElementsSlice = createSlice({\n name: 'referenceElements',\n initialState,\n reducers: {\n addDot: (state, action) => {\n state.dots.push(action.payload);\n },\n removeDot: (state, action) => {\n var index = current(state).dots.findIndex(dot => dot === action.payload);\n if (index !== -1) {\n state.dots.splice(index, 1);\n }\n },\n addArea: (state, action) => {\n state.areas.push(action.payload);\n },\n removeArea: (state, action) => {\n var index = current(state).areas.findIndex(area => area === action.payload);\n if (index !== -1) {\n state.areas.splice(index, 1);\n }\n },\n addLine: (state, action) => {\n state.lines.push(action.payload);\n },\n removeLine: (state, action) => {\n var index = current(state).lines.findIndex(line => line === action.payload);\n if (index !== -1) {\n state.lines.splice(index, 1);\n }\n }\n }\n});\nexport var {\n addDot,\n removeDot,\n addArea,\n removeArea,\n addLine,\n removeLine\n} = referenceElementsSlice.actions;\nexport var referenceElementsReducer = referenceElementsSlice.reducer;","import { createSlice } from '@reduxjs/toolkit';\n\n/**\n * From all Brush properties, only height has a default value and will always be defined.\n * Other properties are nullable and will be computed from offsets and margins if they are not set.\n */\n\nvar initialState = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n};\nexport var brushSlice = createSlice({\n name: 'brush',\n initialState,\n reducers: {\n setBrushSettings(_state, action) {\n if (action.payload == null) {\n return initialState;\n }\n return action.payload;\n }\n }\n});\nexport var {\n setBrushSettings\n} = brushSlice.actions;\nexport var brushReducer = brushSlice.reducer;","import { createSlice } from '@reduxjs/toolkit';\n\n/**\n * These are chart options that users can choose - which means they can also\n * choose to change them which should trigger a re-render.\n */\n\nexport var initialState = {\n accessibilityLayer: true,\n barCategoryGap: '10%',\n barGap: 4,\n barSize: undefined,\n className: undefined,\n maxBarSize: undefined,\n stackOffset: 'none',\n syncId: undefined,\n syncMethod: 'index',\n baseValue: undefined\n};\nvar rootPropsSlice = createSlice({\n name: 'rootProps',\n initialState,\n reducers: {\n updateOptions: (state, action) => {\n var _action$payload$barGa;\n state.accessibilityLayer = action.payload.accessibilityLayer;\n state.barCategoryGap = action.payload.barCategoryGap;\n state.barGap = (_action$payload$barGa = action.payload.barGap) !== null && _action$payload$barGa !== void 0 ? _action$payload$barGa : initialState.barGap;\n state.barSize = action.payload.barSize;\n state.maxBarSize = action.payload.maxBarSize;\n state.stackOffset = action.payload.stackOffset;\n state.syncId = action.payload.syncId;\n state.syncMethod = action.payload.syncMethod;\n state.className = action.payload.className;\n state.baseValue = action.payload.baseValue;\n }\n }\n});\nexport var rootPropsReducer = rootPropsSlice.reducer;\nexport var {\n updateOptions\n} = rootPropsSlice.actions;","import { createSlice } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nvar initialState = {\n radiusAxis: {},\n angleAxis: {}\n};\nvar polarAxisSlice = createSlice({\n name: 'polarAxis',\n initialState,\n reducers: {\n addRadiusAxis(state, action) {\n state.radiusAxis[action.payload.id] = castDraft(action.payload);\n },\n removeRadiusAxis(state, action) {\n delete state.radiusAxis[action.payload.id];\n },\n addAngleAxis(state, action) {\n state.angleAxis[action.payload.id] = castDraft(action.payload);\n },\n removeAngleAxis(state, action) {\n delete state.angleAxis[action.payload.id];\n }\n }\n});\nexport var {\n addRadiusAxis,\n removeRadiusAxis,\n addAngleAxis,\n removeAngleAxis\n} = polarAxisSlice.actions;\nexport var polarAxisReducer = polarAxisSlice.reducer;","import { createSlice } from '@reduxjs/toolkit';\nvar polarOptionsSlice = createSlice({\n name: 'polarOptions',\n initialState: null,\n reducers: {\n updatePolarOptions: (_state, action) => {\n return action.payload;\n }\n }\n});\nexport var {\n updatePolarOptions\n} = polarOptionsSlice.actions;\nexport var polarOptionsReducer = polarOptionsSlice.reducer;","import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';\nimport { setKeyboardInteraction } from './tooltipSlice';\nimport { selectTooltipAxisTicks, selectTooltipDisplayedData } from './selectors/tooltipSelectors';\nimport { selectCoordinateForDefaultIndex } from './selectors/selectors';\nimport { selectChartDirection } from './selectors/axisSelectors';\nimport { combineActiveTooltipIndex } from './selectors/combiners/combineActiveTooltipIndex';\nexport var keyDownAction = createAction('keyDown');\nexport var focusAction = createAction('focus');\nexport var keyboardEventsMiddleware = createListenerMiddleware();\nkeyboardEventsMiddleware.startListening({\n actionCreator: keyDownAction,\n effect: (action, listenerApi) => {\n var state = listenerApi.getState();\n var accessibilityLayerIsActive = state.rootProps.accessibilityLayer !== false;\n if (!accessibilityLayerIsActive) {\n return;\n }\n var {\n keyboardInteraction\n } = state.tooltip;\n var key = action.payload;\n if (key !== 'ArrowRight' && key !== 'ArrowLeft' && key !== 'Enter') {\n return;\n }\n\n // TODO this is lacking index for charts that do not support numeric indexes\n var currentIndex = Number(combineActiveTooltipIndex(keyboardInteraction, selectTooltipDisplayedData(state)));\n var tooltipTicks = selectTooltipAxisTicks(state);\n if (key === 'Enter') {\n var _coordinate = selectCoordinateForDefaultIndex(state, 'axis', 'hover', String(keyboardInteraction.index));\n listenerApi.dispatch(setKeyboardInteraction({\n active: !keyboardInteraction.active,\n activeIndex: keyboardInteraction.index,\n activeDataKey: keyboardInteraction.dataKey,\n activeCoordinate: _coordinate\n }));\n return;\n }\n var direction = selectChartDirection(state);\n var directionMultiplier = direction === 'left-to-right' ? 1 : -1;\n var movement = key === 'ArrowRight' ? 1 : -1;\n var nextIndex = currentIndex + movement * directionMultiplier;\n if (tooltipTicks == null || nextIndex >= tooltipTicks.length || nextIndex < 0) {\n return;\n }\n var coordinate = selectCoordinateForDefaultIndex(state, 'axis', 'hover', String(nextIndex));\n listenerApi.dispatch(setKeyboardInteraction({\n active: true,\n activeIndex: nextIndex.toString(),\n activeDataKey: undefined,\n activeCoordinate: coordinate\n }));\n }\n});\nkeyboardEventsMiddleware.startListening({\n actionCreator: focusAction,\n effect: (_action, listenerApi) => {\n var state = listenerApi.getState();\n var accessibilityLayerIsActive = state.rootProps.accessibilityLayer !== false;\n if (!accessibilityLayerIsActive) {\n return;\n }\n var {\n keyboardInteraction\n } = state.tooltip;\n if (keyboardInteraction.active) {\n return;\n }\n if (keyboardInteraction.index == null) {\n var nextIndex = '0';\n var coordinate = selectCoordinateForDefaultIndex(state, 'axis', 'hover', String(nextIndex));\n listenerApi.dispatch(setKeyboardInteraction({\n activeDataKey: undefined,\n active: true,\n activeIndex: nextIndex,\n activeCoordinate: coordinate\n }));\n }\n }\n});","import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';\nimport { selectActiveLabel, selectActiveTooltipCoordinate, selectActiveTooltipDataKey, selectActiveTooltipIndex, selectIsTooltipActive } from './selectors/tooltipSelectors';\nexport var externalEventAction = createAction('externalEvent');\nexport var externalEventsMiddleware = createListenerMiddleware();\nexternalEventsMiddleware.startListening({\n actionCreator: externalEventAction,\n effect: (action, listenerApi) => {\n if (action.payload.handler == null) {\n return;\n }\n var state = listenerApi.getState();\n var nextState = {\n activeCoordinate: selectActiveTooltipCoordinate(state),\n activeDataKey: selectActiveTooltipDataKey(state),\n activeIndex: selectActiveTooltipIndex(state),\n activeLabel: selectActiveLabel(state),\n activeTooltipIndex: selectActiveTooltipIndex(state),\n isTooltipActive: selectIsTooltipActive(state)\n };\n action.payload.handler(nextState, action.payload.reactEvent);\n }\n});","import { createSelector } from 'reselect';\nimport { selectTooltipPayloadSearcher } from './selectTooltipPayloadSearcher';\nimport { selectTooltipState } from './selectTooltipState';\nvar selectAllTooltipPayloadConfiguration = createSelector([selectTooltipState], tooltipState => tooltipState.tooltipItemPayloads);\nexport var selectTooltipCoordinate = createSelector([selectAllTooltipPayloadConfiguration, selectTooltipPayloadSearcher, (_state, tooltipIndex, _dataKey) => tooltipIndex, (_state, _tooltipIndex, dataKey) => dataKey], (allTooltipConfigurations, tooltipPayloadSearcher, tooltipIndex, dataKey) => {\n var mostRelevantTooltipConfiguration = allTooltipConfigurations.find(tooltipConfiguration => {\n return tooltipConfiguration.settings.dataKey === dataKey;\n });\n if (mostRelevantTooltipConfiguration == null) {\n return undefined;\n }\n var {\n positions\n } = mostRelevantTooltipConfiguration;\n if (positions == null) {\n return undefined;\n }\n // @ts-expect-error tooltipPayloadSearcher is not typed well\n var maybePosition = tooltipPayloadSearcher(positions, tooltipIndex);\n return maybePosition;\n});","import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';\nimport { setActiveMouseOverItemIndex, setMouseOverAxisIndex } from './tooltipSlice';\nimport { selectActivePropsFromChartPointer } from './selectors/selectActivePropsFromChartPointer';\nimport { getChartPointer } from '../util/getChartPointer';\nimport { selectTooltipEventType } from './selectors/selectTooltipEventType';\nimport { DATA_ITEM_DATAKEY_ATTRIBUTE_NAME, DATA_ITEM_INDEX_ATTRIBUTE_NAME } from '../util/Constants';\nimport { selectTooltipCoordinate } from './selectors/touchSelectors';\nexport var touchEventAction = createAction('touchMove');\nexport var touchEventMiddleware = createListenerMiddleware();\ntouchEventMiddleware.startListening({\n actionCreator: touchEventAction,\n effect: (action, listenerApi) => {\n var touchEvent = action.payload;\n if (touchEvent.touches == null || touchEvent.touches.length === 0) {\n return;\n }\n var state = listenerApi.getState();\n var tooltipEventType = selectTooltipEventType(state, state.tooltip.settings.shared);\n if (tooltipEventType === 'axis') {\n var activeProps = selectActivePropsFromChartPointer(state, getChartPointer({\n clientX: touchEvent.touches[0].clientX,\n clientY: touchEvent.touches[0].clientY,\n currentTarget: touchEvent.currentTarget\n }));\n if ((activeProps === null || activeProps === void 0 ? void 0 : activeProps.activeIndex) != null) {\n listenerApi.dispatch(setMouseOverAxisIndex({\n activeIndex: activeProps.activeIndex,\n activeDataKey: undefined,\n activeCoordinate: activeProps.activeCoordinate\n }));\n }\n } else if (tooltipEventType === 'item') {\n var _target$getAttribute;\n var touch = touchEvent.touches[0];\n if (document.elementFromPoint == null) {\n return;\n }\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n if (!target || !target.getAttribute) {\n return;\n }\n var itemIndex = target.getAttribute(DATA_ITEM_INDEX_ATTRIBUTE_NAME);\n var dataKey = (_target$getAttribute = target.getAttribute(DATA_ITEM_DATAKEY_ATTRIBUTE_NAME)) !== null && _target$getAttribute !== void 0 ? _target$getAttribute : undefined;\n var coordinate = selectTooltipCoordinate(listenerApi.getState(), itemIndex, dataKey);\n listenerApi.dispatch(setActiveMouseOverItemIndex({\n activeDataKey: dataKey,\n activeIndex: itemIndex,\n activeCoordinate: coordinate\n }));\n }\n }\n});","import { createSlice } from '@reduxjs/toolkit';\n\n/**\n * ErrorBars have lot more settings but all the others are scoped to the component itself.\n * Only some of them required to be reported to the global store because XAxis and YAxis need to know\n * if the error bar is contributing to extending the axis domain.\n */\n\nvar initialState = {};\nvar errorBarSlice = createSlice({\n name: 'errorBars',\n initialState,\n reducers: {\n addErrorBar: (state, action) => {\n var {\n itemId,\n errorBar\n } = action.payload;\n if (!state[itemId]) {\n state[itemId] = [];\n }\n state[itemId].push(errorBar);\n },\n replaceErrorBar: (state, action) => {\n var {\n itemId,\n prev,\n next\n } = action.payload;\n if (state[itemId]) {\n state[itemId] = state[itemId].map(e => e.dataKey === prev.dataKey && e.direction === prev.direction ? next : e);\n }\n },\n removeErrorBar: (state, action) => {\n var {\n itemId,\n errorBar\n } = action.payload;\n if (state[itemId]) {\n state[itemId] = state[itemId].filter(e => e.dataKey !== errorBar.dataKey || e.direction !== errorBar.direction);\n }\n }\n }\n});\nexport var {\n addErrorBar,\n replaceErrorBar,\n removeErrorBar\n} = errorBarSlice.actions;\nexport var errorBarReducer = errorBarSlice.reducer;","import { autoBatchEnhancer, combineReducers, configureStore } from '@reduxjs/toolkit';\nimport { optionsReducer } from './optionsSlice';\nimport { tooltipReducer } from './tooltipSlice';\nimport { chartDataReducer } from './chartDataSlice';\nimport { chartLayoutReducer } from './layoutSlice';\nimport { mouseClickMiddleware, mouseMoveMiddleware } from './mouseEventsMiddleware';\nimport { reduxDevtoolsJsonStringifyReplacer } from './reduxDevtoolsJsonStringifyReplacer';\nimport { cartesianAxisReducer } from './cartesianAxisSlice';\nimport { graphicalItemsReducer } from './graphicalItemsSlice';\nimport { referenceElementsReducer } from './referenceElementsSlice';\nimport { brushReducer } from './brushSlice';\nimport { legendReducer } from './legendSlice';\nimport { rootPropsReducer } from './rootPropsSlice';\nimport { polarAxisReducer } from './polarAxisSlice';\nimport { polarOptionsReducer } from './polarOptionsSlice';\nimport { keyboardEventsMiddleware } from './keyboardEventsMiddleware';\nimport { externalEventsMiddleware } from './externalEventsMiddleware';\nimport { touchEventMiddleware } from './touchEventsMiddleware';\nimport { errorBarReducer } from './errorBarSlice';\nimport { Global } from '../util/Global';\nimport { zIndexReducer } from './zIndexSlice';\nvar rootReducer = combineReducers({\n brush: brushReducer,\n cartesianAxis: cartesianAxisReducer,\n chartData: chartDataReducer,\n errorBars: errorBarReducer,\n graphicalItems: graphicalItemsReducer,\n layout: chartLayoutReducer,\n legend: legendReducer,\n options: optionsReducer,\n polarAxis: polarAxisReducer,\n polarOptions: polarOptionsReducer,\n referenceElements: referenceElementsReducer,\n rootProps: rootPropsReducer,\n tooltip: tooltipReducer,\n zIndex: zIndexReducer\n});\nexport var createRechartsStore = function createRechartsStore(preloadedState) {\n var chartName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'Chart';\n return configureStore({\n reducer: rootReducer,\n // redux-toolkit v1 types are unhappy with the preloadedState type. Remove the `as any` when bumping to v2\n preloadedState: preloadedState,\n // @ts-expect-error redux-toolkit v1 types are unhappy with the middleware array. Remove this comment when bumping to v2\n middleware: getDefaultMiddleware => getDefaultMiddleware({\n serializableCheck: false\n }).concat([mouseClickMiddleware.middleware, mouseMoveMiddleware.middleware, keyboardEventsMiddleware.middleware, externalEventsMiddleware.middleware, touchEventMiddleware.middleware]),\n /*\n * I can't find out how to satisfy typescript here.\n * We return `EnhancerArray<[StoreEnhancer<{}, {}>, StoreEnhancer]>` from this function,\n * but the types say we should return `EnhancerArray<StoreEnhancer<{}, {}>`.\n * Looks like it's badly inferred generics, but it won't allow me to provide the correct type manually either.\n * So let's just ignore the error for now.\n */\n // @ts-expect-error mismatched generics\n enhancers: getDefaultEnhancers => {\n var enhancers = getDefaultEnhancers;\n if (typeof getDefaultEnhancers === 'function') {\n /*\n * In RTK v2 this is always a function, but in v1 it is an array.\n * Because we have @types/redux-toolkit v1 as a dependency, typescript is going to flag this as an error.\n * We support both RTK v1 and v2, so we need to do this check.\n * https://redux-toolkit.js.org/usage/migrating-rtk-2#configurestoreenhancers-must-be-a-callback\n */\n // @ts-expect-error RTK v2 behaviour on RTK v1 types\n enhancers = getDefaultEnhancers();\n }\n return enhancers.concat(autoBatchEnhancer({\n type: 'raf'\n }));\n },\n devTools: Global.devToolsEnabled && {\n serialize: {\n replacer: reduxDevtoolsJsonStringifyReplacer\n },\n name: \"recharts-\".concat(chartName)\n }\n });\n};","import * as React from 'react';\nimport { useRef } from 'react';\nimport { Provider } from 'react-redux';\nimport { createRechartsStore } from './store';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { RechartsReduxContext } from './RechartsReduxContext';\nexport function RechartsStoreProvider(_ref) {\n var {\n preloadedState,\n children,\n reduxStoreName\n } = _ref;\n var isPanorama = useIsPanorama();\n /*\n * Why the ref? Redux official documentation recommends to use store as a singleton,\n * and reuse that everywhere: https://redux-toolkit.js.org/api/configureStore#basic-example\n *\n * Which is correct! Except that is considering deploying Redux in an app.\n * Recharts as a library supports multiple charts on the same page.\n * And each of these charts needs its own store independent of others!\n *\n * The alternative is to have everything in the store keyed by the chart id.\n * Which would make working with everything a little bit more painful because we need the chart id everywhere.\n */\n var storeRef = useRef(null);\n\n /*\n * Panorama means that this chart is not its own chart, it's only a \"preview\"\n * being rendered as a child of Brush.\n * In such case, it should not have a store on its own - it should implicitly inherit\n * whatever data is in the \"parent\" or \"root\" chart.\n * Which here is represented by not having a Provider at all. All selectors will use the root store by default.\n */\n if (isPanorama) {\n return children;\n }\n if (storeRef.current == null) {\n storeRef.current = createRechartsStore(preloadedState, reduxStoreName);\n }\n\n // @ts-expect-error React-Redux types demand that the context internal value is not null, but we have that as default.\n var nonNullContext = RechartsReduxContext;\n return /*#__PURE__*/React.createElement(Provider, {\n context: nonNullContext,\n store: storeRef.current\n }, children);\n}","import { useEffect } from 'react';\nimport { setChartData, setComputedData } from '../state/chartDataSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { useIsPanorama } from './PanoramaContext';\nexport var ChartDataContextProvider = props => {\n var {\n chartData\n } = props;\n var dispatch = useAppDispatch();\n var isPanorama = useIsPanorama();\n useEffect(() => {\n if (isPanorama) {\n // Panorama mode reuses data from the main chart, so we must not overwrite it here.\n return () => {\n // there is nothing to clean up\n };\n }\n dispatch(setChartData(chartData));\n return () => {\n dispatch(setChartData(undefined));\n };\n }, [chartData, dispatch, isPanorama]);\n return null;\n};\nexport var SetComputedData = props => {\n var {\n computedData\n } = props;\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(setComputedData(computedData));\n return () => {\n dispatch(setChartData(undefined));\n };\n }, [computedData, dispatch]);\n return null;\n};\nvar selectChartData = state => state.chartData.chartData;\n\n/**\n * \"data\" is the data of the chart - it has no type because this part of recharts is very flexible.\n * Basically it's an array of \"something\" and then there's the dataKey property in various places\n * that's meant to pull other things away from the data.\n *\n * Some charts have `data` defined on the chart root, and they will return the array through this hook.\n * For example: <ComposedChart data={data} />.\n *\n * Other charts, such as Pie, have data defined on individual graphical elements.\n * These charts will return `undefined` through this hook, and you need to read the data from children.\n * For example: <PieChart><Pie data={data} />\n *\n * Some charts also allow setting both - data on the parent, and data on the children at the same time!\n * However, this particular selector will only return the ones defined on the parent.\n *\n * @deprecated use one of the other selectors instead - which one, depends on how do you identify the applicable graphical items.\n *\n * @return data array for some charts and undefined for other\n */\nexport var useChartData = () => useAppSelector(selectChartData);\nvar selectDataIndex = state => {\n var {\n dataStartIndex,\n dataEndIndex\n } = state.chartData;\n return {\n startIndex: dataStartIndex,\n endIndex: dataEndIndex\n };\n};\n\n/**\n * startIndex and endIndex are data boundaries, set through Brush.\n *\n * @return object with startIndex and endIndex\n */\nexport var useDataIndex = () => {\n return useAppSelector(selectDataIndex);\n};","import { useEffect } from 'react';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { setLayout, setMargin } from './layoutSlice';\nimport { useAppDispatch } from './hooks';\n\n/**\n * \"Main\" props are props that are only accepted on the main chart,\n * as opposed to the small panorama chart inside a Brush.\n */\n\nexport function ReportMainChartProps(_ref) {\n var {\n layout,\n margin\n } = _ref;\n var dispatch = useAppDispatch();\n\n /*\n * Skip dispatching properties in panorama chart for two reasons:\n * 1. The root chart should be deciding on these properties, and\n * 2. Brush reads these properties from redux store, and so they must remain stable\n * to avoid circular dependency and infinite re-rendering.\n */\n var isPanorama = useIsPanorama();\n /*\n * useEffect here is required to avoid the \"Cannot update a component while rendering a different component\" error.\n * https://github.com/facebook/react/issues/18178\n *\n * Reported in https://github.com/recharts/recharts/issues/5514\n */\n useEffect(() => {\n if (!isPanorama) {\n dispatch(setLayout(layout));\n dispatch(setMargin(margin));\n }\n }, [dispatch, isPanorama, layout, margin]);\n return null;\n}","import { useEffect } from 'react';\nimport { updateOptions } from './rootPropsSlice';\nimport { useAppDispatch } from './hooks';\nexport function ReportChartProps(props) {\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(updateOptions(props));\n }, [dispatch, props]);\n return null;\n}","var _excluded = [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\", \"title\", \"desc\"];\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); }\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; }\n/**\n * @fileOverview Surface\n */\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { clsx } from 'clsx';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nexport var Surface = /*#__PURE__*/forwardRef((props, ref) => {\n var {\n children,\n width,\n height,\n viewBox,\n className,\n style,\n title,\n desc\n } = props,\n others = _objectWithoutProperties(props, _excluded);\n var svgView = viewBox || {\n width,\n height,\n x: 0,\n y: 0\n };\n var layerClass = clsx('recharts-surface', className);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, svgPropertiesAndEvents(others), {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height),\n ref: ref\n }), /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"desc\", null, desc), children);\n});","import * as React from 'react';\nimport { useLayoutEffect } from 'react';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { registerZIndexPortalId, unregisterZIndexPortalId } from '../state/zIndexSlice';\nimport { useUniqueId } from '../util/useUniqueId';\nimport { selectAllRegisteredZIndexes } from './zIndexSelectors';\nfunction ZIndexSvgPortal(_ref) {\n var {\n zIndex,\n isPanorama\n } = _ref;\n var prefix = isPanorama ? \"recharts-zindex-panorama-\" : \"recharts-zindex-\";\n var portalId = useUniqueId(\"\".concat(prefix).concat(zIndex));\n var dispatch = useAppDispatch();\n useLayoutEffect(() => {\n dispatch(registerZIndexPortalId({\n zIndex,\n elementId: portalId,\n isPanorama\n }));\n return () => {\n dispatch(unregisterZIndexPortalId({\n zIndex,\n isPanorama\n }));\n };\n }, [dispatch, zIndex, portalId, isPanorama]);\n return /*#__PURE__*/React.createElement(\"g\", {\n id: portalId\n });\n}\nexport function AllZIndexPortals(_ref2) {\n var {\n children,\n isPanorama\n } = _ref2;\n var allRegisteredZIndexes = useAppSelector(selectAllRegisteredZIndexes);\n if (!allRegisteredZIndexes || allRegisteredZIndexes.length === 0) {\n return children;\n }\n var allNegativeZIndexes = allRegisteredZIndexes.filter(zIndex => zIndex < 0);\n // We exclude zero on purpose - that is the default layer, and it doesn't need a portal.\n var allPositiveZIndexes = allRegisteredZIndexes.filter(zIndex => zIndex > 0);\n return /*#__PURE__*/React.createElement(React.Fragment, null, allNegativeZIndexes.map(zIndex => /*#__PURE__*/React.createElement(ZIndexSvgPortal, {\n key: zIndex,\n zIndex: zIndex,\n isPanorama: isPanorama\n })), children, allPositiveZIndexes.map(zIndex => /*#__PURE__*/React.createElement(ZIndexSvgPortal, {\n key: zIndex,\n zIndex: zIndex,\n isPanorama: isPanorama\n })));\n}","var _excluded = [\"children\"];\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 _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); }\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { useChartHeight, useChartWidth } from '../context/chartLayoutContext';\nimport { useAccessibilityLayer } from '../context/accessibilityContext';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { Surface } from './Surface';\nimport { useAppSelector } from '../state/hooks';\nimport { selectBrushDimensions } from '../state/selectors/brushSelectors';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\nimport { AllZIndexPortals } from '../zIndex/ZIndexPortal';\nvar FULL_WIDTH_AND_HEIGHT = {\n width: '100%',\n height: '100%',\n /*\n * display: block is necessary here because the default for an SVG is display: inline,\n * which in some browsers (Chrome) adds a little bit of extra space above and below the SVG\n * to make space for the descender of letters like \"g\" and \"y\". This throws off the height calculation\n * and causes the container to grow indefinitely on each render with responsive=true.\n * Display: block removes that extra space.\n *\n * Interestingly, Firefox does not have this problem, but it doesn't hurt to add the style anyway.\n */\n display: 'block'\n};\nvar MainChartSurface = /*#__PURE__*/forwardRef((props, ref) => {\n var width = useChartWidth();\n var height = useChartHeight();\n var hasAccessibilityLayer = useAccessibilityLayer();\n if (!isPositiveNumber(width) || !isPositiveNumber(height)) {\n return null;\n }\n var {\n children,\n otherAttributes,\n title,\n desc\n } = props;\n var tabIndex, role;\n if (otherAttributes != null) {\n if (typeof otherAttributes.tabIndex === 'number') {\n tabIndex = otherAttributes.tabIndex;\n } else {\n tabIndex = hasAccessibilityLayer ? 0 : undefined;\n }\n if (typeof otherAttributes.role === 'string') {\n role = otherAttributes.role;\n } else {\n role = hasAccessibilityLayer ? 'application' : undefined;\n }\n }\n return /*#__PURE__*/React.createElement(Surface, _extends({}, otherAttributes, {\n title: title,\n desc: desc,\n role: role,\n tabIndex: tabIndex,\n width: width,\n height: height,\n style: FULL_WIDTH_AND_HEIGHT,\n ref: ref\n }), children);\n});\nvar BrushPanoramaSurface = _ref => {\n var {\n children\n } = _ref;\n var brushDimensions = useAppSelector(selectBrushDimensions);\n if (!brushDimensions) {\n return null;\n }\n var {\n width,\n height,\n y,\n x\n } = brushDimensions;\n return /*#__PURE__*/React.createElement(Surface, {\n width: width,\n height: height,\n x: x,\n y: y\n }, children);\n};\nexport var RootSurface = /*#__PURE__*/forwardRef((_ref2, ref) => {\n var {\n children\n } = _ref2,\n rest = _objectWithoutProperties(_ref2, _excluded);\n var isPanorama = useIsPanorama();\n if (isPanorama) {\n return /*#__PURE__*/React.createElement(BrushPanoramaSurface, null, /*#__PURE__*/React.createElement(AllZIndexPortals, {\n isPanorama: true\n }, children));\n }\n return /*#__PURE__*/React.createElement(MainChartSurface, _extends({\n ref: ref\n }, rest), /*#__PURE__*/React.createElement(AllZIndexPortals, {\n isPanorama: false\n }, children));\n});","import { createContext, useContext } from 'react';\nexport var LegendPortalContext = /*#__PURE__*/createContext(null);\nexport var useLegendPortal = () => useContext(LegendPortalContext);","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); }\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); }\nimport * as React from 'react';\nimport { forwardRef, useCallback, useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { mouseLeaveChart } from '../state/tooltipSlice';\nimport { useAppDispatch } from '../state/hooks';\nimport { mouseClickAction, mouseMoveAction } from '../state/mouseEventsMiddleware';\nimport { useSynchronisedEventsFromOtherCharts } from '../synchronisation/useChartSynchronisation';\nimport { focusAction, keyDownAction } from '../state/keyboardEventsMiddleware';\nimport { useReportScale } from '../util/useReportScale';\nimport { externalEventAction } from '../state/externalEventsMiddleware';\nimport { touchEventAction } from '../state/touchEventsMiddleware';\nimport { TooltipPortalContext } from '../context/tooltipPortalContext';\nimport { LegendPortalContext } from '../context/legendPortalContext';\nimport { ReportChartSize } from '../context/chartLayoutContext';\nimport { useResponsiveContainerContext } from '../component/ResponsiveContainer';\nimport { isPercent } from '../util/DataUtils';\nvar EventSynchronizer = () => {\n useSynchronisedEventsFromOtherCharts();\n return null;\n};\nfunction getNumberOrZero(value) {\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n var parsed = parseFloat(value);\n if (!Number.isNaN(parsed)) {\n return parsed;\n }\n }\n return 0;\n}\nvar ResponsiveDiv = /*#__PURE__*/forwardRef((props, ref) => {\n var _props$style, _props$style2;\n var observerRef = useRef(null);\n var [sizes, setSizes] = useState({\n containerWidth: getNumberOrZero((_props$style = props.style) === null || _props$style === void 0 ? void 0 : _props$style.width),\n containerHeight: getNumberOrZero((_props$style2 = props.style) === null || _props$style2 === void 0 ? void 0 : _props$style2.height)\n });\n var setContainerSize = useCallback((newWidth, newHeight) => {\n setSizes(prevState => {\n var roundedWidth = Math.round(newWidth);\n var roundedHeight = Math.round(newHeight);\n if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {\n return prevState;\n }\n return {\n containerWidth: roundedWidth,\n containerHeight: roundedHeight\n };\n });\n }, []);\n var innerRef = useCallback(node => {\n if (typeof ref === 'function') {\n ref(node);\n }\n if (node != null && typeof ResizeObserver !== 'undefined') {\n var {\n width: containerWidth,\n height: containerHeight\n } = node.getBoundingClientRect();\n setContainerSize(containerWidth, containerHeight);\n var callback = entries => {\n var {\n width,\n height\n } = entries[0].contentRect;\n setContainerSize(width, height);\n };\n var observer = new ResizeObserver(callback);\n observer.observe(node);\n observerRef.current = observer;\n }\n }, [ref, setContainerSize]);\n useEffect(() => {\n return () => {\n var observer = observerRef.current;\n if (observer != null) {\n observer.disconnect();\n }\n };\n }, [setContainerSize]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportChartSize, {\n width: sizes.containerWidth,\n height: sizes.containerHeight\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: innerRef\n }, props)));\n});\nvar ReadSizeOnceDiv = /*#__PURE__*/forwardRef((props, ref) => {\n var {\n width,\n height\n } = props;\n var [sizes, setSizes] = useState({\n containerWidth: getNumberOrZero(width),\n containerHeight: getNumberOrZero(height)\n });\n var setContainerSize = useCallback((newWidth, newHeight) => {\n setSizes(prevState => {\n var roundedWidth = Math.round(newWidth);\n var roundedHeight = Math.round(newHeight);\n if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {\n return prevState;\n }\n return {\n containerWidth: roundedWidth,\n containerHeight: roundedHeight\n };\n });\n }, []);\n var innerRef = useCallback(node => {\n if (typeof ref === 'function') {\n ref(node);\n }\n if (node != null) {\n var {\n width: containerWidth,\n height: containerHeight\n } = node.getBoundingClientRect();\n setContainerSize(containerWidth, containerHeight);\n }\n }, [ref, setContainerSize]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportChartSize, {\n width: sizes.containerWidth,\n height: sizes.containerHeight\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: innerRef\n }, props)));\n});\nvar StaticDiv = /*#__PURE__*/forwardRef((props, ref) => {\n var {\n width,\n height\n } = props;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportChartSize, {\n width: width,\n height: height\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref\n }, props)));\n});\nvar NonResponsiveDiv = /*#__PURE__*/forwardRef((props, ref) => {\n var {\n width,\n height\n } = props;\n if (isPercent(width) || isPercent(height)) {\n return /*#__PURE__*/React.createElement(ReadSizeOnceDiv, _extends({}, props, {\n ref: ref\n }));\n }\n return /*#__PURE__*/React.createElement(StaticDiv, _extends({}, props, {\n ref: ref\n }));\n});\nfunction getWrapperDivComponent(responsive) {\n return responsive === true ? ResponsiveDiv : NonResponsiveDiv;\n}\nexport var RechartsWrapper = /*#__PURE__*/forwardRef((props, ref) => {\n var {\n children,\n className,\n height: heightFromProps,\n onClick,\n onContextMenu,\n onDoubleClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseUp,\n onTouchEnd,\n onTouchMove,\n onTouchStart,\n style,\n width: widthFromProps,\n responsive,\n dispatchTouchEvents = true\n } = props;\n var containerRef = useRef(null);\n var dispatch = useAppDispatch();\n var [tooltipPortal, setTooltipPortal] = useState(null);\n var [legendPortal, setLegendPortal] = useState(null);\n var setScaleRef = useReportScale();\n var responsiveContainerCalculations = useResponsiveContainerContext();\n var width = (responsiveContainerCalculations === null || responsiveContainerCalculations === void 0 ? void 0 : responsiveContainerCalculations.width) > 0 ? responsiveContainerCalculations.width : widthFromProps;\n var height = (responsiveContainerCalculations === null || responsiveContainerCalculations === void 0 ? void 0 : responsiveContainerCalculations.height) > 0 ? responsiveContainerCalculations.height : heightFromProps;\n var innerRef = useCallback(node => {\n setScaleRef(node);\n if (typeof ref === 'function') {\n ref(node);\n }\n setTooltipPortal(node);\n setLegendPortal(node);\n if (node != null) {\n containerRef.current = node;\n }\n }, [setScaleRef, ref, setTooltipPortal, setLegendPortal]);\n var myOnClick = useCallback(e => {\n dispatch(mouseClickAction(e));\n dispatch(externalEventAction({\n handler: onClick,\n reactEvent: e\n }));\n }, [dispatch, onClick]);\n var myOnMouseEnter = useCallback(e => {\n dispatch(mouseMoveAction(e));\n dispatch(externalEventAction({\n handler: onMouseEnter,\n reactEvent: e\n }));\n }, [dispatch, onMouseEnter]);\n var myOnMouseLeave = useCallback(e => {\n dispatch(mouseLeaveChart());\n dispatch(externalEventAction({\n handler: onMouseLeave,\n reactEvent: e\n }));\n }, [dispatch, onMouseLeave]);\n var myOnMouseMove = useCallback(e => {\n dispatch(mouseMoveAction(e));\n dispatch(externalEventAction({\n handler: onMouseMove,\n reactEvent: e\n }));\n }, [dispatch, onMouseMove]);\n var onFocus = useCallback(() => {\n dispatch(focusAction());\n }, [dispatch]);\n var onKeyDown = useCallback(e => {\n dispatch(keyDownAction(e.key));\n }, [dispatch]);\n var myOnContextMenu = useCallback(e => {\n dispatch(externalEventAction({\n handler: onContextMenu,\n reactEvent: e\n }));\n }, [dispatch, onContextMenu]);\n var myOnDoubleClick = useCallback(e => {\n dispatch(externalEventAction({\n handler: onDoubleClick,\n reactEvent: e\n }));\n }, [dispatch, onDoubleClick]);\n var myOnMouseDown = useCallback(e => {\n dispatch(externalEventAction({\n handler: onMouseDown,\n reactEvent: e\n }));\n }, [dispatch, onMouseDown]);\n var myOnMouseUp = useCallback(e => {\n dispatch(externalEventAction({\n handler: onMouseUp,\n reactEvent: e\n }));\n }, [dispatch, onMouseUp]);\n var myOnTouchStart = useCallback(e => {\n dispatch(externalEventAction({\n handler: onTouchStart,\n reactEvent: e\n }));\n }, [dispatch, onTouchStart]);\n\n /*\n * onTouchMove is special because it behaves different from mouse events.\n * Mouse events have 'enter' + 'leave' combo that notify us when the mouse is over\n * a certain element. Touch events don't have that; touch only gives us\n * start (finger down), end (finger up) and move (finger moving).\n * So we need to figure out which element the user is touching\n * ourselves. Fortunately, there's a convenient method for that:\n * https://developer.mozilla.org/en-US/docs/Web/API/Document/elementFromPoint\n */\n var myOnTouchMove = useCallback(e => {\n if (dispatchTouchEvents) {\n dispatch(touchEventAction(e));\n }\n dispatch(externalEventAction({\n handler: onTouchMove,\n reactEvent: e\n }));\n }, [dispatch, dispatchTouchEvents, onTouchMove]);\n var myOnTouchEnd = useCallback(e => {\n dispatch(externalEventAction({\n handler: onTouchEnd,\n reactEvent: e\n }));\n }, [dispatch, onTouchEnd]);\n var WrapperDiv = getWrapperDivComponent(responsive);\n return /*#__PURE__*/React.createElement(TooltipPortalContext.Provider, {\n value: tooltipPortal\n }, /*#__PURE__*/React.createElement(LegendPortalContext.Provider, {\n value: legendPortal\n }, /*#__PURE__*/React.createElement(WrapperDiv, {\n width: width !== null && width !== void 0 ? width : style === null || style === void 0 ? void 0 : style.width,\n height: height !== null && height !== void 0 ? height : style === null || style === void 0 ? void 0 : style.height,\n className: clsx('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width,\n height\n }, style),\n onClick: myOnClick,\n onContextMenu: myOnContextMenu,\n onDoubleClick: myOnDoubleClick,\n onFocus: onFocus,\n onKeyDown: onKeyDown,\n onMouseDown: myOnMouseDown,\n onMouseEnter: myOnMouseEnter,\n onMouseLeave: myOnMouseLeave,\n onMouseMove: myOnMouseMove,\n onMouseUp: myOnMouseUp,\n onTouchEnd: myOnTouchEnd,\n onTouchMove: myOnTouchMove,\n onTouchStart: myOnTouchStart,\n ref: innerRef\n }, /*#__PURE__*/React.createElement(EventSynchronizer, null), children)));\n});","import { useEffect, useState } from 'react';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectContainerScale } from '../state/selectors/containerSelectors';\nimport { setScale } from '../state/layoutSlice';\nimport { isWellBehavedNumber } from './isWellBehavedNumber';\nexport function useReportScale() {\n var dispatch = useAppDispatch();\n var [ref, setRef] = useState(null);\n var scale = useAppSelector(selectContainerScale);\n useEffect(() => {\n if (ref == null) {\n return;\n }\n var rect = ref.getBoundingClientRect();\n var newScale = rect.width / ref.offsetWidth;\n if (isWellBehavedNumber(newScale) && newScale !== scale) {\n dispatch(setScale(newScale));\n }\n }, [ref, dispatch, scale]);\n return setRef;\n}","import * as React from 'react';\nimport { createContext, useContext, useState } from 'react';\nimport { uniqueId } from '../util/DataUtils';\nimport { usePlotArea } from '../hooks';\nvar ClipPathIdContext = /*#__PURE__*/createContext(undefined);\n\n/**\n * Generates a unique clip path ID for use in SVG elements,\n * and puts it in a context provider.\n *\n * To read the clip path ID, use the `useClipPathId` hook,\n * or render `<ClipPath>` component which will automatically use the ID from this context.\n *\n * @param props children - React children to be wrapped by the provider\n * @returns React Context Provider\n */\nexport var ClipPathProvider = _ref => {\n var {\n children\n } = _ref;\n var [clipPathId] = useState(\"\".concat(uniqueId('recharts'), \"-clip\"));\n var plotArea = usePlotArea();\n if (plotArea == null) {\n return null;\n }\n var {\n x,\n y,\n width,\n height\n } = plotArea;\n return /*#__PURE__*/React.createElement(ClipPathIdContext.Provider, {\n value: clipPathId\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n height: height,\n width: width\n }))), children);\n};\nexport var useClipPathId = () => {\n return useContext(ClipPathIdContext);\n};","var _excluded = [\"width\", \"height\", \"responsive\", \"children\", \"className\", \"style\", \"compact\", \"title\", \"desc\"];\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; }\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { RootSurface } from '../container/RootSurface';\nimport { RechartsWrapper } from './RechartsWrapper';\nimport { ClipPathProvider } from '../container/ClipPathProvider';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { ReportChartSize } from '../context/chartLayoutContext';\nexport var CategoricalChart = /*#__PURE__*/forwardRef((props, ref) => {\n var {\n width,\n height,\n responsive,\n children,\n className,\n style,\n compact,\n title,\n desc\n } = props,\n others = _objectWithoutProperties(props, _excluded);\n var attrs = svgPropertiesNoEvents(others);\n\n /*\n * The \"compact\" mode is used as the panorama within Brush.\n * However because `compact` is a public prop, let's assume that it can render outside of Brush too.\n */\n if (compact) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportChartSize, {\n width: width,\n height: height\n }), /*#__PURE__*/React.createElement(RootSurface, {\n otherAttributes: attrs,\n title: title,\n desc: desc\n }, children));\n }\n return /*#__PURE__*/React.createElement(RechartsWrapper, {\n className: className,\n style: style,\n width: width,\n height: height,\n responsive: responsive !== null && responsive !== void 0 ? responsive : false,\n onClick: props.onClick,\n onMouseLeave: props.onMouseLeave,\n onMouseEnter: props.onMouseEnter,\n onMouseMove: props.onMouseMove,\n onMouseDown: props.onMouseDown,\n onMouseUp: props.onMouseUp,\n onContextMenu: props.onContextMenu,\n onDoubleClick: props.onDoubleClick,\n onTouchStart: props.onTouchStart,\n onTouchMove: props.onTouchMove,\n onTouchEnd: props.onTouchEnd\n }, /*#__PURE__*/React.createElement(RootSurface, {\n otherAttributes: attrs,\n title: title,\n desc: desc,\n ref: ref\n }, /*#__PURE__*/React.createElement(ClipPathProvider, null, children)));\n});","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); }\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { RechartsStoreProvider } from '../state/RechartsStoreProvider';\nimport { ChartDataContextProvider } from '../context/chartDataContext';\nimport { ReportMainChartProps } from '../state/ReportMainChartProps';\nimport { ReportChartProps } from '../state/ReportChartProps';\nimport { CategoricalChart } from './CategoricalChart';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nvar defaultMargin = {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n};\nvar defaultProps = {\n accessibilityLayer: true,\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: defaultMargin,\n reverseStackOrder: false,\n syncMethod: 'index',\n responsive: false\n};\n\n/**\n * These are one-time, immutable options that decide the chart's behavior.\n * Users who wish to call CartesianChart may decide to pass these options explicitly,\n * but usually we would expect that they use one of the convenience components like BarChart, LineChart, etc.\n */\n\nexport var CartesianChart = /*#__PURE__*/forwardRef(function CartesianChart(props, ref) {\n var _categoricalChartProp;\n var rootChartProps = resolveDefaultProps(props.categoricalChartProps, defaultProps);\n var {\n chartName,\n defaultTooltipEventType,\n validateTooltipEventTypes,\n tooltipPayloadSearcher,\n categoricalChartProps\n } = props;\n var options = {\n chartName,\n defaultTooltipEventType,\n validateTooltipEventTypes,\n tooltipPayloadSearcher,\n eventEmitter: undefined\n };\n return /*#__PURE__*/React.createElement(RechartsStoreProvider, {\n preloadedState: {\n options\n },\n reduxStoreName: (_categoricalChartProp = categoricalChartProps.id) !== null && _categoricalChartProp !== void 0 ? _categoricalChartProp : chartName\n }, /*#__PURE__*/React.createElement(ChartDataContextProvider, {\n chartData: categoricalChartProps.data\n }), /*#__PURE__*/React.createElement(ReportMainChartProps, {\n layout: rootChartProps.layout,\n margin: rootChartProps.margin\n }), /*#__PURE__*/React.createElement(ReportChartProps, {\n baseValue: rootChartProps.baseValue,\n accessibilityLayer: rootChartProps.accessibilityLayer,\n barCategoryGap: rootChartProps.barCategoryGap,\n maxBarSize: rootChartProps.maxBarSize,\n stackOffset: rootChartProps.stackOffset,\n barGap: rootChartProps.barGap,\n barSize: rootChartProps.barSize,\n syncId: rootChartProps.syncId,\n syncMethod: rootChartProps.syncMethod,\n className: rootChartProps.className\n }), /*#__PURE__*/React.createElement(CategoricalChart, _extends({}, rootChartProps, {\n ref: ref\n })));\n});","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { CartesianChart } from './CartesianChart';\nvar allowedTooltipTypes = ['axis', 'item'];\nexport var BarChart = /*#__PURE__*/forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(CartesianChart, {\n chartName: \"BarChart\",\n defaultTooltipEventType: \"axis\",\n validateTooltipEventTypes: allowedTooltipTypes,\n tooltipPayloadSearcher: arrayTooltipSearcher,\n categoricalChartProps: props,\n ref: ref\n });\n});","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); }\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); }\n/**\n * @fileOverview Default Tooltip Content\n */\n\nimport * as React from 'react';\nimport sortBy from 'es-toolkit/compat/sortBy';\nimport { clsx } from 'clsx';\nimport { isNullish, isNumOrStr } from '../util/DataUtils';\nfunction defaultFormatter(value) {\n return Array.isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\nexport var DefaultTooltipContent = props => {\n var {\n separator = ' : ',\n contentStyle = {},\n itemStyle = {},\n labelStyle = {},\n payload,\n formatter,\n itemSorter,\n wrapperClassName,\n labelClassName,\n label,\n labelFormatter,\n accessibilityLayer = false\n } = props;\n var renderContent = () => {\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? sortBy(payload, itemSorter) : payload).map((entry, i) => {\n if (entry.type === 'none') {\n return null;\n }\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var {\n value,\n name\n } = entry;\n var finalValue = value;\n var finalName = name;\n if (finalFormatter) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n if (Array.isArray(formatted)) {\n [finalValue, finalName] = formatted;\n } else if (formatted != null) {\n finalValue = formatted;\n } else {\n return null;\n }\n }\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, finalName) : null, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, finalValue), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''));\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n return null;\n };\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n var hasLabel = !isNullish(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = clsx('recharts-default-tooltip', wrapperClassName);\n var labelCN = clsx('recharts-tooltip-label', labelClassName);\n if (hasLabel && labelFormatter && payload !== undefined && payload !== null) {\n finalLabel = labelFormatter(label, payload);\n }\n var accessibilityAttributes = accessibilityLayer ? {\n role: 'status',\n 'aria-live': 'assertive'\n } : {};\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: wrapperCN,\n style: finalStyle\n }, accessibilityAttributes), /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), renderContent());\n};","import { clsx } from 'clsx';\nimport { isNumber } from '../DataUtils';\nvar CSS_CLASS_PREFIX = 'recharts-tooltip-wrapper';\nvar TOOLTIP_HIDDEN = {\n visibility: 'hidden'\n};\nexport function getTooltipCSSClassName(_ref) {\n var {\n coordinate,\n translateX,\n translateY\n } = _ref;\n return clsx(CSS_CLASS_PREFIX, {\n [\"\".concat(CSS_CLASS_PREFIX, \"-right\")]: isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x,\n [\"\".concat(CSS_CLASS_PREFIX, \"-left\")]: isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x,\n [\"\".concat(CSS_CLASS_PREFIX, \"-bottom\")]: isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y,\n [\"\".concat(CSS_CLASS_PREFIX, \"-top\")]: isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y\n });\n}\nexport function getTooltipTranslateXY(_ref2) {\n var {\n allowEscapeViewBox,\n coordinate,\n key,\n offsetTopLeft,\n position,\n reverseDirection,\n tooltipDimension,\n viewBox,\n viewBoxDimension\n } = _ref2;\n if (position && isNumber(position[key])) {\n return position[key];\n }\n var negative = coordinate[key] - tooltipDimension - (offsetTopLeft > 0 ? offsetTopLeft : 0);\n var positive = coordinate[key] + offsetTopLeft;\n if (allowEscapeViewBox[key]) {\n return reverseDirection[key] ? negative : positive;\n }\n var viewBoxKey = viewBox[key];\n if (viewBoxKey == null) {\n return 0;\n }\n if (reverseDirection[key]) {\n var _tooltipBoundary = negative;\n var _viewBoxBoundary = viewBoxKey;\n if (_tooltipBoundary < _viewBoxBoundary) {\n return Math.max(positive, viewBoxKey);\n }\n return Math.max(negative, viewBoxKey);\n }\n if (viewBoxDimension == null) {\n return 0;\n }\n var tooltipBoundary = positive + tooltipDimension;\n var viewBoxBoundary = viewBoxKey + viewBoxDimension;\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(negative, viewBoxKey);\n }\n return Math.max(positive, viewBoxKey);\n}\nexport function getTransformStyle(_ref3) {\n var {\n translateX,\n translateY,\n useTranslate3d\n } = _ref3;\n return {\n transform: useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n };\n}\nexport function getTooltipTranslate(_ref4) {\n var {\n allowEscapeViewBox,\n coordinate,\n offsetTopLeft,\n position,\n reverseDirection,\n tooltipBox,\n useTranslate3d,\n viewBox\n } = _ref4;\n var cssProperties, translateX, translateY;\n if (tooltipBox.height > 0 && tooltipBox.width > 0 && coordinate) {\n translateX = getTooltipTranslateXY({\n allowEscapeViewBox,\n coordinate,\n key: 'x',\n offsetTopLeft,\n position,\n reverseDirection,\n tooltipDimension: tooltipBox.width,\n viewBox,\n viewBoxDimension: viewBox.width\n });\n translateY = getTooltipTranslateXY({\n allowEscapeViewBox,\n coordinate,\n key: 'y',\n offsetTopLeft,\n position,\n reverseDirection,\n tooltipDimension: tooltipBox.height,\n viewBox,\n viewBoxDimension: viewBox.height\n });\n cssProperties = getTransformStyle({\n translateX,\n translateY,\n useTranslate3d\n });\n } else {\n cssProperties = TOOLTIP_HIDDEN;\n }\n return {\n cssProperties,\n cssClasses: getTooltipCSSClassName({\n translateX,\n translateY,\n coordinate\n })\n };\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 { PureComponent } from 'react';\nimport { getTooltipTranslate } from '../util/tooltip/translate';\nexport class TooltipBoundingBox extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"state\", {\n dismissed: false,\n dismissedAtCoordinate: {\n x: 0,\n y: 0\n }\n });\n _defineProperty(this, \"handleKeyDown\", event => {\n if (event.key === 'Escape') {\n var _this$props$coordinat, _this$props$coordinat2, _this$props$coordinat3, _this$props$coordinat4;\n this.setState({\n dismissed: true,\n dismissedAtCoordinate: {\n x: (_this$props$coordinat = (_this$props$coordinat2 = this.props.coordinate) === null || _this$props$coordinat2 === void 0 ? void 0 : _this$props$coordinat2.x) !== null && _this$props$coordinat !== void 0 ? _this$props$coordinat : 0,\n y: (_this$props$coordinat3 = (_this$props$coordinat4 = this.props.coordinate) === null || _this$props$coordinat4 === void 0 ? void 0 : _this$props$coordinat4.y) !== null && _this$props$coordinat3 !== void 0 ? _this$props$coordinat3 : 0\n }\n });\n }\n });\n }\n componentDidMount() {\n document.addEventListener('keydown', this.handleKeyDown);\n }\n componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n componentDidUpdate() {\n var _this$props$coordinat5, _this$props$coordinat6;\n if (!this.state.dismissed) {\n return;\n }\n if (((_this$props$coordinat5 = this.props.coordinate) === null || _this$props$coordinat5 === void 0 ? void 0 : _this$props$coordinat5.x) !== this.state.dismissedAtCoordinate.x || ((_this$props$coordinat6 = this.props.coordinate) === null || _this$props$coordinat6 === void 0 ? void 0 : _this$props$coordinat6.y) !== this.state.dismissedAtCoordinate.y) {\n this.state.dismissed = false;\n }\n }\n render() {\n var {\n active,\n allowEscapeViewBox,\n animationDuration,\n animationEasing,\n children,\n coordinate,\n hasPayload,\n isAnimationActive,\n offset,\n position,\n reverseDirection,\n useTranslate3d,\n viewBox,\n wrapperStyle,\n lastBoundingBox,\n innerRef,\n hasPortalFromProps\n } = this.props;\n var {\n cssClasses,\n cssProperties\n } = getTooltipTranslate({\n allowEscapeViewBox,\n coordinate,\n offsetTopLeft: offset,\n position,\n reverseDirection,\n tooltipBox: {\n height: lastBoundingBox.height,\n width: lastBoundingBox.width\n },\n useTranslate3d,\n viewBox\n });\n\n // do not use absolute styles if the user has passed a custom portal prop\n var positionStyles = hasPortalFromProps ? {} : _objectSpread(_objectSpread({\n transition: isAnimationActive && active ? \"transform \".concat(animationDuration, \"ms \").concat(animationEasing) : undefined\n }, cssProperties), {}, {\n pointerEvents: 'none',\n visibility: !this.state.dismissed && active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n });\n var outerStyle = _objectSpread(_objectSpread({}, positionStyles), {}, {\n visibility: !this.state.dismissed && active && hasPayload ? 'visible' : 'hidden'\n }, wrapperStyle);\n return (\n /*#__PURE__*/\n // This element allow listening to the `Escape` key. See https://github.com/recharts/recharts/pull/2925\n React.createElement(\"div\", {\n // @ts-expect-error typescript library does not recognize xmlns attribute, but it's required for an HTML chunk inside SVG.\n xmlns: \"http://www.w3.org/1999/xhtml\",\n tabIndex: -1,\n className: cssClasses,\n style: outerStyle,\n ref: innerRef\n }, children)\n );\n }\n}","import { useCallback, useState } from 'react';\nvar EPS = 1;\n\n/**\n * TODO this documentation does not reflect what this hook is doing, update it.\n * Stores the `offsetHeight`, `offsetLeft`, `offsetTop`, and `offsetWidth` of a DOM element.\n */\n\n/**\n * Use this to listen to element layout changes.\n *\n * Very useful for reading actual sizes of DOM elements relative to the viewport.\n *\n * @param extraDependencies use this to trigger new DOM dimensions read when any of these change. Good for things like payload and label, that will re-render something down in the children array, but you want to read the layout box of a parent.\n * @returns [lastElementOffset, updateElementOffset] most recent value, and setter. Pass the setter to a DOM element ref like this: `<div ref={updateElementOffset}>`\n */\nexport function useElementOffset() {\n var extraDependencies = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var [lastBoundingBox, setLastBoundingBox] = useState({\n height: 0,\n left: 0,\n top: 0,\n width: 0\n });\n var updateBoundingBox = useCallback(node => {\n if (node != null) {\n var rect = node.getBoundingClientRect();\n var box = {\n height: rect.height,\n left: rect.left,\n top: rect.top,\n width: rect.width\n };\n if (Math.abs(box.height - lastBoundingBox.height) > EPS || Math.abs(box.left - lastBoundingBox.left) > EPS || Math.abs(box.top - lastBoundingBox.top) > EPS || Math.abs(box.width - lastBoundingBox.width) > EPS) {\n setLastBoundingBox({\n height: box.height,\n left: box.left,\n top: box.top,\n width: box.width\n });\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [lastBoundingBox.width, lastBoundingBox.height, lastBoundingBox.top, lastBoundingBox.left, ...extraDependencies]);\n return [lastBoundingBox, updateBoundingBox];\n}","var _excluded = [\"x\", \"y\", \"top\", \"left\", \"width\", \"height\", \"className\"];\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); }\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 _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; }\n/**\n * @fileOverview Cross\n */\nimport * as React from 'react';\nimport { clsx } from 'clsx';\nimport { isNumber } from '../util/DataUtils';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nvar getPath = (x, y, width, height, top, left) => {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n};\nexport var Cross = _ref => {\n var {\n x = 0,\n y = 0,\n top = 0,\n left = 0,\n width = 0,\n height = 0,\n className\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread({\n x,\n y,\n top,\n left,\n width,\n height\n }, rest);\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, svgPropertiesAndEvents(props), {\n className: clsx('recharts-cross', className),\n d: getPath(x, y, width, height, top, left)\n }));\n};","import { polarToCartesian } from '../PolarUtils';\n/**\n * Only applicable for radial layouts\n * @param {Object} activeCoordinate ChartCoordinate\n * @returns {Object} RadialCursorPoints\n */\nexport function getRadialCursorPoints(activeCoordinate) {\n var {\n cx,\n cy,\n radius,\n startAngle,\n endAngle\n } = activeCoordinate;\n var startPoint = polarToCartesian(cx, cy, radius, startAngle);\n var endPoint = polarToCartesian(cx, cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx,\n cy,\n radius,\n startAngle,\n endAngle\n };\n}","import { polarToCartesian } from '../PolarUtils';\nimport { isPolarCoordinate } from '../types';\nimport { getRadialCursorPoints } from './getRadialCursorPoints';\nexport function getCursorPoints(layout, activeCoordinate, offset) {\n if (layout === 'horizontal') {\n return [{\n x: activeCoordinate.x,\n y: offset.top\n }, {\n x: activeCoordinate.x,\n y: offset.top + offset.height\n }];\n }\n if (layout === 'vertical') {\n return [{\n x: offset.left,\n y: activeCoordinate.y\n }, {\n x: offset.left + offset.width,\n y: activeCoordinate.y\n }];\n }\n if (isPolarCoordinate(activeCoordinate)) {\n if (layout === 'centric') {\n var {\n cx,\n cy,\n innerRadius,\n outerRadius,\n angle\n } = activeCoordinate;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n return [{\n x: innerPoint.x,\n y: innerPoint.y\n }, {\n x: outerPoint.x,\n y: outerPoint.y\n }];\n }\n return getRadialCursorPoints(activeCoordinate);\n }\n return undefined;\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 { useAppSelector } from '../state/hooks';\nimport { getBandSizeOfAxis } from '../util/ChartUtils';\nimport { selectTooltipAxis } from '../state/selectors/axisSelectors';\nimport { selectTooltipAxisScale, selectTooltipAxisTicks } from '../state/selectors/tooltipSelectors';\nexport var useTooltipAxis = () => useAppSelector(selectTooltipAxis);\nexport var useTooltipAxisBandSize = () => {\n var tooltipAxis = useTooltipAxis();\n var tooltipTicks = useAppSelector(selectTooltipAxisTicks);\n var tooltipAxisScale = useAppSelector(selectTooltipAxisScale);\n if (!tooltipAxis || !tooltipAxisScale) {\n return getBandSizeOfAxis(undefined, tooltipTicks);\n }\n return getBandSizeOfAxis(_objectSpread(_objectSpread({}, tooltipAxis), {}, {\n scale: tooltipAxisScale\n }), tooltipTicks);\n};","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); }\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); }\nimport * as React from 'react';\nimport { cloneElement, createElement, isValidElement } from 'react';\nimport { clsx } from 'clsx';\nimport { isPolarCoordinate } from '../util/types';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { getCursorRectangle } from '../util/cursor/getCursorRectangle';\nimport { Rectangle } from '../shape/Rectangle';\nimport { getRadialCursorPoints } from '../util/cursor/getRadialCursorPoints';\nimport { Sector } from '../shape/Sector';\nimport { getCursorPoints } from '../util/cursor/getCursorPoints';\nimport { useChartLayout, useOffsetInternal } from '../context/chartLayoutContext';\nimport { useTooltipAxisBandSize } from '../context/useTooltipAxis';\nimport { useChartName } from '../state/selectors/selectors';\nimport { svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\n\n/**\n * If set false, no cursor will be drawn when tooltip is active.\n * If set an object, the option is the configuration of cursor.\n * If set a React element, the option is the custom react element of drawing cursor\n */\n\nfunction RenderCursor(_ref) {\n var {\n cursor,\n cursorComp,\n cursorProps\n } = _ref;\n if (/*#__PURE__*/isValidElement(cursor)) {\n return /*#__PURE__*/cloneElement(cursor, cursorProps);\n }\n return /*#__PURE__*/createElement(cursorComp, cursorProps);\n}\nexport function CursorInternal(props) {\n var _props$zIndex;\n var {\n coordinate,\n payload,\n index,\n offset,\n tooltipAxisBandSize,\n layout,\n cursor,\n tooltipEventType,\n chartName\n } = props;\n\n // The cursor is a part of the Tooltip, and it should be shown (by default) when the Tooltip is active.\n var activeCoordinate = coordinate;\n var activePayload = payload;\n var activeTooltipIndex = index;\n if (!cursor || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n var restProps, cursorComp, preferredZIndex;\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n preferredZIndex = DefaultZIndexes.cursorLine;\n } else if (chartName === 'BarChart') {\n restProps = getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize);\n cursorComp = Rectangle;\n preferredZIndex = DefaultZIndexes.cursorRectangle;\n } else if (layout === 'radial' && isPolarCoordinate(activeCoordinate)) {\n var {\n cx,\n cy,\n radius,\n startAngle,\n endAngle\n } = getRadialCursorPoints(activeCoordinate);\n restProps = {\n cx,\n cy,\n startAngle,\n endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n preferredZIndex = DefaultZIndexes.cursorLine;\n } else {\n restProps = {\n points: getCursorPoints(layout, activeCoordinate, offset)\n };\n cursorComp = Curve;\n preferredZIndex = DefaultZIndexes.cursorLine;\n }\n var extraClassName = typeof cursor === 'object' && 'className' in cursor ? cursor.className : undefined;\n var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset), restProps), svgPropertiesNoEventsFromUnknown(cursor)), {}, {\n payload: activePayload,\n payloadIndex: activeTooltipIndex,\n className: clsx('recharts-tooltip-cursor', extraClassName)\n });\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: (_props$zIndex = props.zIndex) !== null && _props$zIndex !== void 0 ? _props$zIndex : preferredZIndex\n }, /*#__PURE__*/React.createElement(RenderCursor, {\n cursor: cursor,\n cursorComp: cursorComp,\n cursorProps: cursorProps\n }));\n}\n\n/*\n * Cursor is the background, or a highlight,\n * that shows when user mouses over or activates\n * an area.\n *\n * It usually shows together with a tooltip\n * to emphasise which part of the chart does the tooltip refer to.\n */\nexport function Cursor(props) {\n var tooltipAxisBandSize = useTooltipAxisBandSize();\n var offset = useOffsetInternal();\n var layout = useChartLayout();\n var chartName = useChartName();\n if (tooltipAxisBandSize == null || offset == null || layout == null || chartName == null) {\n return null;\n }\n return /*#__PURE__*/React.createElement(CursorInternal, _extends({}, props, {\n offset: offset,\n layout: layout,\n tooltipAxisBandSize: tooltipAxisBandSize,\n chartName: chartName\n }));\n}","export function getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize) {\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\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 { useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { TooltipBoundingBox } from './TooltipBoundingBox';\nimport { Global } from '../util/Global';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nimport { useViewBox } from '../context/chartLayoutContext';\nimport { useAccessibilityLayer } from '../context/accessibilityContext';\nimport { useElementOffset } from '../util/useElementOffset';\nimport { Cursor } from './Cursor';\nimport { selectActiveCoordinate, selectActiveLabel, selectIsTooltipActive, selectTooltipPayload } from '../state/selectors/selectors';\nimport { useTooltipPortal } from '../context/tooltipPortalContext';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { setTooltipSettingsState } from '../state/tooltipSlice';\nimport { useTooltipChartSynchronisation } from '../synchronisation/useChartSynchronisation';\nimport { useTooltipEventType } from '../state/selectors/selectTooltipEventType';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\nfunction renderContent(content, props) {\n if (/*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\nvar emptyPayload = [];\nvar defaultTooltipProps = {\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n animationDuration: 400,\n animationEasing: 'ease',\n axisId: 0,\n contentStyle: {},\n cursor: true,\n filterNull: true,\n isAnimationActive: !Global.isSsr,\n itemSorter: 'name',\n itemStyle: {},\n labelStyle: {},\n offset: 10,\n reverseDirection: {\n x: false,\n y: false\n },\n separator: ' : ',\n trigger: 'hover',\n useTranslate3d: false,\n wrapperStyle: {}\n};\nexport function Tooltip(outsideProps) {\n var _useAppSelector, _ref;\n var props = resolveDefaultProps(outsideProps, defaultTooltipProps);\n var {\n active: activeFromProps,\n allowEscapeViewBox,\n animationDuration,\n animationEasing,\n content,\n filterNull,\n isAnimationActive,\n offset,\n payloadUniqBy,\n position,\n reverseDirection,\n useTranslate3d,\n wrapperStyle,\n cursor,\n shared,\n trigger,\n defaultIndex,\n portal: portalFromProps,\n axisId\n } = props;\n var dispatch = useAppDispatch();\n var defaultIndexAsString = typeof defaultIndex === 'number' ? String(defaultIndex) : defaultIndex;\n useEffect(() => {\n dispatch(setTooltipSettingsState({\n shared,\n trigger,\n axisId,\n active: activeFromProps,\n defaultIndex: defaultIndexAsString\n }));\n }, [dispatch, shared, trigger, axisId, activeFromProps, defaultIndexAsString]);\n var viewBox = useViewBox();\n var accessibilityLayer = useAccessibilityLayer();\n var tooltipEventType = useTooltipEventType(shared);\n var {\n activeIndex,\n isActive\n } = (_useAppSelector = useAppSelector(state => selectIsTooltipActive(state, tooltipEventType, trigger, defaultIndexAsString))) !== null && _useAppSelector !== void 0 ? _useAppSelector : {};\n var payloadFromRedux = useAppSelector(state => selectTooltipPayload(state, tooltipEventType, trigger, defaultIndexAsString));\n var labelFromRedux = useAppSelector(state => selectActiveLabel(state, tooltipEventType, trigger, defaultIndexAsString));\n var coordinate = useAppSelector(state => selectActiveCoordinate(state, tooltipEventType, trigger, defaultIndexAsString));\n var payload = payloadFromRedux;\n var tooltipPortalFromContext = useTooltipPortal();\n /*\n * The user can set `active=true` on the Tooltip in which case the Tooltip will stay always active,\n * or `active=false` in which case the Tooltip never shows.\n *\n * If the `active` prop is not defined then it will show and hide based on mouse or keyboard activity.\n */\n var finalIsActive = (_ref = activeFromProps !== null && activeFromProps !== void 0 ? activeFromProps : isActive) !== null && _ref !== void 0 ? _ref : false;\n var [lastBoundingBox, updateBoundingBox] = useElementOffset([payload, finalIsActive]);\n var finalLabel = tooltipEventType === 'axis' ? labelFromRedux : undefined;\n useTooltipChartSynchronisation(tooltipEventType, trigger, coordinate, finalLabel, activeIndex, finalIsActive);\n var tooltipPortal = portalFromProps !== null && portalFromProps !== void 0 ? portalFromProps : tooltipPortalFromContext;\n if (tooltipPortal == null || viewBox == null || tooltipEventType == null) {\n return null;\n }\n var finalPayload = payload !== null && payload !== void 0 ? payload : emptyPayload;\n if (!finalIsActive) {\n finalPayload = emptyPayload;\n }\n if (filterNull && finalPayload.length) {\n finalPayload = getUniqPayload(finalPayload.filter(entry => entry.value != null && (entry.hide !== true || props.includeHidden)), payloadUniqBy, defaultUniqBy);\n }\n var hasPayload = finalPayload.length > 0;\n var tooltipElement = /*#__PURE__*/React.createElement(TooltipBoundingBox, {\n allowEscapeViewBox: allowEscapeViewBox,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n isAnimationActive: isAnimationActive,\n active: finalIsActive,\n coordinate: coordinate,\n hasPayload: hasPayload,\n offset: offset,\n position: position,\n reverseDirection: reverseDirection,\n useTranslate3d: useTranslate3d,\n viewBox: viewBox,\n wrapperStyle: wrapperStyle,\n lastBoundingBox: lastBoundingBox,\n innerRef: updateBoundingBox,\n hasPortalFromProps: Boolean(portalFromProps)\n }, renderContent(content, _objectSpread(_objectSpread({}, props), {}, {\n payload: finalPayload,\n label: finalLabel,\n active: finalIsActive,\n activeIndex,\n coordinate,\n accessibilityLayer\n })));\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/createPortal(tooltipElement, tooltipPortal), finalIsActive && /*#__PURE__*/React.createElement(Cursor, {\n cursor: cursor,\n tooltipEventType: tooltipEventType,\n coordinate: coordinate,\n payload: finalPayload,\n index: activeIndex\n }));\n}","import uniqBy from 'es-toolkit/compat/uniqBy';\n\n/**\n * This is configuration option that decides how to filter for unique values only:\n *\n * - `false` means \"no filter\"\n * - `true` means \"use recharts default filter\"\n * - function means \"use return of this function as the default key\"\n */\n\nexport function getUniqPayload(payload, option, defaultUniqBy) {\n if (option === true) {\n return uniqBy(payload, defaultUniqBy);\n }\n if (typeof option === 'function') {\n return uniqBy(payload, option);\n }\n return payload;\n}","/**\n * @fileOverview Cross\n */\n\nexport var Cell = _props => null;\nCell.displayName = 'Cell';","var _excluded = [\"valueAccessor\"],\n _excluded2 = [\"dataKey\", \"clockWise\", \"id\", \"textBreakAll\", \"zIndex\"];\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); }\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; }\nimport * as React from 'react';\nimport { createContext, useContext } from 'react';\nimport last from 'es-toolkit/compat/last';\nimport { isLabelContentAFunction, Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNullish } from '../util/DataUtils';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\n\n/**\n * This is public API because we expose it as the valueAccessor parameter.\n *\n * The properties of \"viewBox\" are repeated as the root props of the entry object.\n * So it doesn't matter if you read entry.x or entry.viewBox.x, they are the same.\n *\n * It's not necessary to pass redundant data, but we keep it for backward compatibility.\n */\n\n/**\n * LabelList props do not allow refs because the same props are reused in multiple elements so we don't have a good single place to ref to.\n */\n\n/**\n * This is the type accepted for the `label` prop on various graphical items.\n * It accepts:\n *\n * boolean:\n * true = labels show,\n * false = labels don't show\n * React element:\n * will be cloned with extra props\n * function:\n * is used as <Label content={function} />, so this will be called once for each individual label (so typically once for each data point)\n * object:\n * the props to be passed to a LabelList component\n */\n\nvar defaultAccessor = entry => Array.isArray(entry.value) ? last(entry.value) : entry.value;\nvar CartesianLabelListContext = /*#__PURE__*/createContext(undefined);\nexport var CartesianLabelListContextProvider = CartesianLabelListContext.Provider;\nvar PolarLabelListContext = /*#__PURE__*/createContext(undefined);\nexport var PolarLabelListContextProvider = PolarLabelListContext.Provider;\nfunction useCartesianLabelListContext() {\n return useContext(CartesianLabelListContext);\n}\nfunction usePolarLabelListContext() {\n return useContext(PolarLabelListContext);\n}\nexport function LabelList(_ref) {\n var {\n valueAccessor = defaultAccessor\n } = _ref,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var {\n dataKey,\n clockWise,\n id,\n textBreakAll,\n zIndex\n } = restProps,\n others = _objectWithoutProperties(restProps, _excluded2);\n var cartesianData = useCartesianLabelListContext();\n var polarData = usePolarLabelListContext();\n var data = cartesianData || polarData;\n if (!data || !data.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: zIndex !== null && zIndex !== void 0 ? zIndex : DefaultZIndexes.label\n }, /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map((entry, index) => {\n var _restProps$fill;\n var value = isNullish(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry && entry.payload, dataKey);\n var idProps = isNullish(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return /*#__PURE__*/React.createElement(Label, _extends({\n key: \"label-\".concat(index)\n }, svgPropertiesAndEvents(entry), others, idProps, {\n /*\n * Prefer to use the explicit fill from LabelList props.\n * Only in an absence of that, fall back to the fill of the entry.\n * The entry fill can be quite difficult to see especially in Bar, Pie, RadialBar in inside positions.\n * On the other hand it's quite convenient in Scatter, Line, or when the position is outside the Bar, Pie filled shapes.\n */\n fill: (_restProps$fill = restProps.fill) !== null && _restProps$fill !== void 0 ? _restProps$fill : entry.fill,\n parentViewBox: entry.parentViewBox,\n value: value,\n textBreakAll: textBreakAll,\n viewBox: entry.viewBox,\n index: index\n /*\n * Here we don't want to use the default Label zIndex,\n * we want it to inherit the zIndex of the LabelList itself\n * which means just rendering as a regular child, without portaling anywhere.\n */,\n zIndex: 0\n }));\n })));\n}\nLabelList.displayName = 'LabelList';\nexport function LabelListFromLabelProp(_ref2) {\n var {\n label\n } = _ref2;\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\"\n });\n }\n if (/*#__PURE__*/React.isValidElement(label) || isLabelContentAFunction(label)) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n content: label\n });\n }\n if (typeof label === 'object') {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n key: \"labelList-implicit\"\n }, label, {\n type: String(label.type)\n }));\n }\n return null;\n}","import get from 'es-toolkit/compat/get';\nimport { Children } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNullish } from './DataUtils';\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\n\n/**\n * @deprecated instead find another approach that does not depend on displayName.\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\nexport var getDisplayName = Comp => {\n if (typeof Comp === 'string') {\n return Comp;\n }\n if (!Comp) {\n return '';\n }\n return Comp.displayName || Comp.name || 'Component';\n};\n\n// `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\nvar lastChildren = null;\nvar lastResult = null;\n\n/**\n * @deprecated instead find another approach that does not require reading React Elements from DOM.\n *\n * @param children do not use\n * @return deprecated do not use\n */\nexport var toArray = children => {\n if (children === lastChildren && Array.isArray(lastResult)) {\n return lastResult;\n }\n var result = [];\n Children.forEach(children, child => {\n if (isNullish(child)) return;\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n // @ts-expect-error this could still be Iterable<ReactNode> and TS does not like that\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n\n/**\n * @deprecated instead find another approach that does not require reading React Elements from DOM.\n *\n * Find and return all matched children by type.\n * `type` must be a React.ComponentType\n *\n * @param children do not use\n * @param type do not use\n * @return deprecated do not use\n */\nexport function findAllByType(children, type) {\n var result = [];\n var types = [];\n if (Array.isArray(type)) {\n types = type.map(t => getDisplayName(t));\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(child => {\n // @ts-expect-error toArray and lodash.get are not compatible. Let's get rid of the whole findAllByType function\n var childType = get(child, 'type.displayName') || get(child, 'type.name');\n if (childType && types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n}\nexport var isClipDot = dot => {\n if (dot && typeof dot === 'object' && 'clipDot' in dot) {\n return Boolean(dot.clipDot);\n }\n return true;\n};","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\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); }\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/**\n * @fileOverview Rectangle\n */\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { interpolate } from '../util/DataUtils';\nimport { getTransitionVal } from '../animation/util';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nvar getTrapezoidPath = (x, y, upperWidth, lowerWidth, height) => {\n var widthGap = upperWidth - lowerWidth;\n var path;\n path = \"M \".concat(x, \",\").concat(y);\n path += \"L \".concat(x + upperWidth, \",\").concat(y);\n path += \"L \".concat(x + upperWidth - widthGap / 2, \",\").concat(y + height);\n path += \"L \".concat(x + upperWidth - widthGap / 2 - lowerWidth, \",\").concat(y + height);\n path += \"L \".concat(x, \",\").concat(y, \" Z\");\n return path;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n upperWidth: 0,\n lowerWidth: 0,\n height: 0,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Trapezoid = outsideProps => {\n var trapezoidProps = resolveDefaultProps(outsideProps, defaultProps);\n var {\n x,\n y,\n upperWidth,\n lowerWidth,\n height,\n className\n } = trapezoidProps;\n var {\n animationEasing,\n animationDuration,\n animationBegin,\n isUpdateAnimationActive\n } = trapezoidProps;\n var pathRef = useRef(null);\n var [totalLength, setTotalLength] = useState(-1);\n var prevUpperWidthRef = useRef(upperWidth);\n var prevLowerWidthRef = useRef(lowerWidth);\n var prevHeightRef = useRef(height);\n var prevXRef = useRef(x);\n var prevYRef = useRef(y);\n var animationId = useAnimationId(outsideProps, 'trapezoid-');\n useEffect(() => {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (_unused) {\n // calculate total length error\n }\n }\n }, []);\n if (x !== +x || y !== +y || upperWidth !== +upperWidth || lowerWidth !== +lowerWidth || height !== +height || upperWidth === 0 && lowerWidth === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-trapezoid', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", _extends({}, svgPropertiesAndEvents(trapezoidProps), {\n className: layerClass,\n d: getTrapezoidPath(x, y, upperWidth, lowerWidth, height)\n })));\n }\n var prevUpperWidth = prevUpperWidthRef.current;\n var prevLowerWidth = prevLowerWidthRef.current;\n var prevHeight = prevHeightRef.current;\n var prevX = prevXRef.current;\n var prevY = prevYRef.current;\n var from = \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\");\n var to = \"\".concat(totalLength, \"px 0px\");\n var transition = getTransitionVal(['strokeDasharray'], animationDuration, animationEasing);\n return /*#__PURE__*/React.createElement(JavascriptAnimate, {\n animationId: animationId,\n key: animationId,\n canBegin: totalLength > 0,\n duration: animationDuration,\n easing: animationEasing,\n isActive: isUpdateAnimationActive,\n begin: animationBegin\n }, t => {\n var currUpperWidth = interpolate(prevUpperWidth, upperWidth, t);\n var currLowerWidth = interpolate(prevLowerWidth, lowerWidth, t);\n var currHeight = interpolate(prevHeight, height, t);\n var currX = interpolate(prevX, x, t);\n var currY = interpolate(prevY, y, t);\n if (pathRef.current) {\n prevUpperWidthRef.current = currUpperWidth;\n prevLowerWidthRef.current = currLowerWidth;\n prevHeightRef.current = currHeight;\n prevXRef.current = currX;\n prevYRef.current = currY;\n }\n var animationStyle = t > 0 ? {\n transition,\n strokeDasharray: to\n } : {\n strokeDasharray: from\n };\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, svgPropertiesAndEvents(trapezoidProps), {\n className: layerClass,\n d: getTrapezoidPath(currX, currY, currUpperWidth, currLowerWidth, currHeight),\n ref: pathRef,\n style: _objectSpread(_objectSpread({}, animationStyle), trapezoidProps.style)\n }));\n });\n};","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {pi, sqrt, tau} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst tan30 = sqrt(1 / 3);\nconst tan30_2 = tan30 * 2;\n\nexport default {\n draw(context, size) {\n const y = sqrt(size / tan30_2);\n const x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const w = sqrt(size);\n const x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {sin, cos, sqrt, pi, tau} from \"../math.js\";\n\nconst ka = 0.89081309152928522810;\nconst kr = sin(pi / 10) / sin(7 * pi / 10);\nconst kx = sin(tau / 10) * kr;\nconst ky = -cos(tau / 10) * kr;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size * ka);\n const x = kx * r;\n const y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (let i = 1; i < 5; ++i) {\n const a = tau * i / 5;\n const c = cos(a);\n const s = sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const y = -sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst c = -0.5;\nconst s = sqrt(3) / 2;\nconst k = 1 / sqrt(12);\nconst a = (k / 2 + 1) * 3;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / a);\n const x0 = r / 2, y0 = r * k;\n const x1 = x0, y1 = r * k + r;\n const x2 = -x1, y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import {min, sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const r = sqrt(size + min(size / 28, 0.75)) * 0.59436;\n const t = r / 2;\n const u = t * sqrt3;\n context.moveTo(0, r);\n context.lineTo(0, -r);\n context.moveTo(-u, -t);\n context.lineTo(u, t);\n context.moveTo(-u, t);\n context.lineTo(u, -t);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const s = sqrt(size) * 0.6824;\n const t = s / 2;\n const u = (s * sqrt3) / 2; // cos(Math.PI / 6)\n context.moveTo(0, -s);\n context.lineTo(u, t);\n context.lineTo(-u, t);\n context.closePath();\n }\n};\n","var _excluded = [\"type\", \"size\", \"sizeType\"];\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); }\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 _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; }\nimport * as React from 'react';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'victory-vendor/d3-shape';\nimport { clsx } from 'clsx';\nimport { isNumber, upperFirst } from '../util/DataUtils';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nvar symbolFactories = {\n symbolCircle,\n symbolCross,\n symbolDiamond,\n symbolSquare,\n symbolStar,\n symbolTriangle,\n symbolWye\n};\nvar RADIAN = Math.PI / 180;\nvar getSymbolFactory = type => {\n var name = \"symbol\".concat(upperFirst(type));\n return symbolFactories[name] || symbolCircle;\n};\nvar calculateAreaSize = (size, sizeType, type) => {\n if (sizeType === 'area') {\n return size;\n }\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n case 'square':\n return size * size;\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.tan(angle) ** 2);\n }\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n default:\n return Math.PI * size * size / 4;\n }\n};\nvar registerSymbol = (key, factory) => {\n symbolFactories[\"symbol\".concat(upperFirst(key))] = factory;\n};\nexport var Symbols = _ref => {\n var {\n type = 'circle',\n size = 64,\n sizeType = 'area'\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread(_objectSpread({}, rest), {}, {\n type,\n size,\n sizeType\n });\n var realType = 'circle';\n if (typeof type === 'string') {\n /*\n * Our type guard is not as strong as it could be (i.e. non-existent),\n * and so despite the typescript type saying that `type` is a `SymbolType`,\n * we can get numbers or really anything, so let's have a runtime check here to fix the exception.\n *\n * https://github.com/recharts/recharts/issues/6197\n */\n realType = type;\n }\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n var getPath = () => {\n var symbolFactory = getSymbolFactory(realType);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, realType));\n var s = symbol();\n if (s === null) {\n return undefined;\n }\n return s;\n };\n var {\n className,\n cx,\n cy\n } = props;\n var filteredProps = svgPropertiesAndEvents(props);\n if (isNumber(cx) && isNumber(cy) && isNumber(size)) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filteredProps, {\n className: clsx('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: getPath()\n }));\n }\n return null;\n};\nSymbols.registerSymbol = registerSymbol;","import constant from \"./constant.js\";\nimport {withPath} from \"./path.js\";\nimport asterisk from \"./symbol/asterisk.js\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport diamond2 from \"./symbol/diamond2.js\";\nimport plus from \"./symbol/plus.js\";\nimport square from \"./symbol/square.js\";\nimport square2 from \"./symbol/square2.js\";\nimport star from \"./symbol/star.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport triangle2 from \"./symbol/triangle2.js\";\nimport wye from \"./symbol/wye.js\";\nimport times from \"./symbol/times.js\";\n\n// These symbols are designed to be filled.\nexport const symbolsFill = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\n// These symbols are designed to be stroked (with a width of 1.5px and round caps).\nexport const symbolsStroke = [\n circle,\n plus,\n times,\n triangle2,\n asterisk,\n square2,\n diamond2\n];\n\nexport default function Symbol(type, size) {\n let context = null,\n path = withPath(symbol);\n\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n let buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","var _excluded = [\"option\", \"shapeType\", \"propTransformer\", \"activeClassName\", \"isActive\"];\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); }\nimport * as React from 'react';\nimport { cloneElement, isValidElement } from 'react';\nimport isPlainObject from 'es-toolkit/compat/isPlainObject';\nimport { Rectangle } from '../shape/Rectangle';\nimport { Trapezoid } from '../shape/Trapezoid';\nimport { Sector } from '../shape/Sector';\nimport { Layer } from '../container/Layer';\nimport { Symbols } from '../shape/Symbols';\nimport { Curve } from '../shape/Curve';\n\n/**\n * This is an abstraction for rendering a user defined prop for a customized shape in several forms.\n *\n * <Shape /> is the root and will handle taking in:\n * - an object of svg properties\n * - a boolean\n * - a render prop(inline function that returns jsx)\n * - a React element\n *\n * <ShapeSelector /> is a subcomponent of <Shape /> and used to match a component\n * to the value of props.shapeType that is passed to the root.\n *\n */\n\nfunction defaultPropTransformer(option, props) {\n return _objectSpread(_objectSpread({}, props), option);\n}\nfunction isSymbolsProps(shapeType, _elementProps) {\n return shapeType === 'symbols';\n}\nfunction ShapeSelector(_ref) {\n var {\n shapeType,\n elementProps\n } = _ref;\n switch (shapeType) {\n case 'rectangle':\n return /*#__PURE__*/React.createElement(Rectangle, elementProps);\n case 'trapezoid':\n return /*#__PURE__*/React.createElement(Trapezoid, elementProps);\n case 'sector':\n return /*#__PURE__*/React.createElement(Sector, elementProps);\n case 'symbols':\n if (isSymbolsProps(shapeType, elementProps)) {\n return /*#__PURE__*/React.createElement(Symbols, elementProps);\n }\n break;\n case 'curve':\n return /*#__PURE__*/React.createElement(Curve, elementProps);\n default:\n return null;\n }\n}\nexport function getPropsFromShapeOption(option) {\n if (/*#__PURE__*/isValidElement(option)) {\n return option.props;\n }\n return option;\n}\nexport function Shape(_ref2) {\n var {\n option,\n shapeType,\n propTransformer = defaultPropTransformer,\n activeClassName = 'recharts-active-shape',\n isActive\n } = _ref2,\n props = _objectWithoutProperties(_ref2, _excluded);\n var shape;\n if (/*#__PURE__*/isValidElement(option)) {\n // @ts-expect-error we can't know the type of cloned element props\n shape = /*#__PURE__*/cloneElement(option, _objectSpread(_objectSpread({}, props), getPropsFromShapeOption(option)));\n } else if (typeof option === 'function') {\n shape = option(props);\n } else if (isPlainObject(option) && typeof option !== 'boolean') {\n var nextProps = propTransformer(option, props);\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: nextProps\n });\n } else {\n var elementProps = props;\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: elementProps\n });\n }\n if (isActive) {\n return /*#__PURE__*/React.createElement(Layer, {\n className: activeClassName\n }, shape);\n }\n return shape;\n}","var _excluded = [\"x\", \"y\"];\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); }\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 _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; }\nimport * as React from 'react';\nimport invariant from 'tiny-invariant';\nimport { Shape } from './ActiveShapeUtils';\nimport { isNullish, isNumber } from './DataUtils';\n\n// Rectangle props is expecting x, y, height, width as numbers, name as a string, and radius as a custom type\n// When props are being spread in from a user defined component in Bar,\n// the prop types of an SVGElement have these typed as something else.\n// This function will return the passed in props\n// along with x, y, height as numbers, name as a string, and radius as number | [number, number, number, number]\nfunction typeguardBarRectangleProps(_ref, props) {\n var {\n x: xProp,\n y: yProp\n } = _ref,\n option = _objectWithoutProperties(_ref, _excluded);\n var xValue = \"\".concat(xProp);\n var x = parseInt(xValue, 10);\n var yValue = \"\".concat(yProp);\n var y = parseInt(yValue, 10);\n var heightValue = \"\".concat(props.height || option.height);\n var height = parseInt(heightValue, 10);\n var widthValue = \"\".concat(props.width || option.width);\n var width = parseInt(widthValue, 10);\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props), option), x ? {\n x\n } : {}), y ? {\n y\n } : {}), {}, {\n height,\n width,\n name: props.name,\n radius: props.radius\n });\n}\nexport function BarRectangle(props) {\n return /*#__PURE__*/React.createElement(Shape, _extends({\n shapeType: \"rectangle\",\n propTransformer: typeguardBarRectangleProps,\n activeClassName: \"recharts-active-bar\"\n }, props));\n}\n/**\n * Safely gets minPointSize from the minPointSize prop if it is a function\n * @param minPointSize minPointSize as passed to the Bar component\n * @param defaultValue default minPointSize\n * @returns minPointSize\n */\nexport var minPointSizeCallback = function minPointSizeCallback(minPointSize) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return (value, index) => {\n if (isNumber(minPointSize)) return minPointSize;\n var isValueNumberOrNil = isNumber(value) || isNullish(value);\n if (isValueNumberOrNil) {\n return minPointSize(value, index);\n }\n !isValueNumberOrNil ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"minPointSize callback function received a value with type of \".concat(typeof value, \". Currently only numbers or null/undefined are supported.\")) : invariant(false) : void 0;\n return defaultValue;\n };\n};","import { useAppDispatch } from '../state/hooks';\nimport { mouseLeaveItem, setActiveClickItemIndex, setActiveMouseOverItemIndex } from '../state/tooltipSlice';\nexport var useMouseEnterItemDispatch = (onMouseEnterFromProps, dataKey) => {\n var dispatch = useAppDispatch();\n return (data, index) => event => {\n onMouseEnterFromProps === null || onMouseEnterFromProps === void 0 || onMouseEnterFromProps(data, index, event);\n dispatch(setActiveMouseOverItemIndex({\n activeIndex: String(index),\n activeDataKey: dataKey,\n activeCoordinate: data.tooltipPosition\n }));\n };\n};\nexport var useMouseLeaveItemDispatch = onMouseLeaveFromProps => {\n var dispatch = useAppDispatch();\n return (data, index) => event => {\n onMouseLeaveFromProps === null || onMouseLeaveFromProps === void 0 || onMouseLeaveFromProps(data, index, event);\n dispatch(mouseLeaveItem());\n };\n};\nexport var useMouseClickItemDispatch = (onMouseClickFromProps, dataKey) => {\n var dispatch = useAppDispatch();\n return (data, index) => event => {\n onMouseClickFromProps === null || onMouseClickFromProps === void 0 || onMouseClickFromProps(data, index, event);\n dispatch(setActiveClickItemIndex({\n activeIndex: String(index),\n activeDataKey: dataKey,\n activeCoordinate: data.tooltipPosition\n }));\n };\n};","import { useLayoutEffect } from 'react';\nimport { useAppDispatch } from './hooks';\nimport { addTooltipEntrySettings, removeTooltipEntrySettings } from './tooltipSlice';\nimport { useIsPanorama } from '../context/PanoramaContext';\nexport function SetTooltipEntrySettings(_ref) {\n var {\n fn,\n args\n } = _ref;\n var dispatch = useAppDispatch();\n var isPanorama = useIsPanorama();\n useLayoutEffect(() => {\n if (isPanorama) {\n // Panorama graphical items should never contribute to Tooltip payload.\n return undefined;\n }\n var tooltipEntrySettings = fn(args);\n dispatch(addTooltipEntrySettings(tooltipEntrySettings));\n return () => {\n dispatch(removeTooltipEntrySettings(tooltipEntrySettings));\n };\n }, [fn, args, dispatch, isPanorama]);\n return null;\n}","var _excluded = [\"children\"];\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; }\nimport * as React from 'react';\nimport { createContext, useContext, useEffect, useRef } from 'react';\nimport { addErrorBar, removeErrorBar, replaceErrorBar } from '../state/errorBarSlice';\nimport { useAppDispatch } from '../state/hooks';\nimport { useGraphicalItemId } from './RegisterGraphicalItemId';\nvar initialContextState = {\n data: [],\n xAxisId: 'xAxis-0',\n yAxisId: 'yAxis-0',\n dataPointFormatter: () => ({\n x: 0,\n y: 0,\n value: 0\n }),\n errorBarOffset: 0\n};\nvar ErrorBarContext = /*#__PURE__*/createContext(initialContextState);\nexport function SetErrorBarContext(props) {\n var {\n children\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(ErrorBarContext.Provider, {\n value: rest\n }, children);\n}\nexport var useErrorBarContext = () => useContext(ErrorBarContext);\nexport function ReportErrorBarSettings(props) {\n var dispatch = useAppDispatch();\n var graphicalItemId = useGraphicalItemId();\n var prevPropsRef = useRef(null);\n useEffect(() => {\n if (graphicalItemId == null) {\n // ErrorBar outside a graphical item context does not do anything.\n return;\n }\n if (prevPropsRef.current === null) {\n dispatch(addErrorBar({\n itemId: graphicalItemId,\n errorBar: props\n }));\n } else if (prevPropsRef.current !== props) {\n dispatch(replaceErrorBar({\n itemId: graphicalItemId,\n prev: prevPropsRef.current,\n next: props\n }));\n }\n prevPropsRef.current = props;\n }, [dispatch, graphicalItemId, props]);\n useEffect(() => {\n return () => {\n if (prevPropsRef.current != null && graphicalItemId != null) {\n dispatch(removeErrorBar({\n itemId: graphicalItemId,\n errorBar: prevPropsRef.current\n }));\n prevPropsRef.current = null;\n }\n };\n }, [dispatch, graphicalItemId]);\n return null;\n}","import * as React from 'react';\nimport { useAppSelector } from '../state/hooks';\nimport { implicitXAxis, implicitYAxis, selectXAxisSettings, selectYAxisSettings } from '../state/selectors/axisSelectors';\nimport { usePlotArea } from '../hooks';\nexport function useNeedsClip(xAxisId, yAxisId) {\n var _xAxis$allowDataOverf, _yAxis$allowDataOverf;\n var xAxis = useAppSelector(state => selectXAxisSettings(state, xAxisId));\n var yAxis = useAppSelector(state => selectYAxisSettings(state, yAxisId));\n var needClipX = (_xAxis$allowDataOverf = xAxis === null || xAxis === void 0 ? void 0 : xAxis.allowDataOverflow) !== null && _xAxis$allowDataOverf !== void 0 ? _xAxis$allowDataOverf : implicitXAxis.allowDataOverflow;\n var needClipY = (_yAxis$allowDataOverf = yAxis === null || yAxis === void 0 ? void 0 : yAxis.allowDataOverflow) !== null && _yAxis$allowDataOverf !== void 0 ? _yAxis$allowDataOverf : implicitYAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n return {\n needClip,\n needClipX,\n needClipY\n };\n}\nexport function GraphicalItemClipPath(_ref) {\n var {\n xAxisId,\n yAxisId,\n clipPathId\n } = _ref;\n var plotArea = usePlotArea();\n var {\n needClipX,\n needClipY,\n needClip\n } = useNeedsClip(xAxisId, yAxisId);\n if (!needClip || !plotArea) {\n return null;\n }\n var {\n x,\n y,\n width,\n height\n } = plotArea;\n return /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? x : x - width / 2,\n y: needClipY ? y : y - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n }));\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 { createSelector } from 'reselect';\nimport { selectAxisWithScale, selectCartesianAxisSize, selectStackGroups, selectTicksOfGraphicalItem, selectUnfilteredCartesianItems } from './axisSelectors';\nimport { getPercentValue, isNullish } from '../../util/DataUtils';\nimport { getBandSizeOfAxis } from '../../util/ChartUtils';\nimport { computeBarRectangles } from '../../cartesian/Bar';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { selectChartDataWithIndexesIfNotInPanorama } from './dataSelectors';\nimport { selectAxisViewBox, selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { selectBarCategoryGap, selectBarGap, selectRootBarSize, selectRootMaxBarSize } from './rootPropsSelectors';\nimport { isWellBehavedNumber } from '../../util/isWellBehavedNumber';\nimport { getStackSeriesIdentifier } from '../../util/stacks/getStackSeriesIdentifier';\nimport { isStacked } from '../types/StackedGraphicalItem';\nvar pickXAxisId = (_state, xAxisId) => xAxisId;\nvar pickYAxisId = (_state, _xAxisId, yAxisId) => yAxisId;\nvar pickIsPanorama = (_state, _xAxisId, _yAxisId, isPanorama) => isPanorama;\nvar pickBarId = (_state, _xAxisId, _yAxisId, _isPanorama, id) => id;\nvar selectSynchronisedBarSettings = createSelector([selectUnfilteredCartesianItems, pickBarId], (graphicalItems, id) => graphicalItems.filter(item => item.type === 'bar').find(item => item.id === id));\nexport var selectMaxBarSize = createSelector([selectSynchronisedBarSettings], barSettings => barSettings === null || barSettings === void 0 ? void 0 : barSettings.maxBarSize);\nvar pickCells = (_state, _xAxisId, _yAxisId, _isPanorama, _id, cells) => cells;\nvar getBarSize = (globalSize, totalSize, selfSize) => {\n var barSize = selfSize !== null && selfSize !== void 0 ? selfSize : globalSize;\n if (isNullish(barSize)) {\n return undefined;\n }\n return getPercentValue(barSize, totalSize, 0);\n};\nexport var selectAllVisibleBars = createSelector([selectChartLayout, selectUnfilteredCartesianItems, pickXAxisId, pickYAxisId, pickIsPanorama], (layout, allItems, xAxisId, yAxisId, isPanorama) => allItems.filter(i => {\n if (layout === 'horizontal') {\n return i.xAxisId === xAxisId;\n }\n return i.yAxisId === yAxisId;\n}).filter(i => i.isPanorama === isPanorama).filter(i => i.hide === false).filter(i => i.type === 'bar'));\nvar selectBarStackGroups = (state, xAxisId, yAxisId, isPanorama) => {\n var layout = selectChartLayout(state);\n if (layout === 'horizontal') {\n return selectStackGroups(state, 'yAxis', yAxisId, isPanorama);\n }\n return selectStackGroups(state, 'xAxis', xAxisId, isPanorama);\n};\nexport var selectBarCartesianAxisSize = (state, xAxisId, yAxisId) => {\n var layout = selectChartLayout(state);\n if (layout === 'horizontal') {\n return selectCartesianAxisSize(state, 'xAxis', xAxisId);\n }\n return selectCartesianAxisSize(state, 'yAxis', yAxisId);\n};\nexport var combineBarSizeList = (allBars, globalSize, totalSize) => {\n var initialValue = {};\n var stackedBars = allBars.filter(isStacked);\n var unstackedBars = allBars.filter(b => b.stackId == null);\n var groupByStack = stackedBars.reduce((acc, bar) => {\n if (!acc[bar.stackId]) {\n acc[bar.stackId] = [];\n }\n acc[bar.stackId].push(bar);\n return acc;\n }, initialValue);\n var stackedSizeList = Object.entries(groupByStack).map(_ref => {\n var [stackId, bars] = _ref;\n var dataKeys = bars.map(b => b.dataKey);\n var barSize = getBarSize(globalSize, totalSize, bars[0].barSize);\n return {\n stackId,\n dataKeys,\n barSize\n };\n });\n var unstackedSizeList = unstackedBars.map(b => {\n var dataKeys = [b.dataKey].filter(dk => dk != null);\n var barSize = getBarSize(globalSize, totalSize, b.barSize);\n return {\n stackId: undefined,\n dataKeys,\n barSize\n };\n });\n return [...stackedSizeList, ...unstackedSizeList];\n};\nexport var selectBarSizeList = createSelector([selectAllVisibleBars, selectRootBarSize, selectBarCartesianAxisSize], combineBarSizeList);\nexport var selectBarBandSize = (state, xAxisId, yAxisId, isPanorama, id) => {\n var _ref2, _getBandSizeOfAxis;\n var barSettings = selectSynchronisedBarSettings(state, xAxisId, yAxisId, isPanorama, id);\n if (barSettings == null) {\n return undefined;\n }\n var layout = selectChartLayout(state);\n var globalMaxBarSize = selectRootMaxBarSize(state);\n var {\n maxBarSize: childMaxBarSize\n } = barSettings;\n var maxBarSize = isNullish(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var axis, ticks;\n if (layout === 'horizontal') {\n axis = selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\n ticks = selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\n } else {\n axis = selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\n ticks = selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\n }\n return (_ref2 = (_getBandSizeOfAxis = getBandSizeOfAxis(axis, ticks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref2 !== void 0 ? _ref2 : 0;\n};\nexport var selectAxisBandSize = (state, xAxisId, yAxisId, isPanorama) => {\n var layout = selectChartLayout(state);\n var axis, ticks;\n if (layout === 'horizontal') {\n axis = selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\n ticks = selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\n } else {\n axis = selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\n ticks = selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\n }\n return getBandSizeOfAxis(axis, ticks);\n};\nfunction getBarPositions(barGap, barCategoryGap, bandSize, sizeList, maxBarSize) {\n var len = sizeList.length;\n if (len < 1) {\n return undefined;\n }\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result;\n var initialValue = [];\n\n // whether is barSize set by user\n // Okay but why does it check only for the first element? What if the first element is set but others are not?\n if (isWellBehavedNumber(sizeList[0].barSize)) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n var sum = sizeList.reduce((res, entry) => res + (entry.barSize || 0), 0);\n sum += (len - 1) * realBarGap;\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce((res, entry) => {\n var _entry$barSize;\n var newPosition = {\n stackId: entry.stackId,\n dataKeys: entry.dataKeys,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n size: useFull ? fullBarSize : (_entry$barSize = entry.barSize) !== null && _entry$barSize !== void 0 ? _entry$barSize : 0\n }\n };\n var newRes = [...res, newPosition];\n prev = newRes[newRes.length - 1].position;\n return newRes;\n }, initialValue);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n var size = isWellBehavedNumber(maxBarSize) ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce((res, entry, i) => [...res, {\n stackId: entry.stackId,\n dataKeys: entry.dataKeys,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size\n }\n }], initialValue);\n }\n return result;\n}\nexport var combineAllBarPositions = (sizeList, globalMaxBarSize, barGap, barCategoryGap, barBandSize, bandSize, childMaxBarSize) => {\n var maxBarSize = isNullish(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var allBarPositions = getBarPositions(barGap, barCategoryGap, barBandSize !== bandSize ? barBandSize : bandSize, sizeList, maxBarSize);\n if (barBandSize !== bandSize && allBarPositions != null) {\n allBarPositions = allBarPositions.map(pos => _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n }));\n }\n return allBarPositions;\n};\nexport var selectAllBarPositions = createSelector([selectBarSizeList, selectRootMaxBarSize, selectBarGap, selectBarCategoryGap, selectBarBandSize, selectAxisBandSize, selectMaxBarSize], combineAllBarPositions);\nvar selectXAxisWithScale = (state, xAxisId, _yAxisId, isPanorama) => selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\nvar selectYAxisWithScale = (state, _xAxisId, yAxisId, isPanorama) => selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\nvar selectXAxisTicks = (state, xAxisId, _yAxisId, isPanorama) => selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\nvar selectYAxisTicks = (state, _xAxisId, yAxisId, isPanorama) => selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\nexport var selectBarPosition = createSelector([selectAllBarPositions, selectSynchronisedBarSettings], (allBarPositions, barSettings) => {\n if (allBarPositions == null || barSettings == null) {\n return undefined;\n }\n var position = allBarPositions.find(p => p.stackId === barSettings.stackId && barSettings.dataKey != null && p.dataKeys.includes(barSettings.dataKey));\n if (position == null) {\n return undefined;\n }\n return position.position;\n});\nexport var combineStackedData = (stackGroups, barSettings) => {\n var stackSeriesIdentifier = getStackSeriesIdentifier(barSettings);\n if (!stackGroups || stackSeriesIdentifier == null || barSettings == null) {\n return undefined;\n }\n var {\n stackId\n } = barSettings;\n if (stackId == null) {\n return undefined;\n }\n var stackGroup = stackGroups[stackId];\n if (!stackGroup) {\n return undefined;\n }\n var {\n stackedData\n } = stackGroup;\n if (!stackedData) {\n return undefined;\n }\n return stackedData.find(sd => sd.key === stackSeriesIdentifier);\n};\nvar selectStackedDataOfItem = createSelector([selectBarStackGroups, selectSynchronisedBarSettings], combineStackedData);\nexport var selectBarRectangles = createSelector([selectChartOffsetInternal, selectAxisViewBox, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks, selectBarPosition, selectChartLayout, selectChartDataWithIndexesIfNotInPanorama, selectAxisBandSize, selectStackedDataOfItem, selectSynchronisedBarSettings, pickCells], (offset, axisViewBox, xAxis, yAxis, xAxisTicks, yAxisTicks, pos, layout, _ref3, bandSize, stackedData, barSettings, cells) => {\n var {\n chartData,\n dataStartIndex,\n dataEndIndex\n } = _ref3;\n if (barSettings == null || pos == null || axisViewBox == null || layout !== 'horizontal' && layout !== 'vertical' || xAxis == null || yAxis == null || xAxisTicks == null || yAxisTicks == null || bandSize == null) {\n return undefined;\n }\n var {\n data\n } = barSettings;\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 computeBarRectangles({\n layout,\n barSettings,\n pos,\n parentViewBox: axisViewBox,\n bandSize,\n xAxis,\n yAxis,\n xAxisTicks,\n yAxisTicks,\n stackedData,\n displayedData,\n offset,\n cells,\n dataStartIndex\n });\n});","import { useLayoutEffect } from 'react';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { selectChartLayout } from '../context/chartLayoutContext';\nimport { useAppDispatch, useAppSelector } from './hooks';\nimport { addLegendPayload, removeLegendPayload } from './legendSlice';\nimport { noop } from '../util/DataUtils';\nexport function SetLegendPayload(_ref) {\n var {\n legendPayload\n } = _ref;\n var dispatch = useAppDispatch();\n var isPanorama = useIsPanorama();\n useLayoutEffect(() => {\n if (isPanorama) {\n return noop;\n }\n dispatch(addLegendPayload(legendPayload));\n return () => {\n dispatch(removeLegendPayload(legendPayload));\n };\n }, [dispatch, isPanorama, legendPayload]);\n return null;\n}\nexport function SetPolarLegendPayload(_ref2) {\n var {\n legendPayload\n } = _ref2;\n var dispatch = useAppDispatch();\n var layout = useAppSelector(selectChartLayout);\n useLayoutEffect(() => {\n if (layout !== 'centric' && layout !== 'radial') {\n return noop;\n }\n dispatch(addLegendPayload(legendPayload));\n return () => {\n dispatch(removeLegendPayload(legendPayload));\n };\n }, [dispatch, layout, legendPayload]);\n return null;\n}","import * as React from 'react';\nimport { createContext, useContext } from 'react';\nimport { useUniqueId } from '../util/useUniqueId';\nvar GraphicalItemIdContext = /*#__PURE__*/createContext(undefined);\nexport var RegisterGraphicalItemId = _ref => {\n var {\n id,\n type,\n children\n } = _ref;\n var resolvedId = useUniqueId(\"recharts-\".concat(type), id);\n return /*#__PURE__*/React.createElement(GraphicalItemIdContext.Provider, {\n value: resolvedId\n }, children(resolvedId));\n};\nexport function useGraphicalItemId() {\n return useContext(GraphicalItemIdContext);\n}","import { useLayoutEffect, useRef } from 'react';\nimport { useAppDispatch } from './hooks';\nimport { addCartesianGraphicalItem, addPolarGraphicalItem, removeCartesianGraphicalItem, removePolarGraphicalItem, replaceCartesianGraphicalItem } from './graphicalItemsSlice';\nexport function SetCartesianGraphicalItem(props) {\n var dispatch = useAppDispatch();\n var prevPropsRef = useRef(null);\n useLayoutEffect(() => {\n if (prevPropsRef.current === null) {\n dispatch(addCartesianGraphicalItem(props));\n } else if (prevPropsRef.current !== props) {\n dispatch(replaceCartesianGraphicalItem({\n prev: prevPropsRef.current,\n next: props\n }));\n }\n prevPropsRef.current = props;\n }, [dispatch, props]);\n useLayoutEffect(() => {\n return () => {\n if (prevPropsRef.current) {\n dispatch(removeCartesianGraphicalItem(prevPropsRef.current));\n /*\n * Here we have to reset the ref to null because in StrictMode, the effect will run twice,\n * but it will keep the same ref value from the first render.\n *\n * In browser, React will clear the ref after the first effect cleanup,\n * so that wouldn't be an issue.\n *\n * In StrictMode, however, the ref is kept,\n * and in the hook above the code checks for `prevPropsRef.current === null`\n * which would be false so it would not dispatch the `addCartesianGraphicalItem` action again.\n *\n * https://github.com/recharts/recharts/issues/6022\n */\n prevPropsRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n}\nexport function SetPolarGraphicalItem(props) {\n var dispatch = useAppDispatch();\n useLayoutEffect(() => {\n dispatch(addPolarGraphicalItem(props));\n return () => {\n dispatch(removePolarGraphicalItem(props));\n };\n }, [dispatch, props]);\n return null;\n}","var _excluded = [\"onMouseEnter\", \"onMouseLeave\", \"onClick\"],\n _excluded2 = [\"value\", \"background\", \"tooltipPosition\"],\n _excluded3 = [\"id\"],\n _excluded4 = [\"onMouseEnter\", \"onClick\", \"onMouseLeave\"];\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); }\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 _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; }\nimport * as React from 'react';\nimport { PureComponent, useCallback, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Cell } from '../component/Cell';\nimport { CartesianLabelListContextProvider, LabelListFromLabelProp } from '../component/LabelList';\nimport { interpolate, isNan, mathSign } from '../util/DataUtils';\nimport { findAllByType } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getBaseValueOfBar, getCateCoordinateOfBar, getNormalizedStackId, getTooltipNameProp, getValueByDataKey, truncateByDomain } from '../util/ChartUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { BarRectangle, minPointSizeCallback } from '../util/BarUtils';\nimport { useMouseClickItemDispatch, useMouseEnterItemDispatch, useMouseLeaveItemDispatch } from '../context/tooltipContext';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { SetErrorBarContext } from '../context/ErrorBarContext';\nimport { GraphicalItemClipPath, useNeedsClip } from './GraphicalItemClipPath';\nimport { useChartLayout } from '../context/chartLayoutContext';\nimport { selectBarRectangles } from '../state/selectors/barSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { selectActiveTooltipDataKey, selectActiveTooltipIndex } from '../state/selectors/tooltipSelectors';\nimport { SetLegendPayload } from '../state/SetLegendPayload';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { SetCartesianGraphicalItem } from '../state/SetGraphicalItem';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { getZIndexFromUnknown } from '../zIndex/getZIndexFromUnknown';\nvar computeLegendPayloadFromBarData = props => {\n var {\n dataKey,\n name,\n fill,\n legendType,\n hide\n } = props;\n return [{\n inactive: hide,\n dataKey,\n type: legendType,\n color: fill,\n value: getTooltipNameProp(name, dataKey),\n payload: props\n }];\n};\nfunction getTooltipEntrySettings(props) {\n var {\n dataKey,\n stroke,\n strokeWidth,\n fill,\n name,\n hide,\n unit\n } = props;\n return {\n dataDefinedOnItem: undefined,\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.fill,\n unit\n }\n };\n}\nfunction BarBackground(props) {\n var activeIndex = useAppSelector(selectActiveTooltipIndex);\n var {\n data,\n dataKey,\n background: backgroundFromProps,\n allOtherBarProps\n } = props;\n var {\n onMouseEnter: onMouseEnterFromProps,\n onMouseLeave: onMouseLeaveFromProps,\n onClick: onItemClickFromProps\n } = allOtherBarProps,\n restOfAllOtherProps = _objectWithoutProperties(allOtherBarProps, _excluded);\n\n // @ts-expect-error bar mouse events are not compatible with recharts mouse events\n var onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, dataKey);\n // @ts-expect-error bar mouse events are not compatible with recharts mouse events\n var onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);\n // @ts-expect-error bar mouse events are not compatible with recharts mouse events\n var onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, dataKey);\n if (!backgroundFromProps || data == null) {\n return null;\n }\n var backgroundProps = svgPropertiesNoEventsFromUnknown(backgroundFromProps);\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: getZIndexFromUnknown(backgroundFromProps, DefaultZIndexes.barBackground)\n }, data.map((entry, i) => {\n var {\n value,\n background: backgroundFromDataEntry,\n tooltipPosition\n } = entry,\n rest = _objectWithoutProperties(entry, _excluded2);\n if (!backgroundFromDataEntry) {\n return null;\n }\n\n // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!\n var onMouseEnter = onMouseEnterFromContext(entry, i);\n // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!\n var onMouseLeave = onMouseLeaveFromContext(entry, i);\n // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!\n var onClick = onClickFromContext(entry, i);\n var barRectangleProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({\n option: backgroundFromProps,\n isActive: String(i) === activeIndex\n }, rest), {}, {\n // @ts-expect-error backgroundProps is contributing unknown props\n fill: '#eee'\n }, backgroundFromDataEntry), backgroundProps), adaptEventsOfChild(restOfAllOtherProps, entry, i)), {}, {\n onMouseEnter,\n onMouseLeave,\n onClick,\n dataKey,\n index: i,\n className: 'recharts-bar-background-rectangle'\n });\n return /*#__PURE__*/React.createElement(BarRectangle, _extends({\n key: \"background-bar-\".concat(i)\n }, barRectangleProps));\n }));\n}\nfunction BarLabelListProvider(_ref) {\n var {\n showLabels,\n children,\n rects\n } = _ref;\n var labelListEntries = rects === null || rects === void 0 ? void 0 : rects.map(entry => {\n var viewBox = {\n x: entry.x,\n y: entry.y,\n width: entry.width,\n lowerWidth: entry.width,\n upperWidth: entry.width,\n height: entry.height\n };\n return _objectSpread(_objectSpread({}, viewBox), {}, {\n value: entry.value,\n payload: entry.payload,\n parentViewBox: entry.parentViewBox,\n viewBox,\n fill: entry.fill\n });\n });\n return /*#__PURE__*/React.createElement(CartesianLabelListContextProvider, {\n value: showLabels ? labelListEntries : undefined\n }, children);\n}\nfunction BarRectangleWithActiveState(props) {\n var {\n shape,\n activeBar,\n baseProps,\n entry,\n index,\n dataKey\n } = props;\n var activeIndex = useAppSelector(selectActiveTooltipIndex);\n var activeDataKey = useAppSelector(selectActiveTooltipDataKey);\n /*\n * Bars support stacking, meaning that there can be multiple bars at the same x value.\n * With Tooltip shared=false we only want to highlight the currently active Bar, not all.\n *\n * Also, if the tooltip is shared, we want to highlight all bars at the same x value\n * regardless of the dataKey.\n *\n * With shared Tooltip, the activeDataKey is undefined.\n */\n var isActive = activeBar && String(index) === activeIndex && (activeDataKey == null || dataKey === activeDataKey);\n var option = isActive ? activeBar : shape;\n if (isActive) {\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: DefaultZIndexes.activeBar\n }, /*#__PURE__*/React.createElement(BarRectangle, _extends({}, baseProps, {\n name: String(baseProps.name)\n }, entry, {\n isActive: isActive,\n option: option,\n index: index,\n dataKey: dataKey\n })));\n }\n return /*#__PURE__*/React.createElement(BarRectangle, _extends({}, baseProps, {\n name: String(baseProps.name)\n }, entry, {\n isActive: isActive,\n option: option,\n index: index,\n dataKey: dataKey\n }));\n}\nfunction BarRectangleNeverActive(props) {\n var {\n shape,\n baseProps,\n entry,\n index,\n dataKey\n } = props;\n return /*#__PURE__*/React.createElement(BarRectangle, _extends({}, baseProps, {\n name: String(baseProps.name)\n }, entry, {\n isActive: false,\n option: shape,\n index: index,\n dataKey: dataKey\n }));\n}\nfunction BarRectangles(_ref2) {\n var _svgPropertiesNoEvent;\n var {\n data,\n props\n } = _ref2;\n var _ref3 = (_svgPropertiesNoEvent = svgPropertiesNoEvents(props)) !== null && _svgPropertiesNoEvent !== void 0 ? _svgPropertiesNoEvent : {},\n {\n id\n } = _ref3,\n baseProps = _objectWithoutProperties(_ref3, _excluded3);\n var {\n shape,\n dataKey,\n activeBar\n } = props;\n var {\n onMouseEnter: onMouseEnterFromProps,\n onClick: onItemClickFromProps,\n onMouseLeave: onMouseLeaveFromProps\n } = props,\n restOfAllOtherProps = _objectWithoutProperties(props, _excluded4);\n\n // @ts-expect-error bar mouse events are not compatible with recharts mouse events\n var onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, dataKey);\n // @ts-expect-error bar mouse events are not compatible with recharts mouse events\n var onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);\n // @ts-expect-error bar mouse events are not compatible with recharts mouse events\n var onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, dataKey);\n if (!data) {\n return null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, data.map((entry, i) => {\n return /*#__PURE__*/React.createElement(Layer\n // https://github.com/recharts/recharts/issues/5415\n , _extends({\n key: \"rectangle-\".concat(entry === null || entry === void 0 ? void 0 : entry.x, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.y, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.value, \"-\").concat(i),\n className: \"recharts-bar-rectangle\"\n }, adaptEventsOfChild(restOfAllOtherProps, entry, i), {\n // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!\n onMouseEnter: onMouseEnterFromContext(entry, i)\n // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!\n ,\n onMouseLeave: onMouseLeaveFromContext(entry, i)\n // @ts-expect-error BarRectangleItem type definition says it's missing properties, but I can see them present in debugger!\n ,\n onClick: onClickFromContext(entry, i)\n }), activeBar ? /*#__PURE__*/React.createElement(BarRectangleWithActiveState, {\n shape: shape,\n activeBar: activeBar,\n baseProps: baseProps,\n entry: entry,\n index: i,\n dataKey: dataKey\n }) :\n /*#__PURE__*/\n /*\n * If the `activeBar` prop is falsy, then let's call the variant without hooks.\n * Using the `selectActiveTooltipIndex` selector is usually fast\n * but in charts with large-ish amount of data even the few nanoseconds add up to a noticeable jank.\n * If the activeBar is false then we don't need to know which index is active - because we won't use it anyway.\n * So let's just skip the hooks altogether. That way, React can skip rendering the component,\n * and can skip the tree reconciliation for its children too.\n * Because we can't call hooks conditionally, we need to have a separate component for that.\n */\n React.createElement(BarRectangleNeverActive, {\n shape: shape,\n baseProps: baseProps,\n entry: entry,\n index: i,\n dataKey: dataKey\n }));\n }));\n}\nfunction RectanglesWithAnimation(_ref4) {\n var {\n props,\n previousRectanglesRef\n } = _ref4;\n var {\n data,\n layout,\n isAnimationActive,\n animationBegin,\n animationDuration,\n animationEasing,\n onAnimationEnd,\n onAnimationStart\n } = props;\n var prevData = previousRectanglesRef.current;\n var animationId = useAnimationId(props, 'recharts-bar-');\n var [isAnimating, setIsAnimating] = useState(false);\n var showLabels = !isAnimating;\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 return /*#__PURE__*/React.createElement(BarLabelListProvider, {\n showLabels: showLabels,\n rects: data\n }, /*#__PURE__*/React.createElement(JavascriptAnimate, {\n animationId: animationId,\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n onAnimationEnd: handleAnimationEnd,\n onAnimationStart: handleAnimationStart,\n key: animationId\n }, t => {\n var stepData = t === 1 ? data : data === null || data === void 0 ? void 0 : data.map((entry, index) => {\n var prev = prevData && prevData[index];\n if (prev) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolate(prev.x, entry.x, t),\n y: interpolate(prev.y, entry.y, t),\n width: interpolate(prev.width, entry.width, t),\n height: interpolate(prev.height, entry.height, t)\n });\n }\n if (layout === 'horizontal') {\n var height = interpolate(0, entry.height, t);\n var y = interpolate(entry.stackedBarStart, entry.y, t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n y,\n height\n });\n }\n var w = interpolate(0, entry.width, t);\n var x = interpolate(entry.stackedBarStart, entry.x, t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n width: w,\n x\n });\n });\n if (t > 0) {\n // eslint-disable-next-line no-param-reassign\n previousRectanglesRef.current = stepData !== null && stepData !== void 0 ? stepData : null;\n }\n if (stepData == null) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(BarRectangles, {\n props: props,\n data: stepData\n }));\n }), /*#__PURE__*/React.createElement(LabelListFromLabelProp, {\n label: props.label\n }), props.children);\n}\nfunction RenderRectangles(props) {\n var previousRectanglesRef = useRef(null);\n return /*#__PURE__*/React.createElement(RectanglesWithAnimation, {\n previousRectanglesRef: previousRectanglesRef,\n props: props\n });\n}\nvar defaultMinPointSize = 0;\nvar errorBarDataPointFormatter = (dataPoint, dataKey) => {\n /**\n * if the value coming from `selectBarRectangles` is an array then this is a stacked bar chart.\n * arr[1] represents end value of the bar since the data is in the form of [startValue, endValue].\n * */\n var value = Array.isArray(dataPoint.value) ? dataPoint.value[1] : dataPoint.value;\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value,\n // @ts-expect-error getValueByDataKey does not validate the output type\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n};\nclass BarWithState extends PureComponent {\n render() {\n var {\n hide,\n data,\n dataKey,\n className,\n xAxisId,\n yAxisId,\n needClip,\n background,\n id\n } = this.props;\n if (hide || data == null) {\n return null;\n }\n var layerClass = clsx('recharts-bar', className);\n var clipPathId = id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n id: id\n }, needClip && /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(GraphicalItemClipPath, {\n clipPathId: clipPathId,\n xAxisId: xAxisId,\n yAxisId: yAxisId\n })), /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : undefined\n }, /*#__PURE__*/React.createElement(BarBackground, {\n data: data,\n dataKey: dataKey,\n background: background,\n allOtherBarProps: this.props\n }), /*#__PURE__*/React.createElement(RenderRectangles, this.props)));\n }\n}\nvar defaultBarProps = {\n activeBar: false,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease',\n hide: false,\n isAnimationActive: !Global.isSsr,\n legendType: 'rect',\n minPointSize: defaultMinPointSize,\n xAxisId: 0,\n yAxisId: 0,\n zIndex: DefaultZIndexes.bar\n};\nfunction BarImpl(props) {\n var {\n xAxisId,\n yAxisId,\n hide,\n legendType,\n minPointSize,\n activeBar,\n animationBegin,\n animationDuration,\n animationEasing,\n isAnimationActive\n } = props;\n var {\n needClip\n } = useNeedsClip(xAxisId, yAxisId);\n var layout = useChartLayout();\n var isPanorama = useIsPanorama();\n var cells = findAllByType(props.children, Cell);\n var rects = useAppSelector(state => selectBarRectangles(state, xAxisId, yAxisId, isPanorama, props.id, cells));\n if (layout !== 'vertical' && layout !== 'horizontal') {\n return null;\n }\n var errorBarOffset;\n var firstDataPoint = rects === null || rects === void 0 ? void 0 : rects[0];\n if (firstDataPoint == null || firstDataPoint.height == null || firstDataPoint.width == null) {\n errorBarOffset = 0;\n } else {\n errorBarOffset = layout === 'vertical' ? firstDataPoint.height / 2 : firstDataPoint.width / 2;\n }\n return /*#__PURE__*/React.createElement(SetErrorBarContext, {\n xAxisId: xAxisId,\n yAxisId: yAxisId,\n data: rects,\n dataPointFormatter: errorBarDataPointFormatter,\n errorBarOffset: errorBarOffset\n }, /*#__PURE__*/React.createElement(BarWithState, _extends({}, props, {\n layout: layout,\n needClip: needClip,\n data: rects,\n xAxisId: xAxisId,\n yAxisId: yAxisId,\n hide: hide,\n legendType: legendType,\n minPointSize: minPointSize,\n activeBar: activeBar,\n animationBegin: animationBegin,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n isAnimationActive: isAnimationActive\n })));\n}\nexport function computeBarRectangles(_ref5) {\n var {\n layout,\n barSettings: {\n dataKey,\n minPointSize: minPointSizeProp\n },\n pos,\n bandSize,\n xAxis,\n yAxis,\n xAxisTicks,\n yAxisTicks,\n stackedData,\n displayedData,\n offset,\n cells,\n parentViewBox,\n dataStartIndex\n } = _ref5;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n // @ts-expect-error this assumes that the domain is always numeric, but doesn't check for it\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis\n });\n var stackedBarStart = numericAxis.scale(baseValue);\n return displayedData.map((entry, index) => {\n var value, x, y, width, height, background;\n if (stackedData) {\n // Use dataStartIndex to access the correct element in the full stackedData array\n value = truncateByDomain(stackedData[index + dataStartIndex], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!Array.isArray(value)) {\n value = [baseValue, value];\n }\n }\n var minPointSize = minPointSizeCallback(minPointSizeProp, defaultMinPointSize)(value[1], index);\n if (layout === 'horizontal') {\n var _ref6;\n var [baseValueScale, currentValueScale] = [yAxis.scale(value[0]), yAxis.scale(value[1])];\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize,\n offset: pos.offset,\n entry,\n index\n });\n y = (_ref6 = currentValueScale !== null && currentValueScale !== void 0 ? currentValueScale : baseValueScale) !== null && _ref6 !== void 0 ? _ref6 : undefined;\n width = pos.size;\n var computedHeight = baseValueScale - currentValueScale;\n height = isNan(computedHeight) ? 0 : computedHeight;\n background = {\n x,\n y: offset.top,\n width,\n height: offset.height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n var [_baseValueScale, _currentValueScale] = [xAxis.scale(value[0]), xAxis.scale(value[1])];\n x = _baseValueScale;\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize,\n offset: pos.offset,\n entry,\n index\n });\n width = _currentValueScale - _baseValueScale;\n height = pos.size;\n background = {\n x: offset.left,\n y,\n width: offset.width,\n height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n width += _delta;\n }\n }\n if (x == null || y == null || width == null || height == null) {\n return null;\n }\n var barRectangleItem = _objectSpread(_objectSpread({}, entry), {}, {\n stackedBarStart,\n x,\n y,\n width,\n height,\n value: stackedData ? value : value[1],\n payload: entry,\n background,\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n },\n parentViewBox\n }, cells && cells[index] && cells[index].props);\n return barRectangleItem;\n }).filter(Boolean);\n}\nfunction BarFn(outsideProps) {\n var props = resolveDefaultProps(outsideProps, defaultBarProps);\n var isPanorama = useIsPanorama();\n // Report all props to Redux store first, before calling any hooks, to avoid circular dependencies.\n return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {\n id: props.id,\n type: \"bar\"\n }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetLegendPayload, {\n legendPayload: computeLegendPayloadFromBarData(props)\n }), /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {\n fn: getTooltipEntrySettings,\n args: props\n }), /*#__PURE__*/React.createElement(SetCartesianGraphicalItem, {\n type: \"bar\",\n id: id\n // Bar does not allow setting data directly on the graphical item (why?)\n ,\n data: undefined,\n xAxisId: props.xAxisId,\n yAxisId: props.yAxisId,\n zAxisId: 0,\n dataKey: props.dataKey,\n stackId: getNormalizedStackId(props.stackId),\n hide: props.hide,\n barSize: props.barSize,\n minPointSize: props.minPointSize,\n maxBarSize: props.maxBarSize,\n isPanorama: isPanorama\n }), /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(BarImpl, _extends({}, props, {\n id: id\n })))));\n}\nexport var Bar = /*#__PURE__*/React.memo(BarFn);\nBar.displayName = 'Bar';","import { isWellBehavedNumber } from '../util/isWellBehavedNumber';\nexport function getZIndexFromUnknown(input, defaultZIndex) {\n if (input && typeof input === 'object' && 'zIndex' in input && typeof input.zIndex === 'number' && isWellBehavedNumber(input.zIndex)) {\n return input.zIndex;\n }\n return defaultZIndex;\n}","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isTypedArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n\nexports.isTypedArray = isTypedArray;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isIndex = require('./isIndex.js');\nconst isArrayLike = require('../predicate/isArrayLike.js');\nconst isObject = require('../predicate/isObject.js');\nconst eq = require('../util/eq.js');\n\nfunction isIterateeCall(value, index, object) {\n if (!isObject.isObject(object)) {\n return false;\n }\n if ((typeof index === 'number' && isArrayLike.isArrayLike(object) && isIndex.isIndex(index) && index < object.length) ||\n (typeof index === 'string' && index in object)) {\n return eq.eq(object[index], value);\n }\n return false;\n}\n\nexports.isIterateeCall = isIterateeCall;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isMatch = require('./isMatch.js');\nconst cloneDeep = require('../../object/cloneDeep.js');\n\nfunction matches(source) {\n source = cloneDeep.cloneDeep(source);\n return (target) => {\n return isMatch.isMatch(target, source);\n };\n}\n\nexports.matches = matches;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","module.exports = require('../dist/compat/array/sortBy.js').sortBy;\n","export var selectChartWidth = state => state.layout.width;\nexport var selectChartHeight = state => state.layout.height;\nexport var selectContainerScale = state => state.layout.scale;\nexport var selectMargin = state => state.layout.margin;","/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nexport function formatProdErrorMessage(code: number) {\n return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or ` + 'use the non-minified dev environment for full errors. ';\n}","declare global {\n interface SymbolConstructor {\n readonly observable: symbol;\n }\n}\nconst $$observable = /* #__PURE__ */(() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\nexport default $$observable;","/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\n\nconst randomString = () => Math.random().toString(36).substring(7).split('').join('.');\nconst ActionTypes = {\n INIT: `@@redux/INIT${/* #__PURE__ */randomString()}`,\n REPLACE: `@@redux/REPLACE${/* #__PURE__ */randomString()}`,\n PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`\n};\nexport default ActionTypes;","/**\n * @param obj The object to inspect.\n * @returns True if the argument appears to be a plain object.\n */\nexport default function isPlainObject(obj: any): obj is object {\n if (typeof obj !== 'object' || obj === null) return false;\n let proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;\n}","import { formatProdErrorMessage as _formatProdErrorMessage13 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage12 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage11 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage10 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage9 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage8 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage7 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage6 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage5 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage4 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage3 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport $$observable from './utils/symbol-observable';\nimport { Store, StoreEnhancer, Dispatch, Observer, ListenerCallback, UnknownIfNonSpecific } from './types/store';\nimport { Action } from './types/actions';\nimport { Reducer } from './types/reducers';\nimport ActionTypes from './utils/actionTypes';\nimport isPlainObject from './utils/isPlainObject';\nimport { kindOf } from './utils/kindOf';\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\nexport function createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}>(reducer: Reducer<S, A>, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\nexport function createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A, PreloadedState>, preloadedState?: PreloadedState | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\nexport function createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A, PreloadedState>, preloadedState?: PreloadedState | StoreEnhancer<Ext, StateExt> | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext {\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);\n }\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = (preloadedState as StoreEnhancer<Ext, StateExt>);\n preloadedState = undefined;\n }\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(1) : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);\n }\n return enhancer(createStore)(reducer, (preloadedState as PreloadedState | undefined));\n }\n let currentReducer = reducer;\n let currentState: S | PreloadedState | undefined = (preloadedState as PreloadedState | undefined);\n let currentListeners: Map<number, ListenerCallback> | null = new Map();\n let nextListeners = currentListeners;\n let listenerIdCounter = 0;\n let isDispatching = false;\n\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = new Map();\n currentListeners.forEach((listener, key) => {\n nextListeners.set(key, listener);\n });\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns The current state tree of your application.\n */\n function getState(): S {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n return (currentState as S);\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param listener A callback to be invoked on every dispatch.\n * @returns A function to remove this change listener.\n */\n function subscribe(listener: () => void) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(4) : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n let isSubscribed = true;\n ensureCanMutateNextListeners();\n const listenerId = listenerIdCounter++;\n nextListeners.set(listenerId, listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n isSubscribed = false;\n ensureCanMutateNextListeners();\n nextListeners.delete(listenerId);\n currentListeners = null;\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action: A) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(7) : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);\n }\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage9(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n if (typeof action.type !== 'string') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage10(17) : `Action \"type\" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage11(9) : 'Reducers may not dispatch actions.');\n }\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n const listeners = currentListeners = nextListeners;\n listeners.forEach(listener => {\n listener();\n });\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param nextReducer The reducer for the store to use instead.\n */\n function replaceReducer(nextReducer: Reducer<S, A>): void {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage12(10) : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);\n }\n currentReducer = ((nextReducer as unknown) as Reducer<S, A, PreloadedState>);\n\n // This action has a similar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n dispatch(({\n type: ActionTypes.REPLACE\n } as A));\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n function observable() {\n const outerSubscribe = subscribe;\n return {\n /**\n * The minimal observable subscription method.\n * @param observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe(observer: unknown) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage13(11) : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);\n }\n function observeState() {\n const observerAsObserver = (observer as Observer<S>);\n if (observerAsObserver.next) {\n observerAsObserver.next(getState());\n }\n }\n observeState();\n const unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe\n };\n },\n [$$observable]() {\n return this;\n }\n };\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch(({\n type: ActionTypes.INIT\n } as A));\n const store = (({\n dispatch: (dispatch as Dispatch<A>),\n subscribe,\n getState,\n replaceReducer,\n [$$observable]: observable\n } as unknown) as Store<S, A, StateExt> & Ext);\n return store;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nexport function legacy_createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}>(reducer: Reducer<S, A>, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nexport function legacy_createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A, PreloadedState>, preloadedState?: PreloadedState | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\nexport function legacy_createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A>, preloadedState?: PreloadedState | StoreEnhancer<Ext, StateExt> | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext {\n return createStore(reducer, (preloadedState as any), enhancer);\n}","import { formatProdErrorMessage as _formatProdErrorMessage3 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport { Action } from './types/actions';\nimport { ActionFromReducersMapObject, PreloadedStateShapeFromReducersMapObject, Reducer, StateFromReducersMapObject } from './types/reducers';\nimport ActionTypes from './utils/actionTypes';\nimport isPlainObject from './utils/isPlainObject';\nimport warning from './utils/warning';\nimport { kindOf } from './utils/kindOf';\nfunction getUnexpectedStateShapeWarningMessage(inputState: object, reducers: {\n [key: string]: Reducer<any, any, any>;\n}, action: Action, unexpectedKeyCache: {\n [key: string]: true;\n}) {\n const reducerKeys = Object.keys(reducers);\n const argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n if (!isPlainObject(inputState)) {\n return `The ${argumentName} has unexpected type of \"${kindOf(inputState)}\". Expected argument to be an object with the following ` + `keys: \"${reducerKeys.join('\", \"')}\"`;\n }\n const unexpectedKeys = Object.keys(inputState).filter(key => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);\n unexpectedKeys.forEach(key => {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n if (unexpectedKeys.length > 0) {\n return `Unexpected ${unexpectedKeys.length > 1 ? 'keys' : 'key'} ` + `\"${unexpectedKeys.join('\", \"')}\" found in ${argumentName}. ` + `Expected to find one of the known reducer keys instead: ` + `\"${reducerKeys.join('\", \"')}\". Unexpected keys will be ignored.`;\n }\n}\nfunction assertReducerShape(reducers: {\n [key: string]: Reducer<any, any, any>;\n}) {\n Object.keys(reducers).forEach(key => {\n const reducer = reducers[key];\n const initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(12) : `The slice reducer for key \"${key}\" returned undefined during initialization. ` + `If the state passed to the reducer is undefined, you must ` + `explicitly return the initial state. The initial state may ` + `not be undefined. If you don't want to set a value for this reducer, ` + `you can use null instead of undefined.`);\n }\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(13) : `The slice reducer for key \"${key}\" returned undefined when probed with a random type. ` + `Don't try to handle '${ActionTypes.INIT}' or other actions in \"redux/*\" ` + `namespace. They are considered private. Instead, you must return the ` + `current state for any unknown actions, unless it is undefined, ` + `in which case you must return the initial state, regardless of the ` + `action type. The initial state may not be undefined, but can be null.`);\n }\n });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @template S Combined state object type.\n *\n * @param reducers An object whose values correspond to different reducer\n * functions that need to be combined into one. One handy way to obtain it\n * is to use `import * as reducers` syntax. The reducers may never\n * return undefined for any action. Instead, they should return their\n * initial state if the state passed to them was undefined, and the current\n * state for any unrecognized action.\n *\n * @returns A reducer function that invokes every reducer inside the passed\n * object, and builds a state object with the same shape.\n */\nexport default function combineReducers<M>(reducers: M): M[keyof M] extends Reducer<any, any, any> | undefined ? Reducer<StateFromReducersMapObject<M>, ActionFromReducersMapObject<M>, Partial<PreloadedStateShapeFromReducersMapObject<M>>> : never;\nexport default function combineReducers(reducers: {\n [key: string]: Reducer<any, any, any>;\n}) {\n const reducerKeys = Object.keys(reducers);\n const finalReducers: {\n [key: string]: Reducer<any, any, any>;\n } = {};\n for (let i = 0; i < reducerKeys.length; i++) {\n const key = reducerKeys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(`No reducer provided for key \"${key}\"`);\n }\n }\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n const finalReducerKeys = Object.keys(finalReducers);\n\n // This is used to make sure we don't warn about the same\n // keys multiple times.\n let unexpectedKeyCache: {\n [key: string]: true;\n };\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n let shapeAssertionError: unknown;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n return function combination(state: StateFromReducersMapObject<typeof reducers> = {}, action: Action) {\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n if (process.env.NODE_ENV !== 'production') {\n const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n let hasChanged = false;\n const nextState: StateFromReducersMapObject<typeof reducers> = {};\n for (let i = 0; i < finalReducerKeys.length; i++) {\n const key = finalReducerKeys[i];\n const reducer = finalReducers[key];\n const previousStateForKey = state[key];\n const nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n const actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(14) : `When called with an action of type ${actionType ? `\"${String(actionType)}\"` : '(unknown type)'}, the slice reducer for key \"${key}\" returned undefined. ` + `To ignore an action, you must explicitly return the previous state. ` + `If you want this reducer to hold no value, you can return null instead of undefined.`);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}","type Func<T extends any[], R> = (...a: T) => R;\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for the\n * resulting composite function.\n *\n * @param funcs The functions to compose.\n * @returns A function obtained by composing the argument functions from right\n * to left. For example, `compose(f, g, h)` is identical to doing\n * `(...args) => f(g(h(...args)))`.\n */\nexport default function compose(): <R>(a: R) => R;\nexport default function compose<F extends Function>(f: F): F;\n\n/* two functions */\nexport default function compose<A, T extends any[], R>(f1: (a: A) => R, f2: Func<T, A>): Func<T, R>;\n\n/* three functions */\nexport default function compose<A, B, T extends any[], R>(f1: (b: B) => R, f2: (a: A) => B, f3: Func<T, A>): Func<T, R>;\n\n/* four functions */\nexport default function compose<A, B, C, T extends any[], R>(f1: (c: C) => R, f2: (b: B) => C, f3: (a: A) => B, f4: Func<T, A>): Func<T, R>;\n\n/* rest */\nexport default function compose<R>(f1: (a: any) => R, ...funcs: Function[]): (...args: any[]) => R;\nexport default function compose<R>(...funcs: Function[]): (...args: any[]) => R;\nexport default function compose(...funcs: Function[]) {\n if (funcs.length === 0) {\n // infer the argument type so it is usable in inference down the line\n return <T,>(arg: T) => arg;\n }\n if (funcs.length === 1) {\n return funcs[0];\n }\n return funcs.reduce((a, b) => (...args: any) => a(b(...args)));\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport compose from './compose';\nimport { Middleware, MiddlewareAPI } from './types/middleware';\nimport { StoreEnhancer, Dispatch } from './types/store';\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param middlewares The middleware chain to be applied.\n * @returns A store enhancer applying the middleware.\n *\n * @template Ext Dispatch signature added by a middleware.\n * @template S The type of the state supported by a middleware.\n */\nexport default function applyMiddleware(): StoreEnhancer;\nexport default function applyMiddleware<Ext1, S>(middleware1: Middleware<Ext1, S, any>): StoreEnhancer<{\n dispatch: Ext1;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>): StoreEnhancer<{\n dispatch: Ext1 & Ext2;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, Ext3, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>, middleware3: Middleware<Ext3, S, any>): StoreEnhancer<{\n dispatch: Ext1 & Ext2 & Ext3;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, Ext3, Ext4, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>, middleware3: Middleware<Ext3, S, any>, middleware4: Middleware<Ext4, S, any>): StoreEnhancer<{\n dispatch: Ext1 & Ext2 & Ext3 & Ext4;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, Ext3, Ext4, Ext5, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>, middleware3: Middleware<Ext3, S, any>, middleware4: Middleware<Ext4, S, any>, middleware5: Middleware<Ext5, S, any>): StoreEnhancer<{\n dispatch: Ext1 & Ext2 & Ext3 & Ext4 & Ext5;\n}>;\nexport default function applyMiddleware<Ext, S = any>(...middlewares: Middleware<any, S, any>[]): StoreEnhancer<{\n dispatch: Ext;\n}>;\nexport default function applyMiddleware(...middlewares: Middleware[]): StoreEnhancer<any> {\n return createStore => (reducer, preloadedState) => {\n const store = createStore(reducer, preloadedState);\n let dispatch: Dispatch = () => {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n const middlewareAPI: MiddlewareAPI = {\n getState: store.getState,\n dispatch: (action, ...args) => dispatch(action, ...args)\n };\n const chain = middlewares.map(middleware => middleware(middlewareAPI));\n dispatch = compose<typeof dispatch>(...chain)(store.dispatch);\n return {\n ...store,\n dispatch\n };\n };\n}","import { Action } from '../types/actions';\nimport isPlainObject from './isPlainObject';\nexport default function isAction(action: unknown): action is Action<string> {\n return isPlainObject(action) && 'type' in action && typeof (action as Record<'type', unknown>).type === 'string';\n}","import * as React from 'react';\nimport { createContext, useContext } from 'react';\nvar PanoramaContext = /*#__PURE__*/createContext(null);\nexport var useIsPanorama = () => useContext(PanoramaContext) != null;\nexport var PanoramaContextProvider = _ref => {\n var {\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(PanoramaContext.Provider, {\n value: true\n }, children);\n};","var _excluded = [\"children\", \"className\"];\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); }\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; }\nimport * as React from 'react';\nimport { clsx } from 'clsx';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nexport var Layer = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n children,\n className\n } = props,\n others = _objectWithoutProperties(props, _excluded);\n var layerClass = clsx('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, svgPropertiesAndEvents(others), {\n ref: ref\n }), children);\n});","import { isNan } from './DataUtils';\nvar MULTIPLY_OR_DIVIDE_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([*/])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar ADD_OR_SUBTRACT_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([+-])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar CSS_LENGTH_UNIT_REGEX = /^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/;\nvar NUM_SPLIT_REGEX = /(-?\\d+(?:\\.\\d+)?)([a-zA-Z%]+)?/;\nvar CONVERSION_RATES = {\n cm: 96 / 2.54,\n mm: 96 / 25.4,\n pt: 96 / 72,\n pc: 96 / 6,\n in: 96,\n Q: 96 / (2.54 * 40),\n px: 1\n};\nvar FIXED_CSS_LENGTH_UNITS = Object.keys(CONVERSION_RATES);\nvar STR_NAN = 'NaN';\nfunction convertToPx(value, unit) {\n return value * CONVERSION_RATES[unit];\n}\nclass DecimalCSS {\n static parse(str) {\n var _NUM_SPLIT_REGEX$exec;\n var [, numStr, unit] = (_NUM_SPLIT_REGEX$exec = NUM_SPLIT_REGEX.exec(str)) !== null && _NUM_SPLIT_REGEX$exec !== void 0 ? _NUM_SPLIT_REGEX$exec : [];\n return new DecimalCSS(parseFloat(numStr), unit !== null && unit !== void 0 ? unit : '');\n }\n constructor(num, unit) {\n this.num = num;\n this.unit = unit;\n this.num = num;\n this.unit = unit;\n if (isNan(num)) {\n this.unit = '';\n }\n if (unit !== '' && !CSS_LENGTH_UNIT_REGEX.test(unit)) {\n this.num = NaN;\n this.unit = '';\n }\n if (FIXED_CSS_LENGTH_UNITS.includes(unit)) {\n this.num = convertToPx(num, unit);\n this.unit = 'px';\n }\n }\n add(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num + other.num, this.unit);\n }\n subtract(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num - other.num, this.unit);\n }\n multiply(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num * other.num, this.unit || other.unit);\n }\n divide(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num / other.num, this.unit || other.unit);\n }\n toString() {\n return \"\".concat(this.num).concat(this.unit);\n }\n isNaN() {\n return isNan(this.num);\n }\n}\nfunction calculateArithmetic(expr) {\n if (expr.includes(STR_NAN)) {\n return STR_NAN;\n }\n var newExpr = expr;\n while (newExpr.includes('*') || newExpr.includes('/')) {\n var _MULTIPLY_OR_DIVIDE_R;\n var [, leftOperand, operator, rightOperand] = (_MULTIPLY_OR_DIVIDE_R = MULTIPLY_OR_DIVIDE_REGEX.exec(newExpr)) !== null && _MULTIPLY_OR_DIVIDE_R !== void 0 ? _MULTIPLY_OR_DIVIDE_R : [];\n var lTs = DecimalCSS.parse(leftOperand !== null && leftOperand !== void 0 ? leftOperand : '');\n var rTs = DecimalCSS.parse(rightOperand !== null && rightOperand !== void 0 ? rightOperand : '');\n var result = operator === '*' ? lTs.multiply(rTs) : lTs.divide(rTs);\n if (result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(MULTIPLY_OR_DIVIDE_REGEX, result.toString());\n }\n while (newExpr.includes('+') || /.-\\d+(?:\\.\\d+)?/.test(newExpr)) {\n var _ADD_OR_SUBTRACT_REGE;\n var [, _leftOperand, _operator, _rightOperand] = (_ADD_OR_SUBTRACT_REGE = ADD_OR_SUBTRACT_REGEX.exec(newExpr)) !== null && _ADD_OR_SUBTRACT_REGE !== void 0 ? _ADD_OR_SUBTRACT_REGE : [];\n var _lTs = DecimalCSS.parse(_leftOperand !== null && _leftOperand !== void 0 ? _leftOperand : '');\n var _rTs = DecimalCSS.parse(_rightOperand !== null && _rightOperand !== void 0 ? _rightOperand : '');\n var _result = _operator === '+' ? _lTs.add(_rTs) : _lTs.subtract(_rTs);\n if (_result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(ADD_OR_SUBTRACT_REGEX, _result.toString());\n }\n return newExpr;\n}\nvar PARENTHESES_REGEX = /\\(([^()]*)\\)/;\nfunction calculateParentheses(expr) {\n var newExpr = expr;\n var match;\n // eslint-disable-next-line no-cond-assign\n while ((match = PARENTHESES_REGEX.exec(newExpr)) != null) {\n var [, parentheticalExpression] = match;\n newExpr = newExpr.replace(PARENTHESES_REGEX, calculateArithmetic(parentheticalExpression));\n }\n return newExpr;\n}\nfunction evaluateExpression(expression) {\n var newExpr = expression.replace(/\\s+/g, '');\n newExpr = calculateParentheses(newExpr);\n newExpr = calculateArithmetic(newExpr);\n return newExpr;\n}\nexport function safeEvaluateExpression(expression) {\n try {\n return evaluateExpression(expression);\n } catch (_unused) {\n return STR_NAN;\n }\n}\nexport function reduceCSSCalc(expression) {\n var result = safeEvaluateExpression(expression.slice(5, -1));\n if (result === STR_NAN) {\n return '';\n }\n return result;\n}","var _excluded = [\"x\", \"y\", \"lineHeight\", \"capHeight\", \"fill\", \"scaleToFit\", \"textAnchor\", \"verticalAnchor\"],\n _excluded2 = [\"dx\", \"dy\", \"angle\", \"className\", \"breakAll\"];\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); }\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; }\nimport * as React from 'react';\nimport { useMemo, forwardRef } from 'react';\nimport { clsx } from 'clsx';\nimport { isNullish, isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { getStringSize } from '../util/DOMUtils';\nimport { reduceCSSCalc } from '../util/ReduceCSSCalc';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { isWellBehavedNumber } from '../util/isWellBehavedNumber';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\nvar calculateWordWidths = _ref => {\n var {\n children,\n breakAll,\n style\n } = _ref;\n try {\n var words = [];\n if (!isNullish(children)) {\n if (breakAll) {\n words = children.toString().split('');\n } else {\n words = children.toString().split(BREAKING_SPACES);\n }\n }\n var wordsWithComputedWidth = words.map(word => ({\n word,\n width: getStringSize(word, style).width\n }));\n var spaceWidth = breakAll ? 0 : getStringSize('\\u00A0', style).width;\n return {\n wordsWithComputedWidth,\n spaceWidth\n };\n } catch (_unused) {\n return null;\n }\n};\nexport function isValidTextAnchor(value) {\n return value === 'start' || value === 'middle' || value === 'end' || value === 'inherit';\n}\nvar calculate = (words, lineWidth, spaceWidth, scaleToFit) => words.reduce((result, _ref2) => {\n var {\n word,\n width\n } = _ref2;\n var currentLine = result[result.length - 1];\n if (currentLine && width != null && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < Number(lineWidth))) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width\n };\n result.push(newLine);\n }\n return result;\n}, []);\nvar findLongestLine = words => words.reduce((a, b) => a.width > b.width ? a : b);\nvar suffix = '…';\nvar checkOverflow = (text, index, breakAll, style, maxLines, lineWidth, spaceWidth, scaleToFit) => {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths({\n breakAll,\n style,\n children: tempText + suffix\n });\n if (!words) {\n return [false, []];\n }\n var result = calculate(words.wordsWithComputedWidth, lineWidth, spaceWidth, scaleToFit);\n var doesOverflow = result.length > maxLines || findLongestLine(result).width > Number(lineWidth);\n return [doesOverflow, result];\n};\nvar calculateWordsByLines = (_ref3, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) => {\n var {\n maxLines,\n children,\n style,\n breakAll\n } = _ref3;\n var shouldLimitLines = isNumber(maxLines);\n var text = String(children);\n var originalResult = calculate(initialWordsWithComputedWith, lineWidth, spaceWidth, scaleToFit);\n if (!shouldLimitLines || scaleToFit) {\n return originalResult;\n }\n var overflows = originalResult.length > maxLines || findLongestLine(originalResult).width > Number(lineWidth);\n if (!overflows) {\n return originalResult;\n }\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n var [doesPrevOverflow, result] = checkOverflow(text, prev, breakAll, style, maxLines, lineWidth, spaceWidth, scaleToFit);\n var [doesMiddleOverflow] = checkOverflow(text, middle, breakAll, style, maxLines, lineWidth, spaceWidth, scaleToFit);\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n iterations++;\n }\n\n // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n return trimmedResult || originalResult;\n};\nvar getWordsWithoutCalculate = children => {\n var words = !isNullish(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words,\n width: undefined\n }];\n};\nexport var getWordsByLines = _ref4 => {\n var {\n width,\n scaleToFit,\n children,\n style,\n breakAll,\n maxLines\n } = _ref4;\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((width || scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n var wordWidths = calculateWordWidths({\n breakAll,\n children,\n style\n });\n if (wordWidths) {\n var {\n wordsWithComputedWidth: wcw,\n spaceWidth: sw\n } = wordWidths;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(children);\n }\n return calculateWordsByLines({\n breakAll,\n children,\n maxLines,\n style\n }, wordsWithComputedWidth, spaceWidth, width, Boolean(scaleToFit));\n }\n return getWordsWithoutCalculate(children);\n};\nvar DEFAULT_FILL = '#808080';\nvar textDefaultProps = {\n breakAll: false,\n // Magic number from d3\n capHeight: '0.71em',\n fill: DEFAULT_FILL,\n lineHeight: '1em',\n scaleToFit: false,\n textAnchor: 'start',\n // Maintain compat with existing charts / default SVG behavior\n verticalAnchor: 'end',\n x: 0,\n y: 0\n};\nexport var Text = /*#__PURE__*/forwardRef((outsideProps, ref) => {\n var _resolveDefaultProps = resolveDefaultProps(outsideProps, textDefaultProps),\n {\n x: propsX,\n y: propsY,\n lineHeight,\n capHeight,\n fill,\n scaleToFit,\n textAnchor,\n verticalAnchor\n } = _resolveDefaultProps,\n props = _objectWithoutProperties(_resolveDefaultProps, _excluded);\n var wordsByLines = useMemo(() => {\n return getWordsByLines({\n breakAll: props.breakAll,\n children: props.children,\n maxLines: props.maxLines,\n scaleToFit,\n style: props.style,\n width: props.width\n });\n }, [props.breakAll, props.children, props.maxLines, scaleToFit, props.style, props.width]);\n var {\n dx,\n dy,\n angle,\n className,\n breakAll\n } = props,\n textProps = _objectWithoutProperties(props, _excluded2);\n if (!isNumOrStr(propsX) || !isNumOrStr(propsY) || wordsByLines.length === 0) {\n return null;\n }\n var x = Number(propsX) + (isNumber(dx) ? dx : 0);\n var y = Number(propsY) + (isNumber(dy) ? dy : 0);\n if (!isWellBehavedNumber(x) || !isWellBehavedNumber(y)) {\n return null;\n }\n var startDy;\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n var transforms = [];\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var {\n width\n } = props;\n transforms.push(\"scale(\".concat(isNumber(width) && isNumber(lineWidth) ? width / lineWidth : 1, \")\"));\n }\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, svgPropertiesAndEvents(textProps), {\n ref: ref,\n x: x,\n y: y,\n className: clsx('recharts-text', className),\n textAnchor: textAnchor,\n fill: fill.includes('url') ? DEFAULT_FILL : fill\n }), wordsByLines.map((line, index) => {\n var words = line.words.join(breakAll ? '' : ' ');\n return (\n /*#__PURE__*/\n // duplicate words will cause duplicate keys which is why we add the array index here\n React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: \"\".concat(words, \"-\").concat(index)\n }, words)\n );\n }));\n});\nText.displayName = 'Text';","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction uniqBy(arr, mapper) {\n const map = new Map();\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n const key = mapper(item);\n if (!map.has(key)) {\n map.set(key, item);\n }\n }\n return Array.from(map.values());\n}\n\nexports.uniqBy = uniqBy;\n","module.exports = require('../dist/compat/array/uniqBy.js').uniqBy;\n","var _excluded = [\"radius\"],\n _excluded2 = [\"radius\"];\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); }\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; }\n/**\n * @fileOverview Rectangle\n */\nimport * as React from 'react';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { interpolate } from '../util/DataUtils';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { getTransitionVal } from '../animation/util';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nvar getRectanglePath = (x, y, width, height, radius) => {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [0, 0, 0, 0];\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n return path;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Rectangle = rectangleProps => {\n var props = resolveDefaultProps(rectangleProps, defaultProps);\n var pathRef = useRef(null);\n var [totalLength, setTotalLength] = useState(-1);\n useEffect(() => {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (_unused) {\n // calculate total length error\n }\n }\n }, []);\n var {\n x,\n y,\n width,\n height,\n radius,\n className\n } = props;\n var {\n animationEasing,\n animationDuration,\n animationBegin,\n isAnimationActive,\n isUpdateAnimationActive\n } = props;\n var prevWidthRef = useRef(width);\n var prevHeightRef = useRef(height);\n var prevXRef = useRef(x);\n var prevYRef = useRef(y);\n var animationIdInput = useMemo(() => ({\n x,\n y,\n width,\n height,\n radius\n }), [x, y, width, height, radius]);\n var animationId = useAnimationId(animationIdInput, 'rectangle-');\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-rectangle', className);\n if (!isUpdateAnimationActive) {\n var _svgPropertiesAndEven = svgPropertiesAndEvents(props),\n {\n radius: _\n } = _svgPropertiesAndEven,\n otherPathProps = _objectWithoutProperties(_svgPropertiesAndEven, _excluded);\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, otherPathProps, {\n radius: typeof radius === 'number' ? radius : undefined,\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\n }\n var prevWidth = prevWidthRef.current;\n var prevHeight = prevHeightRef.current;\n var prevX = prevXRef.current;\n var prevY = prevYRef.current;\n var from = \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\");\n var to = \"\".concat(totalLength, \"px 0px\");\n var transition = getTransitionVal(['strokeDasharray'], animationDuration, typeof animationEasing === 'string' ? animationEasing : defaultProps.animationEasing);\n return /*#__PURE__*/React.createElement(JavascriptAnimate, {\n animationId: animationId,\n key: animationId,\n canBegin: totalLength > 0,\n duration: animationDuration,\n easing: animationEasing,\n isActive: isUpdateAnimationActive,\n begin: animationBegin\n }, t => {\n var currWidth = interpolate(prevWidth, width, t);\n var currHeight = interpolate(prevHeight, height, t);\n var currX = interpolate(prevX, x, t);\n var currY = interpolate(prevY, y, t);\n if (pathRef.current) {\n prevWidthRef.current = currWidth;\n prevHeightRef.current = currHeight;\n prevXRef.current = currX;\n prevYRef.current = currY;\n }\n var animationStyle;\n if (!isAnimationActive) {\n animationStyle = {\n strokeDasharray: to\n };\n } else if (t > 0) {\n animationStyle = {\n transition,\n strokeDasharray: to\n };\n } else {\n animationStyle = {\n strokeDasharray: from\n };\n }\n var _svgPropertiesAndEven2 = svgPropertiesAndEvents(props),\n {\n radius: _\n } = _svgPropertiesAndEven2,\n otherPathProps = _objectWithoutProperties(_svgPropertiesAndEven2, _excluded2);\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, otherPathProps, {\n radius: typeof radius === 'number' ? radius : undefined,\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: pathRef,\n style: _objectSpread(_objectSpread({}, animationStyle), props.style)\n }));\n });\n};","export var selectTooltipAxisId = state => state.tooltip.settings.axisId;","/**\n * Returns identifier for stack series which is one individual graphical item in the stack.\n * @param graphicalItem - The graphical item representing the series in the stack.\n * @return The identifier for the series in the stack\n */\nexport function getStackSeriesIdentifier(graphicalItem) {\n return graphicalItem === null || graphicalItem === void 0 ? void 0 : graphicalItem.id;\n}","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst IS_UNSIGNED_INTEGER = /^(?:0|[1-9]\\d*)$/;\nfunction isIndex(value, length = Number.MAX_SAFE_INTEGER) {\n switch (typeof value) {\n case 'number': {\n return Number.isInteger(value) && value >= 0 && value < length;\n }\n case 'symbol': {\n return false;\n }\n case 'string': {\n return IS_UNSIGNED_INTEGER.test(value);\n }\n }\n}\n\nexports.isIndex = isIndex;\n","export var COLOR_PANEL = ['#1890FF', '#66B5FF', '#41D9C7', '#2FC25B', '#6EDB8F', '#9AE65C', '#FACC14', '#E6965C', '#57AD71', '#223273', '#738AE6', '#7564CC', '#8543E0', '#A877ED', '#5C8EE6', '#13C2C2', '#70E0E0', '#5CA3E6', '#3436C7', '#8082FF', '#DD81E6', '#F04864', '#FA7D92', '#D598D9'];\n\n/**\n * We use this attribute to identify which element is the one that the user is touching.\n * The index is the position of the element in the data array.\n * This can be either a number (for array-based charts) or a string (for the charts that have a matrix-shaped data).\n */\nexport var DATA_ITEM_INDEX_ATTRIBUTE_NAME = 'data-recharts-item-index';\n/**\n * We use this attribute to identify which element is the one that the user is touching.\n * DataKey works here as a kind of identifier for the element. It's not a perfect identifier for ~two~ three reasons:\n *\n * 1. There can be two different elements with the same dataKey; we won't know which is it\n * 2. DataKey can be a function, and that serialized will be a `[Function: anonymous]` string\n * which means we will be able to identify that it was a function but can't tell which one.\n * This will lead to some weird bugs. A proper fix would be to either:\n * a) use a unique identifier for each element (passed from props, or generated)\n * b) figure out how to compare the dataKey or graphical item by object reference\n *\n * a) is a fuss because we don't have the unique identifier in props,\n * and b) is possible most of the time except for touchMove events which work differently from mouseEnter/mouseLeave:\n * - while mouseEnter is fired for the element that the mouse is over,\n * touchMove is fired for the element where user has started touching. As the finger moves,\n * we can identify the element that the user is touching by using the elementFromPoint method,\n * but it keeps calling the handler on the element where touchStart was fired.\n *\n * Okay and now I discovered a third reason: the dataKey can be undefined and that's still fine\n * because if dataKey is undefined then graphical elements assume the dataKey of the axes.\n * Which makes it a convenient way of using recharts to render a chart but horrible identifier.\n */\nexport var DATA_ITEM_DATAKEY_ATTRIBUTE_NAME = 'data-recharts-item-data-key';\nexport var DEFAULT_Y_AXIS_WIDTH = 60;","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); }\n/*\n * @description: convert camel case to dash case\n * string => string\n */\nexport var getDashCase = name => name.replace(/([A-Z])/g, v => \"-\".concat(v.toLowerCase()));\nexport var getTransitionVal = (props, duration, easing) => props.map(prop => \"\".concat(getDashCase(prop), \" \").concat(duration, \"ms \").concat(easing)).join(',');\n\n/**\n * Finds the intersection of keys between two objects\n * @param {object} preObj previous object\n * @param {object} nextObj next object\n * @returns an array of keys that exist in both objects\n */\nexport var getIntersectionKeys = (preObj, nextObj) => [Object.keys(preObj), Object.keys(nextObj)].reduce((a, b) => a.filter(c => b.includes(c)));\n\n/**\n * Maps an object to another object\n * @param {function} fn function to map\n * @param {object} obj object to map\n * @returns mapped object\n */\nexport var mapObject = (fn, obj) => Object.keys(obj).reduce((res, key) => _objectSpread(_objectSpread({}, res), {}, {\n [key]: fn(key, obj[key])\n}), {});","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isPrimitive(value) {\n return value == null || (typeof value !== 'object' && typeof value !== 'function');\n}\n\nexports.isPrimitive = isPrimitive;\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\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 sortBy from 'es-toolkit/compat/sortBy';\nimport get from 'es-toolkit/compat/get';\nimport { stack as shapeStack, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle, stackOrderNone } from 'victory-vendor/d3-shape';\nimport { findEntryInArray, isNan, isNullish, isNumber, isNumOrStr, mathSign } from './DataUtils';\nimport { getSliced } from './getSliced';\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (isNullish(obj) || isNullish(dataKey)) {\n return defaultValue;\n }\n if (isNumOrStr(dataKey)) {\n return get(obj, dataKey, defaultValue);\n }\n if (typeof dataKey === 'function') {\n return dataKey(obj);\n }\n return defaultValue;\n}\nexport var appendOffsetOfLegend = (offset, legendSettings, legendSize) => {\n if (legendSettings && legendSize) {\n var {\n width: boxWidth,\n height: boxHeight\n } = legendSize;\n var {\n align,\n verticalAlign,\n layout\n } = legendSettings;\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'middle') && align !== 'center' && isNumber(offset[align])) {\n return _objectSpread(_objectSpread({}, offset), {}, {\n [align]: offset[align] + (boxWidth || 0)\n });\n }\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && verticalAlign !== 'middle' && isNumber(offset[verticalAlign])) {\n return _objectSpread(_objectSpread({}, offset), {}, {\n [verticalAlign]: offset[verticalAlign] + (boxHeight || 0)\n });\n }\n }\n return offset;\n};\nexport var isCategoricalAxis = (layout, axisType) => layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} minValue The minimum value of axis\n * @param {Number} maxValue The maximum value of axis\n * @param {boolean} syncWithTicks Synchronize grid lines with ticks or not\n * @return {Array} Coordinates\n */\nexport var getCoordinatesOfGrid = (ticks, minValue, maxValue, syncWithTicks) => {\n if (syncWithTicks) {\n return ticks.map(entry => entry.coordinate);\n }\n var hasMin, hasMax;\n var values = ticks.map(entry => {\n if (entry.coordinate === minValue) {\n hasMin = true;\n }\n if (entry.coordinate === maxValue) {\n hasMax = true;\n }\n return entry.coordinate;\n });\n if (!hasMin) {\n values.push(minValue);\n }\n if (!hasMax) {\n values.push(maxValue);\n }\n return values;\n};\n\n/**\n * A subset of d3-scale that Recharts is using\n */\n\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\nexport var getTicksOfAxis = (axis, isGrid, isAll) => {\n if (!axis) {\n return null;\n }\n var {\n duplicateDomain,\n type,\n range,\n scale,\n realScaleType,\n isCategorical,\n categoricalDomain,\n tickCount,\n ticks,\n niceTicks,\n axisType\n } = axis;\n if (!scale) {\n return null;\n }\n var offsetForBand = realScaleType === 'scaleBand' && scale.bandwidth ? scale.bandwidth() / 2 : 2;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n offset = axisType === 'angleAxis' && range && range.length >= 2 ? mathSign(range[0] - range[1]) * 2 * offset : offset;\n\n // The ticks set by user should only affect the ticks adjacent to axis line\n if (isGrid && (ticks || niceTicks)) {\n var result = (ticks || niceTicks || []).map((entry, index) => {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n // If the scaleContent is not a number, the coordinate will be NaN.\n // That could be the case for example with a PointScale and a string as domain.\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset,\n index\n };\n });\n return result.filter(row => !isNan(row.coordinate));\n }\n\n // When axis is a categorical axis, but the type of axis is number or the scale of axis is not \"auto\"\n if (isCategorical && categoricalDomain) {\n return categoricalDomain.map((entry, index) => ({\n coordinate: scale(entry) + offset,\n value: entry,\n index,\n offset\n }));\n }\n if (scale.ticks && !isAll && tickCount != null) {\n return scale.ticks(tickCount).map((entry, index) => ({\n coordinate: scale(entry) + offset,\n value: entry,\n offset,\n index\n }));\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map((entry, index) => ({\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index,\n offset\n }));\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = scale => {\n var domain = scale.domain();\n if (!domain || domain.length <= 2) {\n return;\n }\n var len = domain.length;\n var range = scale.range();\n var minValue = Math.min(range[0], range[1]) - EPS;\n var maxValue = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n if (first < minValue || first > maxValue || last < minValue || last > maxValue) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\n\n/**\n * Both value and domain are tuples of two numbers\n * - but the type stays as array of numbers until we have better support in rest of the app\n * @param value input that will be truncated\n * @param domain boundaries\n * @returns tuple of two numbers\n */\nexport var truncateByDomain = (value, domain) => {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n var minValue = Math.min(domain[0], domain[1]);\n var maxValue = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n if (!isNumber(value[0]) || value[0] < minValue) {\n result[0] = minValue;\n }\n if (!isNumber(value[1]) || value[1] > maxValue) {\n result[1] = maxValue;\n }\n if (result[0] > maxValue) {\n result[0] = maxValue;\n }\n if (result[1] < minValue) {\n result[1] = minValue;\n }\n return result;\n};\n\n/**\n * Stacks all positive numbers above zero and all negative numbers below zero.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport var offsetSign = series => {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n for (var i = 0; i < n; ++i) {\n var value = isNan(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring, no-param-reassign */\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring, no-param-reassign */\n }\n }\n};\n\n/**\n * Replaces all negative values with zero when stacking data.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport var offsetPositive = series => {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n for (var i = 0; i < n; ++i) {\n var value = isNan(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring, no-param-reassign */\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = 0;\n series[i][j][1] = 0;\n }\n /* eslint-enable prefer-destructuring, no-param-reassign */\n }\n }\n};\n\n/**\n * Function type to compute offset for stacked data.\n *\n * d3-shape has something fishy going on with its types.\n * In @definitelytyped/d3-shape, this function (the offset accessor) is typed as Series<> => void.\n * However! When I actually open the storybook I can see that the offset accessor actually receives Array<Series<>>.\n * The same I can see in the source code itself:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n * That one unfortunately has no types but we can tell it passes three-dimensional array.\n *\n * Which leads me to believe that definitelytyped is wrong on this one.\n * There's open discussion on this topic without much attention:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n */\n\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n // @ts-expect-error definitelytyped types are incorrect\n expand: stackOffsetExpand,\n // @ts-expect-error definitelytyped types are incorrect\n none: stackOffsetNone,\n // @ts-expect-error definitelytyped types are incorrect\n silhouette: stackOffsetSilhouette,\n // @ts-expect-error definitelytyped types are incorrect\n wiggle: stackOffsetWiggle,\n positive: offsetPositive\n};\nexport var getStackedData = (data, dataKeys, offsetType) => {\n var offsetAccessor = STACK_OFFSET_MAP[offsetType];\n var stack = shapeStack().keys(dataKeys).value((d, key) => Number(getValueByDataKey(d, key, 0))).order(stackOrderNone)\n // @ts-expect-error definitelytyped types are incorrect\n .offset(offsetAccessor);\n return stack(data);\n};\n\n/**\n * Stack IDs in the external props allow numbers; but internally we use it as an object key\n * and object keys are always strings. Also, it would be kinda confusing if stackId=8 and stackId='8' were different stacks\n * so let's just force a string.\n */\n\nexport function getNormalizedStackId(publicStackId) {\n return publicStackId == null ? undefined : String(publicStackId);\n}\nexport function getCateCoordinateOfLine(_ref) {\n var {\n axis,\n ticks,\n bandSize,\n entry,\n index,\n dataKey\n } = _ref;\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n if (!axis.allowDuplicatedCategory && axis.dataKey && !isNullish(entry[axis.dataKey])) {\n // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n var value = getValueByDataKey(entry, !isNullish(dataKey) ? dataKey : axis.dataKey);\n\n // @ts-expect-error getValueByDataKey does not validate the output type\n return !isNullish(value) ? axis.scale(value) : null;\n}\nexport var getCateCoordinateOfBar = _ref2 => {\n var {\n axis,\n ticks,\n offset,\n bandSize,\n entry,\n index\n } = _ref2;\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n var value = getValueByDataKey(entry, axis.dataKey, axis.scale.domain()[index]);\n return !isNullish(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = _ref3 => {\n var {\n numericAxis\n } = _ref3;\n var domain = numericAxis.scale.domain();\n if (numericAxis.type === 'number') {\n // @ts-expect-error type number means the domain has numbers in it but this relationship is not known to typescript\n var minValue = Math.min(domain[0], domain[1]);\n // @ts-expect-error type number means the domain has numbers in it but this relationship is not known to typescript\n var maxValue = Math.max(domain[0], domain[1]);\n if (minValue <= 0 && maxValue >= 0) {\n return 0;\n }\n if (maxValue < 0) {\n return maxValue;\n }\n return minValue;\n }\n return domain[0];\n};\nvar getDomainOfSingle = data => {\n var flat = data.flat(2).filter(isNumber);\n return [Math.min(...flat), Math.max(...flat)];\n};\nvar makeDomainFinite = domain => {\n return [domain[0] === Infinity ? 0 : domain[0], domain[1] === -Infinity ? 0 : domain[1]];\n};\nexport var getDomainOfStackGroups = (stackGroups, startIndex, endIndex) => {\n if (stackGroups == null) {\n return undefined;\n }\n return makeDomainFinite(Object.keys(stackGroups).reduce((result, stackId) => {\n var group = stackGroups[stackId];\n var {\n stackedData\n } = group;\n var domain = stackedData.reduce((res, entry) => {\n var sliced = getSliced(entry, startIndex, endIndex);\n var s = getDomainOfSingle(sliced);\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]));\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\n\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @param {Boolean} isBar if items in axis are bars\n * @return {Number} Size\n */\nexport var getBandSizeOfAxis = (axis, ticks, isBar) => {\n if (axis && axis.scale && axis.scale.bandwidth) {\n var bandWidth = axis.scale.bandwidth();\n if (!isBar || bandWidth > 0) {\n return bandWidth;\n }\n }\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = sortBy(ticks, o => o.coordinate);\n var bandSize = Infinity;\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n return bandSize === Infinity ? 0 : bandSize;\n }\n return isBar ? undefined : 0;\n};\nexport function getTooltipEntry(_ref4) {\n var {\n tooltipEntrySettings,\n dataKey,\n payload,\n value,\n name\n } = _ref4;\n return _objectSpread(_objectSpread({}, tooltipEntrySettings), {}, {\n dataKey,\n payload,\n value,\n name\n });\n}\nexport function getTooltipNameProp(nameFromItem, dataKey) {\n if (nameFromItem) {\n return String(nameFromItem);\n }\n if (typeof dataKey === 'string') {\n return dataKey;\n }\n return undefined;\n}\nexport var calculateCartesianTooltipPos = (coordinate, layout) => {\n if (layout === 'horizontal') {\n return coordinate.chartX;\n }\n if (layout === 'vertical') {\n return coordinate.chartY;\n }\n return undefined;\n};\nexport var calculatePolarTooltipPos = (rangeObj, layout) => {\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n return rangeObj.radius;\n};","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction debounce(func, debounceMs, { signal, edges } = {}) {\n let pendingThis = undefined;\n let pendingArgs = null;\n const leading = edges != null && edges.includes('leading');\n const trailing = edges == null || edges.includes('trailing');\n const invoke = () => {\n if (pendingArgs !== null) {\n func.apply(pendingThis, pendingArgs);\n pendingThis = undefined;\n pendingArgs = null;\n }\n };\n const onTimerEnd = () => {\n if (trailing) {\n invoke();\n }\n cancel();\n };\n let timeoutId = null;\n const schedule = () => {\n if (timeoutId != null) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = null;\n onTimerEnd();\n }, debounceMs);\n };\n const cancelTimer = () => {\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n };\n const cancel = () => {\n cancelTimer();\n pendingThis = undefined;\n pendingArgs = null;\n };\n const flush = () => {\n invoke();\n };\n const debounced = function (...args) {\n if (signal?.aborted) {\n return;\n }\n pendingThis = this;\n pendingArgs = args;\n const isFirstCall = timeoutId == null;\n schedule();\n if (leading && isFirstCall) {\n invoke();\n }\n };\n debounced.schedule = schedule;\n debounced.cancel = cancel;\n debounced.flush = flush;\n signal?.addEventListener('abort', cancel, { once: true });\n return debounced;\n}\n\nexports.debounce = debounce;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst toNumber = require('./toNumber.js');\n\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber.toNumber(value);\n if (value === Infinity || value === -Infinity) {\n const sign = value < 0 ? -1 : 1;\n return sign * Number.MAX_VALUE;\n }\n return value === value ? value : 0;\n}\n\nexports.toFinite = toFinite;\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 { noInteraction } from '../../tooltipSlice';\nfunction chooseAppropriateMouseInteraction(tooltipState, tooltipEventType, trigger) {\n if (tooltipEventType === 'axis') {\n if (trigger === 'click') {\n return tooltipState.axisInteraction.click;\n }\n return tooltipState.axisInteraction.hover;\n }\n if (trigger === 'click') {\n return tooltipState.itemInteraction.click;\n }\n return tooltipState.itemInteraction.hover;\n}\nfunction hasBeenActivePreviously(tooltipInteractionState) {\n return tooltipInteractionState.index != null;\n}\nexport var combineTooltipInteractionState = (tooltipState, tooltipEventType, trigger, defaultIndex) => {\n if (tooltipEventType == null) {\n return noInteraction;\n }\n var appropriateMouseInteraction = chooseAppropriateMouseInteraction(tooltipState, tooltipEventType, trigger);\n if (appropriateMouseInteraction == null) {\n return noInteraction;\n }\n if (appropriateMouseInteraction.active) {\n return appropriateMouseInteraction;\n }\n if (tooltipState.keyboardInteraction.active) {\n return tooltipState.keyboardInteraction;\n }\n if (tooltipState.syncInteraction.active && tooltipState.syncInteraction.index != null) {\n return tooltipState.syncInteraction;\n }\n var activeFromProps = tooltipState.settings.active === true;\n if (hasBeenActivePreviously(appropriateMouseInteraction)) {\n if (activeFromProps) {\n return _objectSpread(_objectSpread({}, appropriateMouseInteraction), {}, {\n active: true\n });\n }\n } else if (defaultIndex != null) {\n return {\n active: true,\n coordinate: undefined,\n dataKey: undefined,\n index: defaultIndex\n };\n }\n return _objectSpread(_objectSpread({}, noInteraction), {}, {\n coordinate: appropriateMouseInteraction.coordinate\n });\n};","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst uniqBy$1 = require('../../array/uniqBy.js');\nconst identity = require('../../function/identity.js');\nconst isArrayLikeObject = require('../predicate/isArrayLikeObject.js');\nconst iteratee = require('../util/iteratee.js');\n\nfunction uniqBy(array, iteratee$1 = identity.identity) {\n if (!isArrayLikeObject.isArrayLikeObject(array)) {\n return [];\n }\n return uniqBy$1.uniqBy(Array.from(array), iteratee.iteratee(iteratee$1));\n}\n\nexports.uniqBy = uniqBy;\n","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\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 { findEntryInArray } from '../../../util/DataUtils';\nimport { getTooltipEntry, getValueByDataKey } from '../../../util/ChartUtils';\nimport { getSliced } from '../../../util/getSliced';\nfunction selectFinalData(dataDefinedOnItem, dataDefinedOnChart) {\n /*\n * If a payload has data specified directly from the graphical item, prefer that.\n * Otherwise, fill in data from the chart level, using the same index.\n */\n if (dataDefinedOnItem != null) {\n return dataDefinedOnItem;\n }\n return dataDefinedOnChart;\n}\nexport var combineTooltipPayload = (tooltipPayloadConfigurations, activeIndex, chartDataState, tooltipAxisDataKey, activeLabel, tooltipPayloadSearcher, tooltipEventType) => {\n if (activeIndex == null || tooltipPayloadSearcher == null) {\n return undefined;\n }\n var {\n chartData,\n computedData,\n dataStartIndex,\n dataEndIndex\n } = chartDataState;\n var init = [];\n return tooltipPayloadConfigurations.reduce((agg, _ref) => {\n var _settings$dataKey;\n var {\n dataDefinedOnItem,\n settings\n } = _ref;\n var finalData = selectFinalData(dataDefinedOnItem, chartData);\n var sliced = Array.isArray(finalData) ? getSliced(finalData, dataStartIndex, dataEndIndex) : finalData;\n var finalDataKey = (_settings$dataKey = settings === null || settings === void 0 ? void 0 : settings.dataKey) !== null && _settings$dataKey !== void 0 ? _settings$dataKey : tooltipAxisDataKey;\n // BaseAxisProps does not support nameKey but it could!\n var finalNameKey = settings === null || settings === void 0 ? void 0 : settings.nameKey; // ?? tooltipAxis?.nameKey;\n var tooltipPayload;\n if (tooltipAxisDataKey && Array.isArray(sliced) &&\n /*\n * findEntryInArray won't work for Scatter because Scatter provides an array of arrays\n * as tooltip payloads and findEntryInArray is not prepared to handle that.\n * Sad but also ScatterChart only allows 'item' tooltipEventType\n * and also this is only a problem if there are multiple Scatters and each has its own data array\n * so let's fix that some other time.\n */\n !Array.isArray(sliced[0]) &&\n /*\n * If the tooltipEventType is 'axis', we should search for the dataKey in the sliced data\n * because thanks to allowDuplicatedCategory=false, the order of elements in the array\n * no longer matches the order of elements in the original data\n * and so we need to search by the active dataKey + label rather than by index.\n *\n * The same happens if multiple graphical items are present in the chart\n * and each of them has its own data array. Those arrays get concatenated\n * and again the tooltip index no longer matches the original data.\n *\n * On the other hand the tooltipEventType 'item' should always search by index\n * because we get the index from interacting over the individual elements\n * which is always accurate, irrespective of the allowDuplicatedCategory setting.\n */\n tooltipEventType === 'axis') {\n tooltipPayload = findEntryInArray(sliced, tooltipAxisDataKey, activeLabel);\n } else {\n /*\n * This is a problem because it assumes that the index is pointing to the displayed data\n * which it isn't because the index is pointing to the tooltip ticks array.\n * The above approach (with findEntryInArray) is the correct one, but it only works\n * if the axis dataKey is defined explicitly, and if the data is an array of objects.\n */\n tooltipPayload = tooltipPayloadSearcher(sliced, activeIndex, computedData, finalNameKey);\n }\n if (Array.isArray(tooltipPayload)) {\n tooltipPayload.forEach(item => {\n var newSettings = _objectSpread(_objectSpread({}, settings), {}, {\n name: item.name,\n unit: item.unit,\n // color and fill are erased to keep 100% the identical behaviour to recharts 2.x - but there's nothing stopping us from returning them here. It's technically a breaking change.\n color: undefined,\n // color and fill are erased to keep 100% the identical behaviour to recharts 2.x - but there's nothing stopping us from returning them here. It's technically a breaking change.\n fill: undefined\n });\n agg.push(getTooltipEntry({\n tooltipEntrySettings: newSettings,\n dataKey: item.dataKey,\n payload: item.payload,\n // @ts-expect-error getValueByDataKey does not validate the output type\n value: getValueByDataKey(item.payload, item.dataKey),\n name: item.name\n }));\n });\n } else {\n var _getValueByDataKey;\n // I am not quite sure why these two branches (Array vs Array of Arrays) have to behave differently - I imagine we should unify these. 3.x breaking change?\n agg.push(getTooltipEntry({\n tooltipEntrySettings: settings,\n dataKey: finalDataKey,\n payload: tooltipPayload,\n // @ts-expect-error getValueByDataKey does not validate the output type\n value: getValueByDataKey(tooltipPayload, finalDataKey),\n // @ts-expect-error getValueByDataKey does not validate the output type\n name: (_getValueByDataKey = getValueByDataKey(tooltipPayload, finalNameKey)) !== null && _getValueByDataKey !== void 0 ? _getValueByDataKey : settings === null || settings === void 0 ? void 0 : settings.name\n }));\n }\n return agg;\n }, init);\n};","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n return true;\n}","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst cloneDeepWith = require('./cloneDeepWith.js');\n\nfunction cloneDeep(obj) {\n return cloneDeepWith.cloneDeepWithImpl(obj, undefined, obj, new Map(), undefined);\n}\n\nexports.cloneDeep = cloneDeep;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isDeepKey = require('../_internal/isDeepKey.js');\nconst isIndex = require('../_internal/isIndex.js');\nconst isArguments = require('../predicate/isArguments.js');\nconst toPath = require('../util/toPath.js');\n\nfunction has(object, path) {\n let resolvedPath;\n if (Array.isArray(path)) {\n resolvedPath = path;\n }\n else if (typeof path === 'string' && isDeepKey.isDeepKey(path) && object?.[path] == null) {\n resolvedPath = toPath.toPath(path);\n }\n else {\n resolvedPath = [path];\n }\n if (resolvedPath.length === 0) {\n return false;\n }\n let current = object;\n for (let i = 0; i < resolvedPath.length; i++) {\n const key = resolvedPath[i];\n if (current == null || !Object.hasOwn(current, key)) {\n const isSparseIndex = (Array.isArray(current) || isArguments.isArguments(current)) && isIndex.isIndex(key) && key < current.length;\n if (!isSparseIndex) {\n return false;\n }\n }\n current = current[key];\n }\n return true;\n}\n\nexports.has = has;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst compareValues = require('../_internal/compareValues.js');\nconst isKey = require('../_internal/isKey.js');\nconst toPath = require('../util/toPath.js');\n\nfunction orderBy(collection, criteria, orders, guard) {\n if (collection == null) {\n return [];\n }\n orders = guard ? undefined : orders;\n if (!Array.isArray(collection)) {\n collection = Object.values(collection);\n }\n if (!Array.isArray(criteria)) {\n criteria = criteria == null ? [null] : [criteria];\n }\n if (criteria.length === 0) {\n criteria = [null];\n }\n if (!Array.isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n orders = orders.map(order => String(order));\n const getValueByNestedPath = (object, path) => {\n let target = object;\n for (let i = 0; i < path.length && target != null; ++i) {\n target = target[path[i]];\n }\n return target;\n };\n const getValueByCriterion = (criterion, object) => {\n if (object == null || criterion == null) {\n return object;\n }\n if (typeof criterion === 'object' && 'key' in criterion) {\n if (Object.hasOwn(object, criterion.key)) {\n return object[criterion.key];\n }\n return getValueByNestedPath(object, criterion.path);\n }\n if (typeof criterion === 'function') {\n return criterion(object);\n }\n if (Array.isArray(criterion)) {\n return getValueByNestedPath(object, criterion);\n }\n if (typeof object === 'object') {\n return object[criterion];\n }\n return object;\n };\n const preparedCriteria = criteria.map((criterion) => {\n if (Array.isArray(criterion) && criterion.length === 1) {\n criterion = criterion[0];\n }\n if (criterion == null || typeof criterion === 'function' || Array.isArray(criterion) || isKey.isKey(criterion)) {\n return criterion;\n }\n return { key: criterion, path: toPath.toPath(criterion) };\n });\n const preparedCollection = collection.map(item => ({\n original: item,\n criteria: preparedCriteria.map((criterion) => getValueByCriterion(criterion, item)),\n }));\n return preparedCollection\n .slice()\n .sort((a, b) => {\n for (let i = 0; i < preparedCriteria.length; i++) {\n const comparedResult = compareValues.compareValues(a.criteria[i], b.criteria[i], orders[i]);\n if (comparedResult !== 0) {\n return comparedResult;\n }\n }\n return 0;\n })\n .map(item => item.original);\n}\n\nexports.orderBy = orderBy;\n","import { createSelector } from 'reselect';\n/**\n * This selector always returns the data with the indexes set by a Brush.\n * Trouble is, that might or might not be what you want.\n *\n * In charts with Brush, you will sometimes want to select the full range of data, and sometimes the one decided by the Brush\n * - even if the Brush is active, the panorama inside the Brush should show the full range of data.\n *\n * So instead of this selector, consider using either selectChartDataAndAlwaysIgnoreIndexes or selectChartDataWithIndexesIfNotInPanorama\n *\n * @param state RechartsRootState\n * @returns data defined on the chart root element, such as BarChart or ScatterChart\n */\nexport var selectChartDataWithIndexes = state => state.chartData;\n\n/**\n * This selector will always return the full range of data, ignoring the indexes set by a Brush.\n * Useful for when you want to render the full range of data, even if a Brush is active.\n * For example: in the Brush panorama, in Legend, in Tooltip.\n */\nexport var selectChartDataAndAlwaysIgnoreIndexes = createSelector([selectChartDataWithIndexes], dataState => {\n var dataEndIndex = dataState.chartData != null ? dataState.chartData.length - 1 : 0;\n return {\n chartData: dataState.chartData,\n computedData: dataState.computedData,\n dataEndIndex,\n dataStartIndex: 0\n };\n});\nexport var selectChartDataWithIndexesIfNotInPanorama = (state, _unused1, _unused2, isPanorama) => {\n if (isPanorama) {\n return selectChartDataAndAlwaysIgnoreIndexes(state);\n }\n return selectChartDataWithIndexes(state);\n};","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst debounce = require('./debounce.js');\n\nfunction throttle(func, throttleMs = 0, options = {}) {\n const { leading = true, trailing = true } = options;\n return debounce.debounce(func, throttleMs, {\n leading,\n maxWait: throttleMs,\n trailing,\n });\n}\n\nexports.throttle = throttle;\n","import { createSlice } from '@reduxjs/toolkit';\nvar initialState = {\n layoutType: 'horizontal',\n width: 0,\n height: 0,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n scale: 1\n};\nvar chartLayoutSlice = createSlice({\n name: 'chartLayout',\n initialState,\n reducers: {\n setLayout(state, action) {\n state.layoutType = action.payload;\n },\n setChartSize(state, action) {\n state.width = action.payload.width;\n state.height = action.payload.height;\n },\n setMargin(state, action) {\n var _action$payload$top, _action$payload$right, _action$payload$botto, _action$payload$left;\n state.margin.top = (_action$payload$top = action.payload.top) !== null && _action$payload$top !== void 0 ? _action$payload$top : 0;\n state.margin.right = (_action$payload$right = action.payload.right) !== null && _action$payload$right !== void 0 ? _action$payload$right : 0;\n state.margin.bottom = (_action$payload$botto = action.payload.bottom) !== null && _action$payload$botto !== void 0 ? _action$payload$botto : 0;\n state.margin.left = (_action$payload$left = action.payload.left) !== null && _action$payload$left !== void 0 ? _action$payload$left : 0;\n },\n setScale(state, action) {\n state.scale = action.payload;\n }\n }\n});\nexport var {\n setMargin,\n setLayout,\n setChartSize,\n setScale\n} = chartLayoutSlice.actions;\nexport var chartLayoutReducer = chartLayoutSlice.reducer;","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst cloneDeepWith$1 = require('../../object/cloneDeepWith.js');\nconst tags = require('../_internal/tags.js');\n\nfunction cloneDeepWith(obj, customizer) {\n return cloneDeepWith$1.cloneDeepWith(obj, (value, key, object, stack) => {\n const cloned = customizer?.(value, key, object, stack);\n if (cloned !== undefined) {\n return cloned;\n }\n if (typeof obj !== 'object') {\n return undefined;\n }\n switch (Object.prototype.toString.call(obj)) {\n case tags.numberTag:\n case tags.stringTag:\n case tags.booleanTag: {\n const result = new obj.constructor(obj?.valueOf());\n cloneDeepWith$1.copyProperties(result, obj);\n return result;\n }\n case tags.argumentsTag: {\n const result = {};\n cloneDeepWith$1.copyProperties(result, obj);\n result.length = obj.length;\n result[Symbol.iterator] = obj[Symbol.iterator];\n return result;\n }\n default: {\n return undefined;\n }\n }\n });\n}\n\nexports.cloneDeepWith = cloneDeepWith;\n","function _taggedTemplateLiteral(e, t) {\n return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {\n raw: {\n value: Object.freeze(t)\n }\n }));\n}\nexport { _taggedTemplateLiteral as default };","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","// Should be no imports here!\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: unique symbol = Symbol.for(\"immer-nothing\")\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = Symbol.for(\"immer-draftable\")\n\nexport const DRAFT_STATE: unique symbol = Symbol.for(\"immer-state\")\n","export const errors =\n\tprocess.env.NODE_ENV !== \"production\"\n\t\t? [\n\t\t\t\t// All error codes, starting by 0:\n\t\t\t\tfunction(plugin: string) {\n\t\t\t\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t\t\t\t},\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t\t\t\t},\n\t\t\t\t\"This object has been frozen and should not be mutated\",\n\t\t\t\tfunction(data: any) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\t\t\t\tdata\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t\t\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t\t\t\t\"Immer forbids circular references\",\n\t\t\t\t\"The first or second argument to `produce` must be a function\",\n\t\t\t\t\"The third argument to `produce` must be a function or undefined\",\n\t\t\t\t\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t\t\t\t\"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'current' expects a draft, got: ${thing}`\n\t\t\t\t},\n\t\t\t\t\"Object.defineProperty() cannot be used on an Immer draft\",\n\t\t\t\t\"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t\t\t\t\"Immer only supports deleting array indices\",\n\t\t\t\t\"Immer only supports setting array indices and the 'length' property\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'original' expects a draft, got: ${thing}`\n\t\t\t\t}\n\t\t\t\t// Note: if more errors are added, the errorOffset in Patches.ts should be increased\n\t\t\t\t// See Patches.ts for additional errors\n\t\t ]\n\t\t: []\n\nexport function die(error: number, ...args: any[]): never {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst e = errors[error]\n\t\tconst msg = typeof e === \"function\" ? e.apply(null, args as any) : e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\tArchType,\n\tdie,\n\tStrictMode\n} from \"../internal\"\n\nexport const getPrototypeOf = Object.getPrototypeOf\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\nconst cachedCtorStrings = new WeakMap()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null || proto === Object.prototype) return true\n\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\tif (Ctor === Object) return true\n\n\tif (typeof Ctor !== \"function\") return false\n\n\tlet ctorString = cachedCtorStrings.get(Ctor)\n\tif (ctorString === undefined) {\n\t\tctorString = Function.toString.call(Ctor)\n\t\tcachedCtorStrings.set(Ctor, ctorString)\n\t}\n\n\treturn ctorString === objectCtorString\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original<T>(value: T): T | undefined\nexport function original(value: Drafted<any>): any {\n\tif (!isDraft(value)) die(15, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/**\n * Each iterates a map, set or array.\n * Or, if any other kind of object, all of its own properties.\n *\n * @param obj The object to iterate over\n * @param iter The iterator function\n * @param strict When true (default), includes symbols and non-enumerable properties.\n * When false, uses looseiteration over only enumerable string properties.\n */\nexport function each<T extends Objectish>(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tstrict?: boolean\n): void\nexport function each(obj: any, iter: any, strict: boolean = true) {\n\tif (getArchtype(obj) === ArchType.Object) {\n\t\t// If strict, we do a full iteration including symbols and non-enumerable properties\n\t\t// Otherwise, we only iterate enumerable string properties for performance\n\t\tconst keys = strict ? Reflect.ownKeys(obj) : Object.keys(obj)\n\t\tkeys.forEach(key => {\n\t\t\titer(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): ArchType {\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_\n\t\t: Array.isArray(thing)\n\t\t? ArchType.Array\n\t\t: isMap(thing)\n\t\t? ArchType.Map\n\t\t: isSet(thing)\n\t\t? ArchType.Set\n\t\t: ArchType.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === ArchType.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === ArchType.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === ArchType.Map) thing.set(propOrOldValue, value)\n\telse if (t === ArchType.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any, strict: StrictMode) {\n\tif (isMap(base)) {\n\t\treturn new Map(base)\n\t}\n\tif (isSet(base)) {\n\t\treturn new Set(base)\n\t}\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\n\tconst isPlain = isPlainObject(base)\n\n\tif (strict === true || (strict === \"class_only\" && !isPlain)) {\n\t\t// Perform a strict copy\n\t\tconst descriptors = Object.getOwnPropertyDescriptors(base)\n\t\tdelete descriptors[DRAFT_STATE as any]\n\t\tlet keys = Reflect.ownKeys(descriptors)\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key: any = keys[i]\n\t\t\tconst desc = descriptors[key]\n\t\t\tif (desc.writable === false) {\n\t\t\t\tdesc.writable = true\n\t\t\t\tdesc.configurable = true\n\t\t\t}\n\t\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t\t// with libraries that trap values, like mobx or vue\n\t\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\t\tif (desc.get || desc.set)\n\t\t\t\tdescriptors[key] = {\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\t\tvalue: base[key]\n\t\t\t\t}\n\t\t}\n\t\treturn Object.create(getPrototypeOf(base), descriptors)\n\t} else {\n\t\t// perform a sloppy copy\n\t\tconst proto = getPrototypeOf(base)\n\t\tif (proto !== null && isPlain) {\n\t\t\treturn {...base} // assumption: better inner class optimization than the assign below\n\t\t}\n\t\tconst obj = Object.create(proto)\n\t\treturn Object.assign(obj, base)\n\t}\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze<T>(obj: T, deep?: boolean): T\nexport function freeze<T>(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tObject.defineProperties(obj, {\n\t\t\tset: dontMutateMethodOverride,\n\t\t\tadd: dontMutateMethodOverride,\n\t\t\tclear: dontMutateMethodOverride,\n\t\t\tdelete: dontMutateMethodOverride\n\t\t})\n\t}\n\tObject.freeze(obj)\n\tif (deep)\n\t\t// See #590, don't recurse into non-enumerable / Symbol properties when freezing\n\t\t// So use Object.values (only string-like, enumerables) instead of each()\n\t\tObject.values(obj).forEach(value => freeze(value, true))\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nconst dontMutateMethodOverride = {\n\tvalue: dontMutateFrozenCollections\n}\n\nexport function isFrozen(obj: any): boolean {\n\t// Fast path: primitives and null/undefined are always \"frozen\"\n\tif (obj === null || typeof obj !== \"object\") return true\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tDrafted,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tArchType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_<T>(draft: T, patches: readonly Patch[]): T\n\t}\n\tMapSet?: {\n\t\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T\n\t\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin<K extends keyof Plugins>(\n\tpluginKey: K\n): Exclude<Plugins[K], undefined> {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(0, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin<K extends keyof Plugins>(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ArchType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map<any, boolean> | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted<AnyMap, MapState>\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ArchType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map<any, Drafted> // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted<AnySet, SetState>\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tArchType,\n\tgetPlugin\n} from \"../internal\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (state.type_ === ArchType.Object || state.type_ === ArchType.Array)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tArchType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tisMap\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst useStrictIteration = rootScope.immer_.shouldUseStrictIteration()\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\tuseStrictIteration\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result = state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ArchType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(\n\t\t\tresultEach,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(\n\t\t\t\t\trootScope,\n\t\t\t\t\tstate,\n\t\t\t\t\tresult,\n\t\t\t\t\tkey,\n\t\t\t\t\tchildValue,\n\t\t\t\t\tpath,\n\t\t\t\t\tisSet\n\t\t\t\t),\n\t\t\tuseStrictIteration\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (childValue == null) {\n\t\treturn\n\t}\n\n\tif (typeof childValue !== \"object\" && !targetIsSet) {\n\t\treturn\n\t}\n\tconst childIsFrozen = isFrozen(childValue)\n\tif (childIsFrozen && !targetIsSet) {\n\t\treturn\n\t}\n\n\tif (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n\t\tdie(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ArchType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude<ImmerState, SetState>).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !childIsFrozen) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tif (\n\t\t\tparentState &&\n\t\t\tparentState.base_ &&\n\t\t\tparentState.base_[prop] === childValue &&\n\t\t\tchildIsFrozen\n\t\t) {\n\t\t\t// Object is unchanged from base - no need to process further\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// Immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\t// Per #590, we never freeze symbolic properties. Just to make sure don't accidentally interfere\n\t\t// with other frameworks.\n\t\tif (\n\t\t\t(!parentState || !parentState.scope_.parent_) &&\n\t\t\ttypeof prop !== \"symbol\" &&\n\t\t\t(isMap(targetObject)\n\t\t\t\t? targetObject.has(prop)\n\t\t\t\t: Object.prototype.propertyIsEnumerable.call(targetObject, prop))\n\t\t)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tgetPrototypeOf,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tArchType,\n\tImmerScope\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ArchType.Object\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted<AnyObject, ProxyObjectState>\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ArchType.Array\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted<AnyArray, ProxyArrayState>\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy<T extends Objectish>(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted<T, ProxyState> {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ArchType.Array : (ArchType.Object as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler<object | Array<any>> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler<ProxyState> = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(value, state))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\tif (state.copy_) {\n\t\t\tdelete state.copy_[prop]\n\t\t}\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ArchType.Array || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop as any)))\n\t\tdie(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (\n\t\tprocess.env.NODE_ENV !== \"production\" &&\n\t\tprop !== \"length\" &&\n\t\tisNaN(parseInt(prop as any))\n\t)\n\t\tdie(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {\n\tbase_: any\n\tcopy_: any\n\tscope_: ImmerScope\n}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(\n\t\t\tstate.base_,\n\t\t\tstate.scope_.immer_.useStrictShallowCopy_\n\t\t)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport type StrictMode = boolean | \"class_only\"\n\nexport class Immer implements ProducersFns {\n\tautoFreeze_: boolean = true\n\tuseStrictShallowCopy_: StrictMode = false\n\tuseStrictIteration_: boolean = true\n\n\tconstructor(config?: {\n\t\tautoFreeze?: boolean\n\t\tuseStrictShallowCopy?: StrictMode\n\t\tuseStrictIteration?: boolean\n\t}) {\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t\tif (typeof config?.useStrictShallowCopy === \"boolean\")\n\t\t\tthis.setUseStrictShallowCopy(config!.useStrictShallowCopy)\n\t\tif (typeof config?.useStrictIteration === \"boolean\")\n\t\t\tthis.setUseStrictIteration(config!.useStrictIteration)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(1, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft<T extends Objectish>(base: T): Draft<T> {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft<D extends Draft<any>>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft<infer T> ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (!state || !state.isManual_) die(9)\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to enable strict shallow copy.\n\t *\n\t * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n\t */\n\tsetUseStrictShallowCopy(value: StrictMode) {\n\t\tthis.useStrictShallowCopy_ = value\n\t}\n\n\t/**\n\t * Pass false to use faster iteration that skips non-enumerable properties\n\t * but still handles symbols for compatibility.\n\t *\n\t * By default, strict iteration is enabled (includes all own properties).\n\t */\n\tsetUseStrictIteration(value: boolean) {\n\t\tthis.useStrictIteration_ = value\n\t}\n\n\tshouldUseStrictIteration(): boolean {\n\t\treturn this.useStrictIteration_\n\t}\n\n\tapplyPatches<T extends Objectish>(base: T, patches: readonly Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy<T extends Objectish>(\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: createProxyProxy(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tisFrozen\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current<T>(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(10, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value) || isFrozen(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tlet strict = true // Default to strict for compatibility\n\tif (state) {\n\t\tif (!state.modified_) return state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_)\n\t\tstrict = state.scope_.immer_.shouldUseStrictIteration()\n\t} else {\n\t\tcopy = shallowCopy(value, true)\n\t}\n\t// recurse\n\teach(\n\t\tcopy,\n\t\t(key, childValue) => {\n\t\t\tset(copy, key, currentImpl(childValue))\n\t\t},\n\t\tstrict\n\t)\n\tif (state) {\n\t\tstate.finalized_ = false\n\t}\n\treturn copy\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tWritableDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\tProducer,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze,\n\tObjectish,\n\tStrictMode\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = /* @__PURE__ */ immer.produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\nexport const setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(\n\timmer\n)\n\n/**\n * Pass false to use loose iteration that only processes enumerable string properties.\n * This skips symbols and non-enumerable properties for maximum performance.\n *\n * By default, strict iteration is enabled (includes all own properties).\n */\nexport const setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(\n\timmer\n)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = /* @__PURE__ */ immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft<T>(value: T): Draft<T> {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable<T>(value: T): Immutable<T> {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n return Object.prototype.toString.call(value);\n}\n\nexports.getTag = getTag;\n","var parseIsSsrByDefault = () => !(typeof window !== 'undefined' && window.document && Boolean(window.document.createElement) && window.setTimeout);\nexport var Global = {\n devToolsEnabled: false,\n isSsr: parseIsSsrByDefault()\n};","var _excluded = [\"dangerouslySetInnerHTML\", \"ticks\"],\n _excluded2 = [\"id\"],\n _excluded3 = [\"domain\"],\n _excluded4 = [\"domain\"];\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); }\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; }\nimport * as React from 'react';\nimport { isValidElement, useLayoutEffect, useRef } from 'react';\nimport { clsx } from 'clsx';\nimport { CartesianAxis } from './CartesianAxis';\nimport { addYAxis, removeYAxis, updateYAxisWidth } from '../state/cartesianAxisSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { implicitYAxis, selectAxisScale, selectTicksOfAxis, selectYAxisPosition, selectYAxisSettingsNoDefaults, selectYAxisSize } from '../state/selectors/axisSelectors';\nimport { selectAxisViewBox } from '../state/selectors/selectChartOffsetInternal';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { isLabelContentAFunction } from '../component/Label';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nfunction SetYAxisSettings(settings) {\n var dispatch = useAppDispatch();\n useLayoutEffect(() => {\n dispatch(addYAxis(settings));\n return () => {\n dispatch(removeYAxis(settings));\n };\n }, [settings, dispatch]);\n return null;\n}\nvar YAxisImpl = props => {\n var {\n yAxisId,\n className,\n width,\n label\n } = props;\n var cartesianAxisRef = useRef(null);\n var labelRef = useRef(null);\n var viewBox = useAppSelector(selectAxisViewBox);\n var isPanorama = useIsPanorama();\n var dispatch = useAppDispatch();\n var axisType = 'yAxis';\n var scale = useAppSelector(state => selectAxisScale(state, axisType, yAxisId, isPanorama));\n var axisSize = useAppSelector(state => selectYAxisSize(state, yAxisId));\n var position = useAppSelector(state => selectYAxisPosition(state, yAxisId));\n var cartesianTickItems = useAppSelector(state => selectTicksOfAxis(state, axisType, yAxisId, isPanorama));\n /*\n * Here we select settings from the store and prefer to use them instead of the actual props\n * so that the chart is consistent. If we used the props directly, some components will use axis settings\n * from state and some from props and because there is a render step between these two, they might be showing different things.\n * https://github.com/recharts/recharts/issues/6257\n */\n var synchronizedSettings = useAppSelector(state => selectYAxisSettingsNoDefaults(state, yAxisId));\n useLayoutEffect(() => {\n // No dynamic width calculation is done when width !== 'auto'\n // or when a function/react element is used for label\n if (width !== 'auto' || !axisSize || isLabelContentAFunction(label) || /*#__PURE__*/isValidElement(label) || synchronizedSettings == null) {\n return;\n }\n var axisComponent = cartesianAxisRef.current;\n if (!axisComponent) {\n return;\n }\n var updatedYAxisWidth = axisComponent.getCalculatedWidth();\n\n // if the width has changed, dispatch an action to update the width\n if (Math.round(axisSize.width) !== Math.round(updatedYAxisWidth)) {\n dispatch(updateYAxisWidth({\n id: yAxisId,\n width: updatedYAxisWidth\n }));\n }\n }, [\n // The dependency on cartesianAxisRef.current is not needed because useLayoutEffect will run after every render.\n // The ref will be populated by then.\n // To re-run this effect when ticks change, we can depend on the ticks array from the store.\n cartesianTickItems, axisSize, dispatch, label, yAxisId, width, synchronizedSettings]);\n if (axisSize == null || position == null || synchronizedSettings == null) {\n return null;\n }\n var {\n dangerouslySetInnerHTML,\n ticks\n } = props,\n allOtherProps = _objectWithoutProperties(props, _excluded);\n var {\n id\n } = synchronizedSettings,\n restSynchronizedSettings = _objectWithoutProperties(synchronizedSettings, _excluded2);\n return /*#__PURE__*/React.createElement(CartesianAxis, _extends({}, allOtherProps, restSynchronizedSettings, {\n ref: cartesianAxisRef,\n labelRef: labelRef,\n scale: scale,\n x: position.x,\n y: position.y,\n tickTextProps: width === 'auto' ? {\n width: undefined\n } : {\n width\n },\n width: axisSize.width,\n height: axisSize.height,\n className: clsx(\"recharts-\".concat(axisType, \" \").concat(axisType), className),\n viewBox: viewBox,\n ticks: cartesianTickItems,\n axisType: axisType\n }));\n};\nexport var yAxisDefaultProps = {\n allowDataOverflow: implicitYAxis.allowDataOverflow,\n allowDecimals: implicitYAxis.allowDecimals,\n allowDuplicatedCategory: implicitYAxis.allowDuplicatedCategory,\n hide: false,\n mirror: implicitYAxis.mirror,\n orientation: implicitYAxis.orientation,\n padding: implicitYAxis.padding,\n reversed: implicitYAxis.reversed,\n scale: implicitYAxis.scale,\n tickCount: implicitYAxis.tickCount,\n type: implicitYAxis.type,\n width: implicitYAxis.width,\n yAxisId: 0\n};\nvar YAxisSettingsDispatcher = outsideProps => {\n var _props$interval, _props$includeHidden, _props$angle, _props$minTickGap, _props$tick;\n var props = resolveDefaultProps(outsideProps, yAxisDefaultProps);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetYAxisSettings, {\n interval: (_props$interval = props.interval) !== null && _props$interval !== void 0 ? _props$interval : 'preserveEnd',\n id: props.yAxisId,\n scale: props.scale,\n type: props.type,\n domain: props.domain,\n allowDataOverflow: props.allowDataOverflow,\n dataKey: props.dataKey,\n allowDuplicatedCategory: props.allowDuplicatedCategory,\n allowDecimals: props.allowDecimals,\n tickCount: props.tickCount,\n padding: props.padding,\n includeHidden: (_props$includeHidden = props.includeHidden) !== null && _props$includeHidden !== void 0 ? _props$includeHidden : false,\n reversed: props.reversed,\n ticks: props.ticks,\n width: props.width,\n orientation: props.orientation,\n mirror: props.mirror,\n hide: props.hide,\n unit: props.unit,\n name: props.name,\n angle: (_props$angle = props.angle) !== null && _props$angle !== void 0 ? _props$angle : 0,\n minTickGap: (_props$minTickGap = props.minTickGap) !== null && _props$minTickGap !== void 0 ? _props$minTickGap : 5,\n tick: (_props$tick = props.tick) !== null && _props$tick !== void 0 ? _props$tick : true,\n tickFormatter: props.tickFormatter\n }), /*#__PURE__*/React.createElement(YAxisImpl, props));\n};\nvar YAxisMemoComparator = (prevProps, nextProps) => {\n var {\n domain: prevDomain\n } = prevProps,\n prevRest = _objectWithoutProperties(prevProps, _excluded3);\n var {\n domain: nextDomain\n } = nextProps,\n nextRest = _objectWithoutProperties(nextProps, _excluded4);\n if (!shallowEqual(prevRest, nextRest)) {\n return false;\n }\n if (Array.isArray(prevDomain) && prevDomain.length === 2 && Array.isArray(nextDomain) && nextDomain.length === 2) {\n return prevDomain[0] === nextDomain[0] && prevDomain[1] === nextDomain[1];\n }\n return shallowEqual({\n domain: prevDomain\n }, {\n domain: nextDomain\n });\n};\nexport var YAxis = /*#__PURE__*/React.memo(YAxisSettingsDispatcher, YAxisMemoComparator);\nYAxis.displayName = 'YAxis';","export var selectTooltipState = state => state.tooltip;","import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nexport var defaultPolarAngleAxisProps = {\n allowDecimals: false,\n allowDuplicatedCategory: true,\n // if I set this to false then Tooltip synchronisation stops working in Radar, wtf\n angleAxisId: 0,\n axisLine: true,\n cx: 0,\n cy: 0,\n orientation: 'outer',\n reversed: false,\n scale: 'auto',\n tick: true,\n tickLine: true,\n tickSize: 8,\n type: 'category',\n zIndex: DefaultZIndexes.axis\n};","import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nexport var defaultPolarRadiusAxisProps = {\n allowDataOverflow: false,\n allowDecimals: false,\n allowDuplicatedCategory: true,\n angle: 0,\n axisLine: true,\n cx: 0,\n cy: 0,\n includeHidden: false,\n orientation: 'right',\n radiusAxisId: 0,\n reversed: false,\n scale: 'auto',\n stroke: '#ccc',\n tick: true,\n tickCount: 5,\n type: 'number',\n zIndex: DefaultZIndexes.axis\n};","import { createSelector } from 'reselect';\nimport { selectChartHeight, selectChartWidth } from './containerSelectors';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { getMaxRadius } from '../../util/PolarUtils';\nimport { getPercentValue } from '../../util/DataUtils';\nimport { defaultPolarAngleAxisProps } from '../../polar/defaultPolarAngleAxisProps';\nimport { defaultPolarRadiusAxisProps } from '../../polar/defaultPolarRadiusAxisProps';\nimport { combineAxisRangeWithReverse } from './combiners/combineAxisRangeWithReverse';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nexport var implicitAngleAxis = {\n allowDataOverflow: false,\n allowDecimals: false,\n allowDuplicatedCategory: false,\n // defaultPolarAngleAxisProps.allowDuplicatedCategory has it set to true but the actual axis rendering ignores the prop because reasons,\n dataKey: undefined,\n domain: undefined,\n id: defaultPolarAngleAxisProps.angleAxisId,\n includeHidden: false,\n name: undefined,\n reversed: defaultPolarAngleAxisProps.reversed,\n scale: defaultPolarAngleAxisProps.scale,\n tick: defaultPolarAngleAxisProps.tick,\n tickCount: undefined,\n ticks: undefined,\n type: defaultPolarAngleAxisProps.type,\n unit: undefined\n};\nexport var implicitRadiusAxis = {\n allowDataOverflow: defaultPolarRadiusAxisProps.allowDataOverflow,\n allowDecimals: false,\n allowDuplicatedCategory: defaultPolarRadiusAxisProps.allowDuplicatedCategory,\n dataKey: undefined,\n domain: undefined,\n id: defaultPolarRadiusAxisProps.radiusAxisId,\n includeHidden: false,\n name: undefined,\n reversed: false,\n scale: defaultPolarRadiusAxisProps.scale,\n tick: defaultPolarRadiusAxisProps.tick,\n tickCount: defaultPolarRadiusAxisProps.tickCount,\n ticks: undefined,\n type: defaultPolarRadiusAxisProps.type,\n unit: undefined\n};\nexport var implicitRadialBarAngleAxis = {\n allowDataOverflow: false,\n allowDecimals: false,\n allowDuplicatedCategory: defaultPolarAngleAxisProps.allowDuplicatedCategory,\n dataKey: undefined,\n domain: undefined,\n id: defaultPolarAngleAxisProps.angleAxisId,\n includeHidden: false,\n name: undefined,\n reversed: false,\n scale: defaultPolarAngleAxisProps.scale,\n tick: defaultPolarAngleAxisProps.tick,\n tickCount: undefined,\n ticks: undefined,\n type: 'number',\n unit: undefined\n};\nexport var implicitRadialBarRadiusAxis = {\n allowDataOverflow: defaultPolarRadiusAxisProps.allowDataOverflow,\n allowDecimals: false,\n allowDuplicatedCategory: defaultPolarRadiusAxisProps.allowDuplicatedCategory,\n dataKey: undefined,\n domain: undefined,\n id: defaultPolarRadiusAxisProps.radiusAxisId,\n includeHidden: false,\n name: undefined,\n reversed: false,\n scale: defaultPolarRadiusAxisProps.scale,\n tick: defaultPolarRadiusAxisProps.tick,\n tickCount: defaultPolarRadiusAxisProps.tickCount,\n ticks: undefined,\n type: 'category',\n unit: undefined\n};\nexport var selectAngleAxis = (state, angleAxisId) => {\n if (state.polarAxis.angleAxis[angleAxisId] != null) {\n return state.polarAxis.angleAxis[angleAxisId];\n }\n if (state.layout.layoutType === 'radial') {\n return implicitRadialBarAngleAxis;\n }\n return implicitAngleAxis;\n};\nexport var selectRadiusAxis = (state, radiusAxisId) => {\n if (state.polarAxis.radiusAxis[radiusAxisId] != null) {\n return state.polarAxis.radiusAxis[radiusAxisId];\n }\n if (state.layout.layoutType === 'radial') {\n return implicitRadialBarRadiusAxis;\n }\n return implicitRadiusAxis;\n};\nexport var selectPolarOptions = state => state.polarOptions;\nexport var selectMaxRadius = createSelector([selectChartWidth, selectChartHeight, selectChartOffsetInternal], getMaxRadius);\nvar selectInnerRadius = createSelector([selectPolarOptions, selectMaxRadius], (polarChartOptions, maxRadius) => {\n if (polarChartOptions == null) {\n return undefined;\n }\n return getPercentValue(polarChartOptions.innerRadius, maxRadius, 0);\n});\nexport var selectOuterRadius = createSelector([selectPolarOptions, selectMaxRadius], (polarChartOptions, maxRadius) => {\n if (polarChartOptions == null) {\n return undefined;\n }\n return getPercentValue(polarChartOptions.outerRadius, maxRadius, maxRadius * 0.8);\n});\nvar combineAngleAxisRange = polarOptions => {\n if (polarOptions == null) {\n return [0, 0];\n }\n var {\n startAngle,\n endAngle\n } = polarOptions;\n return [startAngle, endAngle];\n};\nexport var selectAngleAxisRange = createSelector([selectPolarOptions], combineAngleAxisRange);\nexport var selectAngleAxisRangeWithReversed = createSelector([selectAngleAxis, selectAngleAxisRange], combineAxisRangeWithReverse);\nexport var selectRadiusAxisRange = createSelector([selectMaxRadius, selectInnerRadius, selectOuterRadius], (maxRadius, innerRadius, outerRadius) => {\n if (maxRadius == null || innerRadius == null || outerRadius == null) {\n return undefined;\n }\n return [innerRadius, outerRadius];\n});\nexport var selectRadiusAxisRangeWithReversed = createSelector([selectRadiusAxis, selectRadiusAxisRange], combineAxisRangeWithReverse);\nexport var selectPolarViewBox = createSelector([selectChartLayout, selectPolarOptions, selectInnerRadius, selectOuterRadius, selectChartWidth, selectChartHeight], (layout, polarOptions, innerRadius, outerRadius, width, height) => {\n if (layout !== 'centric' && layout !== 'radial' || polarOptions == null || innerRadius == null || outerRadius == null) {\n return undefined;\n }\n var {\n cx,\n cy,\n startAngle,\n endAngle\n } = polarOptions;\n return {\n cx: getPercentValue(cx, width, width / 2),\n cy: getPercentValue(cy, height, height / 2),\n innerRadius,\n outerRadius,\n startAngle,\n endAngle,\n clockWise: false // this property look useful, why not use it?\n };\n});","import { isValidElement } from 'react';\nvar SVGElementPropKeys = ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-busy', 'aria-checked', 'aria-colcount', 'aria-colindex', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowcount', 'aria-rowindex', 'aria-rowspan', 'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext', 'className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style',\n/*\n * removed 'type' SVGElementPropKey because we do not currently use any SVG elements\n * that can use it, and it conflicts with the recharts prop 'type'\n * https://github.com/recharts/recharts/pull/3327\n * https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/type\n */\n// 'type',\n'target', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];\nexport function isSvgElementPropKey(key) {\n if (typeof key !== 'string') {\n return false;\n }\n var allowedSvgKeys = SVGElementPropKeys;\n return allowedSvgKeys.includes(key);\n}\n/**\n * Checks if the property is a data attribute.\n * @param key The property key.\n * @returns True if the key starts with 'data-', false otherwise.\n */\nexport function isDataAttribute(key) {\n return typeof key === 'string' && key.startsWith('data-');\n}\n\n/**\n * Filters an object to only include SVG properties. Removes all event handlers too.\n * @param obj - The object to filter\n * @returns A new object containing only valid SVG properties, excluding event handlers.\n */\nexport function svgPropertiesNoEvents(obj) {\n var filteredEntries = Object.entries(obj).filter(_ref => {\n var [key] = _ref;\n return isSvgElementPropKey(key) || isDataAttribute(key);\n });\n return Object.fromEntries(filteredEntries);\n}\n\n/**\n * Function to filter SVG properties from various input types.\n * The input types can be:\n * - A record of string keys to any values, in which case it returns a record of only SVG properties\n * - A React element, in which case it returns the props of the element filtered to only SVG properties\n * - Anything else, in which case it returns null\n *\n * This function has a wide-open return type, because it will read and filter the props of an arbitrary React element.\n * This can be SVG, HTML, whatnot, with arbitrary values, so we can't type it more specifically.\n *\n * If you wish to have a type-safe version, use svgPropertiesNoEvents directly with a typed object.\n *\n * @param input - The input to filter, which can be a record, a React element, or other types.\n * @returns A record of SVG properties if the input is a record or React element, otherwise null.\n */\nexport function svgPropertiesNoEventsFromUnknown(input) {\n if (input == null) {\n return null;\n }\n if (/*#__PURE__*/isValidElement(input) && typeof input.props === 'object' && input.props !== null) {\n var p = input.props;\n return svgPropertiesNoEvents(p);\n }\n if (typeof input === 'object' && !Array.isArray(input)) {\n return svgPropertiesNoEvents(input);\n }\n return null;\n}","import get from 'es-toolkit/compat/get';\nexport var mathSign = value => {\n if (value === 0) {\n return 0;\n }\n if (value > 0) {\n return 1;\n }\n return -1;\n};\nexport var isNan = value => {\n // eslint-disable-next-line eqeqeq\n return typeof value == 'number' && value != +value;\n};\nexport var isPercent = value => typeof value === 'string' && value.indexOf('%') === value.length - 1;\nexport var isNumber = value => (typeof value === 'number' || value instanceof Number) && !isNan(value);\nexport var isNumOrStr = value => isNumber(value) || typeof value === 'string';\nvar idCounter = 0;\nexport var uniqueId = prefix => {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n\n/**\n * Calculates the numeric value represented by a percent string or number, based on a total value.\n *\n * - If `percent` is not a number or string, returns `defaultValue`.\n * - If `percent` is a percent string but `totalValue` is null/undefined, returns `defaultValue`.\n * - If the result is NaN, returns `defaultValue`.\n * - If `validate` is true and the result exceeds `totalValue`, returns `totalValue`.\n *\n * @param percent - The percent value to convert. Can be a number (e.g. 25) or a string ending with '%' (e.g. '25%').\n * If a string, it must end with '%' to be treated as a percent; otherwise, it is parsed as a number.\n * @param totalValue - The total value to calculate the percent of. Required if `percent` is a percent string.\n * @param defaultValue - The value returned if `percent` is undefined, invalid, or cannot be converted to a number.\n * @param validate - If true, ensures the result does not exceed `totalValue` (when provided).\n * @returns The calculated value, or `defaultValue` for invalid input.\n */\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (!isNumber(percent) && typeof percent !== 'string') {\n return defaultValue;\n }\n var value;\n if (isPercent(percent)) {\n if (totalValue == null) {\n return defaultValue;\n }\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n if (isNan(value)) {\n value = defaultValue;\n }\n if (validate && totalValue != null && value > totalValue) {\n value = totalValue;\n }\n return value;\n};\nexport var hasDuplicate = ary => {\n if (!Array.isArray(ary)) {\n return false;\n }\n var len = ary.length;\n var cache = {};\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n return false;\n};\nexport function interpolate(start, end, t) {\n if (isNumber(start) && isNumber(end)) {\n return start + t * (end - start);\n }\n return end;\n}\nexport function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return undefined;\n }\n return ary.find(entry => entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : get(entry, specifiedKey)) === specifiedValue);\n}\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\nexport var getLinearRegression = data => {\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n var xcurrent = 0;\n var ycurrent = 0;\n for (var i = 0; i < len; i++) {\n xcurrent = data[i].cx || 0;\n ycurrent = data[i].cy || 0;\n xsum += xcurrent;\n ysum += ycurrent;\n xysum += xcurrent * ycurrent;\n xxsum += xcurrent * xcurrent;\n xmin = Math.min(xmin, xcurrent);\n xmax = Math.max(xmax, xcurrent);\n }\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin,\n xmax,\n a,\n b: (ysum - a * xsum) / len\n };\n};\n/**\n * Checks if the value is null or undefined\n * @param value The value to check\n * @returns true if the value is null or undefined\n */\nexport var isNullish = value => {\n return value === null || typeof value === 'undefined';\n};\n\n/**\n * Uppercase the first letter of a string\n * @param {string} value The string to uppercase\n * @returns {string} The uppercased string\n */\nexport var upperFirst = value => {\n if (isNullish(value)) {\n return value;\n }\n return \"\".concat(value.charAt(0).toUpperCase()).concat(value.slice(1));\n};\n\n/**\n * Checks if the value is not null nor undefined.\n * @param value The value to check\n * @returns true if the value is not null nor undefined\n */\nexport function isNotNil(value) {\n return value != null;\n}\n\n/**\n * No-operation function that does nothing.\n * Useful as a placeholder or default callback function.\n */\nexport function noop() {}","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst getTag = require('../_internal/getTag.js');\n\nfunction isArguments(value) {\n return value !== null && typeof value === 'object' && getTag.getTag(value) === '[object Arguments]';\n}\n\nexports.isArguments = isArguments;\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); }\n/**\n * This function mimics the behavior of the `defaultProps` static property in React.\n * Functional components do not have a defaultProps property, so this function is useful to resolve default props.\n *\n * The common recommendation is to use ES6 destructuring with default values in the function signature,\n * but you need to be careful there and make sure you destructure all the individual properties\n * and not the whole object. See the test file for example.\n *\n * And because destructuring all properties one by one is a faff, and it's easy to miss one property,\n * this function exists.\n *\n * @param realProps - the props object passed to the component by the user\n * @param defaultProps - the default props object defined in the component by Recharts\n * @returns - the props object with all the default props resolved. All `undefined` values are replaced with the default value.\n */\nexport function resolveDefaultProps(realProps, defaultProps) {\n /*\n * To avoid mutating the original `realProps` object passed to the function, create a shallow copy of it.\n * `resolvedProps` will be modified directly with the defaults.\n */\n var resolvedProps = _objectSpread({}, realProps);\n /*\n * Since the function guarantees `D extends Partial<T>`, this assignment is safe.\n * It allows TypeScript to work with the well-defined `Partial<T>` type inside the loop,\n * making subsequent type inference (especially for `dp[key]`) much more straightforward for the compiler.\n * This is a key step to improve type safety *without* value assertions later.\n */\n var dp = defaultProps;\n /*\n * `Object.keys` doesn't preserve strong key types - it always returns Array<string>.\n * However, due to the `D extends Partial<T>` constraint,\n * we know these keys *must* also be valid keys of `T`.\n * This assertion informs TypeScript of this relationship, avoiding type errors when using `key` to index `acc` (type T).\n *\n * Type assertions are not sound but in this case it's necessary\n * as `Object.keys` does not do what we want it to do.\n */\n var keys = Object.keys(defaultProps);\n var withDefaults = keys.reduce((acc, key) => {\n if (acc[key] === undefined && dp[key] !== undefined) {\n acc[key] = dp[key];\n }\n return acc;\n }, resolvedProps);\n /*\n * And again type assertions are not safe but here we have done the runtime work\n * so let's bypass the lack of static type safety and tell the compiler what happened.\n */\n return withDefaults;\n}\n\n/**\n * Helper type to extract the keys of T that are required.\n * It iterates through each key K in T. If Pick<T, K> cannot be assigned an empty object {},\n * it means K is required, so we keep K; otherwise, we discard it (never).\n * [keyof T] at the end creates a union of the kept keys.\n */\n\n/**\n * Helper type to extract the keys of T that are optional.\n * It iterates through each key K in T. If Pick<T, K> can be assigned an empty object {},\n * it means K is optional (or potentially missing), so we keep K; otherwise, we discard it (never).\n * [keyof T] at the end creates a union of the kept keys.\n */\n\n/**\n * Helper type to ensure keys of D exist in T.\n * For each key K in D, if K is also a key of T, keep the type D[K].\n * If K is NOT a key of T, map it to type `never`.\n * An object cannot have a property of type `never`, effectively disallowing extra keys.\n */\n\n/**\n * This type will take a source type `Props` and a default type `Defaults` and will return a new type\n * where all properties that are optional in `Props` but required in `Defaults` are made required in the result.\n * Properties that are required in `Props` and optional in `Defaults` will remain required.\n * Properties that are optional in both `Props` and `Defaults` will remain optional.\n *\n * This is useful for creating a type that represents the resolved props of a component with default props.\n */","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction last(arr) {\n return arr[arr.length - 1];\n}\n\nexports.last = last;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst getSymbols = require('../compat/_internal/getSymbols.js');\nconst getTag = require('../compat/_internal/getTag.js');\nconst tags = require('../compat/_internal/tags.js');\nconst isPrimitive = require('../predicate/isPrimitive.js');\nconst isTypedArray = require('../predicate/isTypedArray.js');\n\nfunction cloneDeepWith(obj, cloneValue) {\n return cloneDeepWithImpl(obj, undefined, obj, new Map(), cloneValue);\n}\nfunction cloneDeepWithImpl(valueToClone, keyToClone, objectToClone, stack = new Map(), cloneValue = undefined) {\n const cloned = cloneValue?.(valueToClone, keyToClone, objectToClone, stack);\n if (cloned !== undefined) {\n return cloned;\n }\n if (isPrimitive.isPrimitive(valueToClone)) {\n return valueToClone;\n }\n if (stack.has(valueToClone)) {\n return stack.get(valueToClone);\n }\n if (Array.isArray(valueToClone)) {\n const result = new Array(valueToClone.length);\n stack.set(valueToClone, result);\n for (let i = 0; i < valueToClone.length; i++) {\n result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n }\n if (Object.hasOwn(valueToClone, 'index')) {\n result.index = valueToClone.index;\n }\n if (Object.hasOwn(valueToClone, 'input')) {\n result.input = valueToClone.input;\n }\n return result;\n }\n if (valueToClone instanceof Date) {\n return new Date(valueToClone.getTime());\n }\n if (valueToClone instanceof RegExp) {\n const result = new RegExp(valueToClone.source, valueToClone.flags);\n result.lastIndex = valueToClone.lastIndex;\n return result;\n }\n if (valueToClone instanceof Map) {\n const result = new Map();\n stack.set(valueToClone, result);\n for (const [key, value] of valueToClone) {\n result.set(key, cloneDeepWithImpl(value, key, objectToClone, stack, cloneValue));\n }\n return result;\n }\n if (valueToClone instanceof Set) {\n const result = new Set();\n stack.set(valueToClone, result);\n for (const value of valueToClone) {\n result.add(cloneDeepWithImpl(value, undefined, objectToClone, stack, cloneValue));\n }\n return result;\n }\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer(valueToClone)) {\n return valueToClone.subarray();\n }\n if (isTypedArray.isTypedArray(valueToClone)) {\n const result = new (Object.getPrototypeOf(valueToClone).constructor)(valueToClone.length);\n stack.set(valueToClone, result);\n for (let i = 0; i < valueToClone.length; i++) {\n result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n }\n return result;\n }\n if (valueToClone instanceof ArrayBuffer ||\n (typeof SharedArrayBuffer !== 'undefined' && valueToClone instanceof SharedArrayBuffer)) {\n return valueToClone.slice(0);\n }\n if (valueToClone instanceof DataView) {\n const result = new DataView(valueToClone.buffer.slice(0), valueToClone.byteOffset, valueToClone.byteLength);\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof File !== 'undefined' && valueToClone instanceof File) {\n const result = new File([valueToClone], valueToClone.name, {\n type: valueToClone.type,\n });\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof Blob !== 'undefined' && valueToClone instanceof Blob) {\n const result = new Blob([valueToClone], { type: valueToClone.type });\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Error) {\n const result = new valueToClone.constructor();\n stack.set(valueToClone, result);\n result.message = valueToClone.message;\n result.name = valueToClone.name;\n result.stack = valueToClone.stack;\n result.cause = valueToClone.cause;\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Boolean) {\n const result = new Boolean(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Number) {\n const result = new Number(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof String) {\n const result = new String(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof valueToClone === 'object' && isCloneableObject(valueToClone)) {\n const result = Object.create(Object.getPrototypeOf(valueToClone));\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n return valueToClone;\n}\nfunction copyProperties(target, source, objectToClone = target, stack, cloneValue) {\n const keys = [...Object.keys(source), ...getSymbols.getSymbols(source)];\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const descriptor = Object.getOwnPropertyDescriptor(target, key);\n if (descriptor == null || descriptor.writable) {\n target[key] = cloneDeepWithImpl(source[key], key, objectToClone, stack, cloneValue);\n }\n }\n}\nfunction isCloneableObject(object) {\n switch (getTag.getTag(object)) {\n case tags.argumentsTag:\n case tags.arrayTag:\n case tags.arrayBufferTag:\n case tags.dataViewTag:\n case tags.booleanTag:\n case tags.dateTag:\n case tags.float32ArrayTag:\n case tags.float64ArrayTag:\n case tags.int8ArrayTag:\n case tags.int16ArrayTag:\n case tags.int32ArrayTag:\n case tags.mapTag:\n case tags.numberTag:\n case tags.objectTag:\n case tags.regexpTag:\n case tags.setTag:\n case tags.stringTag:\n case tags.symbolTag:\n case tags.uint8ArrayTag:\n case tags.uint8ClampedArrayTag:\n case tags.uint16ArrayTag:\n case tags.uint32ArrayTag: {\n return true;\n }\n default: {\n return false;\n }\n }\n}\n\nexports.cloneDeepWith = cloneDeepWith;\nexports.cloneDeepWithImpl = cloneDeepWithImpl;\nexports.copyProperties = copyProperties;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction getSymbols(object) {\n return Object.getOwnPropertySymbols(object).filter(symbol => Object.prototype.propertyIsEnumerable.call(object, symbol));\n}\n\nexports.getSymbols = getSymbols;\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 { polarToCartesian } from './PolarUtils';\nimport { mathSign } from './DataUtils';\nexport var getActiveCartesianCoordinate = (layout, tooltipTicks, activeIndex, pointer) => {\n var entry = tooltipTicks.find(tick => tick && tick.index === activeIndex);\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: pointer.chartY\n };\n }\n if (layout === 'vertical') {\n return {\n x: pointer.chartX,\n y: entry.coordinate\n };\n }\n }\n return {\n x: 0,\n y: 0\n };\n};\n\n/**\n * Get the active coordinate in polar coordinate system.\n * Internally we only really use x and y, but this returned object is part of public API\n * (because it goes straight to the tooltip content) so we keep all the other properties\n * for backwards compatibility.\n *\n * @param layout - The polar layout type ('centric' or 'radial').\n * @param tooltipTicks - Array of tick items used for tooltips.\n * @param activeIndex - The index of the active tick.\n * @param rangeObj - The range object containing polar chart properties.\n * @returns The active coordinate object with polar properties.\n */\nexport var getActivePolarCoordinate = (layout, tooltipTicks, activeIndex, rangeObj) => {\n var entry = tooltipTicks.find(tick => tick && tick.index === activeIndex);\n if (entry) {\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var {\n radius: _radius\n } = rangeObj;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {\n angle: _angle,\n radius: _radius\n });\n }\n var radius = entry.coordinate;\n var {\n angle\n } = rangeObj;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {\n angle,\n radius\n });\n }\n return {\n angle: 0,\n clockWise: false,\n cx: 0,\n cy: 0,\n endAngle: 0,\n innerRadius: 0,\n outerRadius: 0,\n radius: 0,\n startAngle: 0,\n x: 0,\n y: 0\n };\n};\nexport function isInCartesianRange(pointer, offset) {\n var {\n chartX: x,\n chartY: y\n } = pointer;\n return x >= offset.left && x <= offset.left + offset.width && y >= offset.top && y <= offset.top + offset.height;\n}\nexport var calculateActiveTickIndex = (coordinate, ticks, unsortedTicks, axisType, range) => {\n var _ticks$length;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n // if there are 1 or fewer ticks or if there is no coordinate then the active tick is at index 0\n if (len <= 1 || coordinate == null) {\n return 0;\n }\n if (axisType === 'angleAxis' && range != null && Math.abs(Math.abs(range[1] - range[0]) - 360) <= 1e-6) {\n // ticks are distributed in a circle\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n ({\n index\n } = unsortedTicks[i]);\n break;\n }\n } else {\n var minValue = Math.min(before, after);\n var maxValue = Math.max(before, after);\n if (coordinate > (minValue + cur) / 2 && coordinate <= (maxValue + cur) / 2) {\n ({\n index\n } = unsortedTicks[i]);\n break;\n }\n }\n }\n } else if (ticks) {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n ({\n index\n } = ticks[_i]);\n break;\n }\n }\n }\n return index;\n};","import { createSelector } from 'reselect';\nimport sortBy from 'es-toolkit/compat/sortBy';\nimport { useAppSelector } from '../hooks';\nimport { calculateCartesianTooltipPos, calculatePolarTooltipPos } from '../../util/ChartUtils';\nimport { selectChartDataWithIndexes } from './dataSelectors';\nimport { selectTooltipAxisTicks, selectTooltipDisplayedData } from './tooltipSelectors';\nimport { selectTooltipAxisDataKey } from './axisSelectors';\nimport { selectChartName } from './rootPropsSelectors';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { selectChartHeight, selectChartWidth } from './containerSelectors';\nimport { combineActiveLabel } from './combiners/combineActiveLabel';\nimport { combineTooltipInteractionState } from './combiners/combineTooltipInteractionState';\nimport { combineActiveTooltipIndex } from './combiners/combineActiveTooltipIndex';\nimport { combineCoordinateForDefaultIndex } from './combiners/combineCoordinateForDefaultIndex';\nimport { combineTooltipPayloadConfigurations } from './combiners/combineTooltipPayloadConfigurations';\nimport { selectTooltipPayloadSearcher } from './selectTooltipPayloadSearcher';\nimport { selectTooltipState } from './selectTooltipState';\nimport { combineTooltipPayload } from './combiners/combineTooltipPayload';\nimport { calculateActiveTickIndex, getActiveCartesianCoordinate, getActivePolarCoordinate, isInCartesianRange } from '../../util/getActiveCoordinate';\nimport { inRangeOfSector } from '../../util/PolarUtils';\nexport var useChartName = () => {\n return useAppSelector(selectChartName);\n};\nvar pickTooltipEventType = (_state, tooltipEventType) => tooltipEventType;\nvar pickTrigger = (_state, _tooltipEventType, trigger) => trigger;\nvar pickDefaultIndex = (_state, _tooltipEventType, _trigger, defaultIndex) => defaultIndex;\nexport var selectOrderedTooltipTicks = createSelector(selectTooltipAxisTicks, ticks => sortBy(ticks, o => o.coordinate));\nexport var selectTooltipInteractionState = createSelector([selectTooltipState, pickTooltipEventType, pickTrigger, pickDefaultIndex], combineTooltipInteractionState);\nexport var selectActiveIndex = createSelector([selectTooltipInteractionState, selectTooltipDisplayedData], combineActiveTooltipIndex);\nexport var selectTooltipDataKey = (state, tooltipEventType, trigger) => {\n if (tooltipEventType == null) {\n return undefined;\n }\n var tooltipState = selectTooltipState(state);\n if (tooltipEventType === 'axis') {\n if (trigger === 'hover') {\n return tooltipState.axisInteraction.hover.dataKey;\n }\n return tooltipState.axisInteraction.click.dataKey;\n }\n if (trigger === 'hover') {\n return tooltipState.itemInteraction.hover.dataKey;\n }\n return tooltipState.itemInteraction.click.dataKey;\n};\nexport var selectTooltipPayloadConfigurations = createSelector([selectTooltipState, pickTooltipEventType, pickTrigger, pickDefaultIndex], combineTooltipPayloadConfigurations);\nexport var selectCoordinateForDefaultIndex = createSelector([selectChartWidth, selectChartHeight, selectChartLayout, selectChartOffsetInternal, selectTooltipAxisTicks, pickDefaultIndex, selectTooltipPayloadConfigurations, selectTooltipPayloadSearcher], combineCoordinateForDefaultIndex);\nexport var selectActiveCoordinate = createSelector([selectTooltipInteractionState, selectCoordinateForDefaultIndex], (tooltipInteractionState, defaultIndexCoordinate) => {\n var _tooltipInteractionSt;\n return (_tooltipInteractionSt = tooltipInteractionState.coordinate) !== null && _tooltipInteractionSt !== void 0 ? _tooltipInteractionSt : defaultIndexCoordinate;\n});\nexport var selectActiveLabel = createSelector([selectTooltipAxisTicks, selectActiveIndex], combineActiveLabel);\nexport var selectTooltipPayload = createSelector([selectTooltipPayloadConfigurations, selectActiveIndex, selectChartDataWithIndexes, selectTooltipAxisDataKey, selectActiveLabel, selectTooltipPayloadSearcher, pickTooltipEventType], combineTooltipPayload);\nexport var selectIsTooltipActive = createSelector([selectTooltipInteractionState], tooltipInteractionState => {\n return {\n isActive: tooltipInteractionState.active,\n activeIndex: tooltipInteractionState.index\n };\n});\nvar combineActiveCartesianProps = (chartEvent, layout, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks, offset) => {\n if (!chartEvent || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks) {\n return undefined;\n }\n if (!isInCartesianRange(chartEvent, offset)) {\n return undefined;\n }\n var pos = calculateCartesianTooltipPos(chartEvent, layout);\n var activeIndex = calculateActiveTickIndex(pos, orderedTooltipTicks, tooltipTicks, tooltipAxisType, tooltipAxisRange);\n var activeCoordinate = getActiveCartesianCoordinate(layout, tooltipTicks, activeIndex, chartEvent);\n return {\n activeIndex: String(activeIndex),\n activeCoordinate\n };\n};\nvar combineActivePolarProps = (chartEvent, layout, polarViewBox, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks) => {\n if (!chartEvent || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks || !polarViewBox) {\n return undefined;\n }\n var rangeObj = inRangeOfSector(chartEvent, polarViewBox);\n if (!rangeObj) {\n return undefined;\n }\n var pos = calculatePolarTooltipPos(rangeObj, layout);\n var activeIndex = calculateActiveTickIndex(pos, orderedTooltipTicks, tooltipTicks, tooltipAxisType, tooltipAxisRange);\n var activeCoordinate = getActivePolarCoordinate(layout, tooltipTicks, activeIndex, rangeObj);\n return {\n activeIndex: String(activeIndex),\n activeCoordinate\n };\n};\nexport var combineActiveProps = (chartEvent, layout, polarViewBox, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks, offset) => {\n if (!chartEvent || !layout || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks) {\n return undefined;\n }\n if (layout === 'horizontal' || layout === 'vertical') {\n return combineActiveCartesianProps(chartEvent, layout, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks, offset);\n }\n return combineActivePolarProps(chartEvent, layout, polarViewBox, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks);\n};","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format, formatSpecifier} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : x => Math.pow(base, x);\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), x => Math.log(x) / base);\n}\n\nfunction reflect(f) {\n return (x, k) => -f(-x, k);\n}\n\nexport function loggish(transform) {\n const scale = transform(transformLog, transformExp);\n const domain = scale.domain;\n let base = 10;\n let logs;\n let pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = count => {\n const d = domain();\n let u = d[0];\n let v = d[d.length - 1];\n const r = v < u;\n\n if (r) ([u, v] = [v, u]);\n\n let i = logs(u);\n let j = logs(v);\n let k;\n let t;\n const n = count == null ? 10 : +count;\n let z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1; k < base; ++k) {\n t = i < 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1; k >= 1; --k) {\n t = i > 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = (count, specifier) => {\n if (count == null) count = 10;\n if (specifier == null) specifier = base === 10 ? \"s\" : \",\";\n if (typeof specifier !== \"function\") {\n if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true;\n specifier = format(specifier);\n }\n if (count === Infinity) return specifier;\n const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return d => {\n let i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = () => {\n return domain(nice(domain(), {\n floor: x => pows(Math.floor(logs(x))),\n ceil: x => pows(Math.ceil(logs(x)))\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n const scale = loggish(transformer()).domain([1, 10]);\n scale.copy = () => copy(scale, log()).base(scale.base());\n initRange.apply(scale, arguments);\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import ascending from \"./ascending.js\";\nimport permute from \"./permute.js\";\n\nexport default function sort(values, ...F) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n values = Array.from(values);\n let [f] = F;\n if ((f && f.length !== 2) || F.length > 1) {\n const index = Uint32Array.from(values, (d, i) => i);\n if (F.length > 1) {\n F = F.map(f => values.map(f));\n index.sort((i, j) => {\n for (const f of F) {\n const c = ascendingDefined(f[i], f[j]);\n if (c) return c;\n }\n });\n } else {\n f = values.map(f);\n index.sort((i, j) => ascendingDefined(f[i], f[j]));\n }\n return permute(values, index);\n }\n return values.sort(compareDefined(f));\n}\n\nexport function compareDefined(compare = ascending) {\n if (compare === ascending) return ascendingDefined;\n if (typeof compare !== \"function\") throw new TypeError(\"compare is not a function\");\n return (a, b) => {\n const x = compare(a, b);\n if (x || x === 0) return x;\n return (compare(b, b) === 0) - (compare(a, a) === 0);\n };\n}\n\nexport function ascendingDefined(a, b) {\n return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);\n}\n","import {ascendingDefined, compareDefined} from \"./sort.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = Infinity, compare) {\n k = Math.floor(k);\n left = Math.floor(Math.max(0, left));\n right = Math.floor(Math.min(array.length - 1, right));\n\n if (!(left <= k && k <= right)) return array;\n\n compare = compare === undefined ? ascendingDefined : compareDefined(compare);\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport maxIndex from \"./maxIndex.js\";\nimport min from \"./min.js\";\nimport minIndex from \"./minIndex.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\nimport {ascendingDefined} from \"./sort.js\";\nimport greatest from \"./greatest.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileIndex(values, p, valueof = number) {\n if (isNaN(p = +p)) return;\n numbers = Float64Array.from(values, (_, i) => number(valueof(values[i], i, values)));\n if (p <= 0) return minIndex(numbers);\n if (p >= 1) return maxIndex(numbers);\n var numbers,\n index = Uint32Array.from(values, (_, i) => i),\n j = numbers.length - 1,\n i = Math.floor(j * p);\n quickselect(index, i, 0, j, (i, j) => ascendingDefined(numbers[i], numbers[j]));\n i = greatest(index.subarray(0, i + 1), (i) => numbers[i]);\n return i >= 0 ? i : -1;\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(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 = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\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 let previous;\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 = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (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 = (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 = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","var identity = i => i;\nexport var PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\nvar isPlaceHolder = val => val === PLACE_HOLDER;\nvar curry0 = fn => function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n return fn(...arguments);\n};\nvar curryN = (n, fn) => {\n if (n === 1) {\n return fn;\n }\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var argsLength = args.filter(arg => arg !== PLACE_HOLDER).length;\n if (argsLength >= n) {\n return fn(...args);\n }\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n var newArgs = args.map(arg => isPlaceHolder(arg) ? restArgs.shift() : arg);\n return fn(...newArgs, ...restArgs);\n }));\n });\n};\nexport var curry = fn => curryN(fn.length, fn);\nexport var range = (begin, end) => {\n var arr = [];\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n return arr;\n};\nexport var map = curry((fn, arr) => {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n return Object.keys(arr).map(key => arr[key]).map(fn);\n});\nexport var compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n if (!args.length) {\n return identity;\n }\n var fns = args.reverse();\n // first function can receive multiply arguments\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce((res, fn) => fn(res), firstFn(...arguments));\n };\n};\nexport var reverse = arr => {\n if (Array.isArray(arr)) {\n return arr.reverse();\n }\n\n // can be string\n return arr.split('').reverse().join('');\n};\nexport var memoize = fn => {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n if (lastArgs && args.every((val, i) => {\n var _lastArgs;\n return val === ((_lastArgs = lastArgs) === null || _lastArgs === void 0 ? void 0 : _lastArgs[i]);\n })) {\n return lastResult;\n }\n lastArgs = args;\n lastResult = fn(...args);\n return lastResult;\n };\n};","/**\n * @fileOverview Some common arithmetic methods\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { curry } from './utils';\n\n/**\n * Get the digit count of a number.\n * If the absolute value is in the interval [0.1, 1), the result is 0.\n * If the absolute value is in the interval [0.01, 0.1), the digit count is -1.\n * If the absolute value is in the interval [0.001, 0.01), the digit count is -2.\n *\n * @param {Number} value The number\n * @return {Integer} Digit count\n */\nfunction getDigitCount(value) {\n var result;\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n }\n return result;\n}\n\n/**\n * Get the data in the interval [start, end) with a fixed step.\n * Also handles JS calculation precision issues.\n *\n * @param {Decimal} start Start point\n * @param {Decimal} end End point, not included\n * @param {Decimal} step Step size\n * @return {Array} Array of numbers\n */\nfunction rangeStep(start, end, step) {\n var num = new Decimal(start);\n var i = 0;\n var result = [];\n\n // magic number to prevent infinite loop\n while (num.lt(end) && i < 100000) {\n result.push(num.toNumber());\n num = num.add(step);\n i++;\n }\n return result;\n}\n\n/**\n * Linear interpolation of numbers.\n *\n * @param {Number} a Endpoint of the domain\n * @param {Number} b Endpoint of the domain\n * @param {Number} t A value in [0, 1]\n * @return {Number} A value in the domain\n */\nvar interpolateNumber = curry((a, b, t) => {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n\n/**\n * Inverse operation of linear interpolation.\n *\n * @param {Number} a Endpoint of the domain\n * @param {Number} b Endpoint of the domain\n * @param {Number} x Can be considered as an output value after interpolation\n * @return {Number} When x is in the range a ~ b, the return value is in [0, 1]\n */\nvar uninterpolateNumber = curry((a, b, x) => {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n\n/**\n * Inverse operation of linear interpolation with truncation.\n *\n * @param {Number} a Endpoint of the domain\n * @param {Number} b Endpoint of the domain\n * @param {Number} x Can be considered as an output value after interpolation\n * @return {Number} When x is in the interval a ~ b, the return value is in [0, 1].\n * When x is not in the interval a ~ b, it will be truncated to the interval a ~ b.\n */\nvar uninterpolateTruncation = curry((a, b, x) => {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nexport { rangeStep, getDigitCount, interpolateNumber, uninterpolateNumber, uninterpolateTruncation };","/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { compose, range, memoize, map, reverse } from './util/utils';\nimport { getDigitCount, rangeStep } from './util/arithmetic';\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\nexport var getValidInterval = _ref => {\n var [min, max] = _ref;\n var [validMin, validMax] = [min, max];\n\n // exchange\n if (min > max) {\n [validMin, validMax] = [max, min];\n }\n return [validMin, validMax];\n};\n\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param roughStep The rough step calculated by dividing the difference by the tickCount\n * @param allowDecimals Allow the ticks to be decimals or not\n * @param correctionFactor A correction factor\n * @return The step which is easy to understand between two ticks\n */\nexport var getFormatStep = (roughStep, allowDecimals, correctionFactor) => {\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n var digitCount = getDigitCount(roughStep.toNumber());\n // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n var digitCountValue = new Decimal(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue);\n // When an integer and a float multiplied, the accuracy of result may be wrong\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? new Decimal(formatStep.toNumber()) : new Decimal(Math.ceil(formatStep.toNumber()));\n};\n\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param value The minimum value which is also the maximum value\n * @param tickCount The count of ticks\n * @param allowDecimals Allow the ticks to be decimals or not\n * @return array of ticks\n */\nexport var getTickOfSingleValue = (value, tickCount, allowDecimals) => {\n var step = new Decimal(1);\n // calculate the middle value of ticks\n var middle = new Decimal(value);\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new Decimal(10).pow(getDigitCount(value) - 1);\n middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new Decimal(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new Decimal(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new Decimal(Math.floor(value));\n }\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = compose(map(n => middle.add(new Decimal(n - middleIndex).mul(step)).toNumber()), range);\n return fn(0, tickCount);\n};\n\n/**\n * Calculate the step\n *\n * @param min The minimum value of an interval\n * @param max The maximum value of an interval\n * @param tickCount The count of ticks\n * @param allowDecimals Allow the ticks to be decimals or not\n * @param correctionFactor A correction factor\n * @return The step, minimum value of ticks, maximum value of ticks\n */\nvar _calculateStep = function calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new Decimal(0),\n tickMin: new Decimal(0),\n tickMax: new Decimal(0)\n };\n }\n\n // The step which is easy to understand between two ticks\n var step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor);\n\n // A medial value of ticks\n var middle;\n\n // When 0 is inside the interval, 0 should be a tick\n if (min <= 0 && max >= 0) {\n middle = new Decimal(0);\n } else {\n // calculate the middle value\n middle = new Decimal(min).add(max).div(2);\n // minus modulo value\n middle = middle.sub(new Decimal(middle).mod(step));\n }\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return _calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n return {\n step,\n tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n tickMax: middle.add(new Decimal(upCount).mul(step))\n };\n};\n\n/**\n * Calculate the ticks of an interval. Ticks can appear outside the interval\n * if it makes them more rounded and nice.\n *\n * @param tuple of [min,max] min: The minimum value, max: The maximum value\n * @param tickCount The count of ticks\n * @param allowDecimals Allow the ticks to be decimals or not\n * @return array of ticks\n */\nexport { _calculateStep as calculateStep };\nfunction getNiceTickValuesFn(_ref2) {\n var [min, max] = _ref2;\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n var [cormin, cormax] = getValidInterval([min, max]);\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin, ...range(0, tickCount - 1).map(() => Infinity)] : [...range(0, tickCount - 1).map(() => -Infinity), cormax];\n return min > max ? reverse(_values) : _values;\n }\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n // Get the step between two ticks\n var {\n step,\n tickMin,\n tickMax\n } = _calculateStep(cormin, cormax, count, allowDecimals, 0);\n var values = rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? reverse(values) : values;\n}\n\n/**\n * Calculate the ticks of an interval.\n * Ticks will be constrained to the interval [min, max] even if it makes them less rounded and nice.\n *\n * @param tuple of [min,max] min: The minimum value, max: The maximum value\n * @param tickCount The count of ticks. This function may return less than tickCount ticks if the interval is too small.\n * @param allowDecimals Allow the ticks to be decimals or not\n * @return array of ticks\n */\nfunction getTickValuesFixedDomainFn(_ref3, tickCount) {\n var [min, max] = _ref3;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var [cormin, cormax] = getValidInterval([min, max]);\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n if (cormin === cormax) {\n return [cormin];\n }\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [...rangeStep(new Decimal(cormin), new Decimal(cormax), step), cormax];\n if (allowDecimals === false) {\n /*\n * allowDecimals is false means that we want to have integer ticks.\n * The step is guaranteed to be an integer in the code above which is great start\n * but when the first step is not an integer, it will start stepping from a decimal value anyway.\n * So we need to round all the values to integers after the fact.\n */\n values = values.map(value => Math.round(value));\n }\n return min > max ? reverse(values) : values;\n}\nexport var getNiceTickValues = memoize(getNiceTickValuesFn);\nexport var getTickValuesFixedDomain = memoize(getTickValuesFixedDomainFn);","export var pickAxisType = (_state, axisType) => axisType;","export var pickAxisId = (_state, _axisType, axisId) => axisId;","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 { createSelector } from 'reselect';\nimport range from 'es-toolkit/compat/range';\nimport * as d3Scales from 'victory-vendor/d3-scale';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { checkDomainOfScale, getDomainOfStackGroups, getStackedData, getValueByDataKey, isCategoricalAxis } from '../../util/ChartUtils';\nimport { selectChartDataWithIndexes, selectChartDataWithIndexesIfNotInPanorama } from './dataSelectors';\nimport { isWellFormedNumberDomain, numericalDomainSpecifiedWithoutRequiringData, parseNumericalUserDomain } from '../../util/isDomainSpecifiedByUser';\nimport { getPercentValue, hasDuplicate, isNan, isNumber, isNumOrStr, mathSign, upperFirst, isNotNil } from '../../util/DataUtils';\nimport { isWellBehavedNumber } from '../../util/isWellBehavedNumber';\nimport { getNiceTickValues, getTickValuesFixedDomain } from '../../util/scale';\nimport { selectChartHeight, selectChartWidth } from './containerSelectors';\nimport { selectAllXAxes, selectAllYAxes } from './selectAllAxes';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { selectBrushDimensions, selectBrushSettings } from './brushSelectors';\nimport { selectBarCategoryGap, selectChartName, selectStackOffsetType } from './rootPropsSelectors';\nimport { selectAngleAxis, selectAngleAxisRange, selectRadiusAxis, selectRadiusAxisRange } from './polarAxisSelectors';\nimport { pickAxisType } from './pickAxisType';\nimport { pickAxisId } from './pickAxisId';\nimport { combineAxisRangeWithReverse } from './combiners/combineAxisRangeWithReverse';\nimport { DEFAULT_Y_AXIS_WIDTH } from '../../util/Constants';\nimport { getStackSeriesIdentifier } from '../../util/stacks/getStackSeriesIdentifier';\nimport { combineDisplayedStackedData } from './combiners/combineDisplayedStackedData';\nimport { isStacked } from '../types/StackedGraphicalItem';\nimport { numberDomainEqualityCheck } from './numberDomainEqualityCheck';\nimport { emptyArraysAreEqualCheck } from './arrayEqualityCheck';\nimport { selectTooltipAxisType } from './selectTooltipAxisType';\nimport { selectTooltipAxisId } from './selectTooltipAxisId';\nvar defaultNumericDomain = [0, 'auto'];\n/**\n * If an axis is not explicitly defined as an element,\n * we still need to render something in the chart and we need\n * some object to hold the domain and default settings.\n */\nexport var implicitXAxis = {\n allowDataOverflow: false,\n allowDecimals: true,\n allowDuplicatedCategory: true,\n angle: 0,\n dataKey: undefined,\n domain: undefined,\n height: 30,\n hide: true,\n id: 0,\n includeHidden: false,\n interval: 'preserveEnd',\n minTickGap: 5,\n mirror: false,\n name: undefined,\n orientation: 'bottom',\n padding: {\n left: 0,\n right: 0\n },\n reversed: false,\n scale: 'auto',\n tick: true,\n tickCount: 5,\n tickFormatter: undefined,\n ticks: undefined,\n type: 'category',\n unit: undefined\n};\nexport var selectXAxisSettingsNoDefaults = (state, axisId) => {\n return state.cartesianAxis.xAxis[axisId];\n};\nexport var selectXAxisSettings = (state, axisId) => {\n var axis = selectXAxisSettingsNoDefaults(state, axisId);\n if (axis == null) {\n return implicitXAxis;\n }\n return axis;\n};\n\n/**\n * If an axis is not explicitly defined as an element,\n * we still need to render something in the chart and we need\n * some object to hold the domain and default settings.\n */\nexport var implicitYAxis = {\n allowDataOverflow: false,\n allowDecimals: true,\n allowDuplicatedCategory: true,\n angle: 0,\n dataKey: undefined,\n domain: defaultNumericDomain,\n hide: true,\n id: 0,\n includeHidden: false,\n interval: 'preserveEnd',\n minTickGap: 5,\n mirror: false,\n name: undefined,\n orientation: 'left',\n padding: {\n top: 0,\n bottom: 0\n },\n reversed: false,\n scale: 'auto',\n tick: true,\n tickCount: 5,\n tickFormatter: undefined,\n ticks: undefined,\n type: 'number',\n unit: undefined,\n width: DEFAULT_Y_AXIS_WIDTH\n};\nexport var selectYAxisSettingsNoDefaults = (state, axisId) => {\n return state.cartesianAxis.yAxis[axisId];\n};\nexport var selectYAxisSettings = (state, axisId) => {\n var axis = selectYAxisSettingsNoDefaults(state, axisId);\n if (axis == null) {\n return implicitYAxis;\n }\n return axis;\n};\nexport var implicitZAxis = {\n domain: [0, 'auto'],\n includeHidden: false,\n reversed: false,\n allowDataOverflow: false,\n allowDuplicatedCategory: false,\n dataKey: undefined,\n id: 0,\n name: '',\n range: [64, 64],\n scale: 'auto',\n type: 'number',\n unit: ''\n};\nexport var selectZAxisSettings = (state, axisId) => {\n var axis = state.cartesianAxis.zAxis[axisId];\n if (axis == null) {\n return implicitZAxis;\n }\n return axis;\n};\nexport var selectBaseAxis = (state, axisType, axisId) => {\n switch (axisType) {\n case 'xAxis':\n {\n return selectXAxisSettings(state, axisId);\n }\n case 'yAxis':\n {\n return selectYAxisSettings(state, axisId);\n }\n case 'zAxis':\n {\n return selectZAxisSettings(state, axisId);\n }\n case 'angleAxis':\n {\n return selectAngleAxis(state, axisId);\n }\n case 'radiusAxis':\n {\n return selectRadiusAxis(state, axisId);\n }\n default:\n throw new Error(\"Unexpected axis type: \".concat(axisType));\n }\n};\nvar selectCartesianAxisSettings = (state, axisType, axisId) => {\n switch (axisType) {\n case 'xAxis':\n {\n return selectXAxisSettings(state, axisId);\n }\n case 'yAxis':\n {\n return selectYAxisSettings(state, axisId);\n }\n default:\n throw new Error(\"Unexpected axis type: \".concat(axisType));\n }\n};\n\n/**\n * Selects either an X or Y axis. Doesn't work with Z axis - for that, instead use selectBaseAxis.\n * @param state Root state\n * @param axisType xAxis | yAxis\n * @param axisId xAxisId | yAxisId\n * @returns axis settings object\n */\nexport var selectAxisSettings = (state, axisType, axisId) => {\n switch (axisType) {\n case 'xAxis':\n {\n return selectXAxisSettings(state, axisId);\n }\n case 'yAxis':\n {\n return selectYAxisSettings(state, axisId);\n }\n case 'angleAxis':\n {\n return selectAngleAxis(state, axisId);\n }\n case 'radiusAxis':\n {\n return selectRadiusAxis(state, axisId);\n }\n default:\n throw new Error(\"Unexpected axis type: \".concat(axisType));\n }\n};\n\n/**\n * @param state RechartsRootState\n * @return boolean true if there is at least one Bar or RadialBar\n */\nexport var selectHasBar = state => state.graphicalItems.cartesianItems.some(item => item.type === 'bar') || state.graphicalItems.polarItems.some(item => item.type === 'radialBar');\n\n/**\n * Filters CartesianGraphicalItemSettings by the relevant axis ID\n * @param axisType 'xAxis' | 'yAxis' | 'zAxis' | 'radiusAxis' | 'angleAxis'\n * @param axisId from props, defaults to 0\n *\n * @returns Predicate function that return true for CartesianGraphicalItemSettings that are relevant to the specified axis\n */\nexport function itemAxisPredicate(axisType, axisId) {\n return item => {\n switch (axisType) {\n case 'xAxis':\n // This is sensitive to the data type, as 0 !== '0'. I wonder if we should be more flexible. How does 2.x branch behave? TODO write test for that\n return 'xAxisId' in item && item.xAxisId === axisId;\n case 'yAxis':\n return 'yAxisId' in item && item.yAxisId === axisId;\n case 'zAxis':\n return 'zAxisId' in item && item.zAxisId === axisId;\n case 'angleAxis':\n return 'angleAxisId' in item && item.angleAxisId === axisId;\n case 'radiusAxis':\n return 'radiusAxisId' in item && item.radiusAxisId === axisId;\n default:\n return false;\n }\n };\n}\nexport var selectUnfilteredCartesianItems = state => state.graphicalItems.cartesianItems;\nvar selectAxisPredicate = createSelector([pickAxisType, pickAxisId], itemAxisPredicate);\nexport var combineGraphicalItemsSettings = (graphicalItems, axisSettings, axisPredicate) => graphicalItems.filter(axisPredicate).filter(item => {\n if ((axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.includeHidden) === true) {\n return true;\n }\n return !item.hide;\n});\nexport var selectCartesianItemsSettings = createSelector([selectUnfilteredCartesianItems, selectBaseAxis, selectAxisPredicate], combineGraphicalItemsSettings, {\n memoizeOptions: {\n resultEqualityCheck: emptyArraysAreEqualCheck\n }\n});\nexport var selectStackedCartesianItemsSettings = createSelector([selectCartesianItemsSettings], cartesianItems => {\n return cartesianItems.filter(item => item.type === 'area' || item.type === 'bar').filter(isStacked);\n});\nexport var filterGraphicalNotStackedItems = cartesianItems => cartesianItems.filter(item => !('stackId' in item) || item.stackId === undefined);\nvar selectCartesianItemsSettingsExceptStacked = createSelector([selectCartesianItemsSettings], filterGraphicalNotStackedItems);\nexport var combineGraphicalItemsData = cartesianItems => cartesianItems.map(item => item.data).filter(Boolean).flat(1);\n\n/**\n * This is a \"cheap\" selector - it returns the data but doesn't iterate them, so it is not sensitive on the array length.\n * Also does not apply dataKey yet.\n * @param state RechartsRootState\n * @returns data defined on the chart graphical items, such as Line or Scatter or Pie, and filtered with appropriate dataKey\n */\nexport var selectCartesianGraphicalItemsData = createSelector([selectCartesianItemsSettings], combineGraphicalItemsData, {\n memoizeOptions: {\n resultEqualityCheck: emptyArraysAreEqualCheck\n }\n});\nexport var combineDisplayedData = (graphicalItemsData, _ref) => {\n var {\n chartData = [],\n dataStartIndex,\n dataEndIndex\n } = _ref;\n if (graphicalItemsData.length > 0) {\n /*\n * There is no slicing when data is defined on graphical items. Why?\n * Because Brush ignores data defined on graphical items,\n * and does not render.\n * So Brush will never show up in a Scatter chart for example.\n * This is something we will need to fix.\n *\n * Now, when the root chart data is not defined, the dataEndIndex is 0,\n * which means the itemsData will be sliced to an empty array anyway.\n * But that's an implementation detail, and we can fix that too.\n *\n * Also, in absence of Axis dataKey, we use the dataKey from each item, respectively.\n * This is the usual pattern for numerical axis, that is the one where bars go up:\n * users don't specify any dataKey by default and expect the axis to \"just match the data\".\n */\n return graphicalItemsData;\n }\n return chartData.slice(dataStartIndex, dataEndIndex + 1);\n};\n\n/**\n * This selector will return all data there is in the chart: graphical items, chart root, all together.\n * Useful for figuring out an axis domain (because that needs to know of everything),\n * not useful for rendering individual graphical elements (because they need to know which data is theirs and which is not).\n *\n * This function will discard the original indexes, so it is also not useful for anything that depends on ordering.\n */\nexport var selectDisplayedData = createSelector([selectCartesianGraphicalItemsData, selectChartDataWithIndexesIfNotInPanorama], combineDisplayedData);\nexport var combineAppliedValues = (data, axisSettings, items) => {\n if ((axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.dataKey) != null) {\n return data.map(item => ({\n value: getValueByDataKey(item, axisSettings.dataKey)\n }));\n }\n if (items.length > 0) {\n return items.map(item => item.dataKey).flatMap(dataKey => data.map(entry => ({\n value: getValueByDataKey(entry, dataKey)\n })));\n }\n return data.map(entry => ({\n value: entry\n }));\n};\n\n/**\n * This selector will return all values with the appropriate dataKey applied on them.\n * Which dataKey is appropriate depends on where it is defined.\n *\n * This is an expensive selector - it will iterate all data and compute their value using the provided dataKey.\n */\nexport var selectAllAppliedValues = createSelector([selectDisplayedData, selectBaseAxis, selectCartesianItemsSettings], combineAppliedValues);\nexport function isErrorBarRelevantForAxisType(axisType, errorBar) {\n switch (axisType) {\n case 'xAxis':\n return errorBar.direction === 'x';\n case 'yAxis':\n return errorBar.direction === 'y';\n default:\n return false;\n }\n}\n\n/**\n * This is type of \"error\" in chart. It is set by using ErrorBar, and it can represent confidence interval,\n * or gap in the data, or standard deviation, or quartiles in boxplot, or whiskers or whatever.\n *\n * We will internally represent it as a tuple of two numbers, where the first number is the lower bound and the second number is the upper bound.\n *\n * It is also true that the first number should be lower than or equal to the associated \"main value\",\n * and the second number should be higher than or equal to the associated \"main value\".\n */\n\nexport function fromMainValueToError(value) {\n if (isNumber(value) && Number.isFinite(value)) {\n return [value, value];\n }\n if (Array.isArray(value)) {\n var minError = Math.min(...value);\n var maxError = Math.max(...value);\n if (!isNan(minError) && !isNan(maxError) && Number.isFinite(minError) && Number.isFinite(maxError)) {\n return [minError, maxError];\n }\n }\n return undefined;\n}\nfunction makeNumber(val) {\n if (isNumOrStr(val) || val instanceof Date) {\n var n = Number(val);\n if (isWellBehavedNumber(n)) {\n return n;\n }\n }\n return undefined;\n}\nfunction makeDomain(val) {\n if (Array.isArray(val)) {\n var attempt = [makeNumber(val[0]), makeNumber(val[1])];\n if (isWellFormedNumberDomain(attempt)) {\n return attempt;\n }\n return undefined;\n }\n var n = makeNumber(val);\n if (n == null) {\n return undefined;\n }\n return [n, n];\n}\nfunction onlyAllowNumbers(data) {\n return data.map(makeNumber).filter(isNotNil);\n}\n\n/**\n * @param entry One item in the 'data' array. Could be anything really - this is defined externally. This is the raw, before dataKey application\n * @param appliedValue This is the result of applying the 'main' dataKey on the `entry`.\n * @param relevantErrorBars Error bars that are relevant for the current axis and layout and all that.\n * @return either undefined or an array of ErrorValue\n */\nexport function getErrorDomainByDataKey(entry, appliedValue, relevantErrorBars) {\n if (!relevantErrorBars || typeof appliedValue !== 'number' || isNan(appliedValue)) {\n return [];\n }\n if (!relevantErrorBars.length) {\n return [];\n }\n return onlyAllowNumbers(relevantErrorBars.flatMap(eb => {\n var errorValue = getValueByDataKey(entry, eb.dataKey);\n var lowBound, highBound;\n if (Array.isArray(errorValue)) {\n [lowBound, highBound] = errorValue;\n } else {\n lowBound = highBound = errorValue;\n }\n if (!isWellBehavedNumber(lowBound) || !isWellBehavedNumber(highBound)) {\n return undefined;\n }\n return [appliedValue - lowBound, appliedValue + highBound];\n }));\n}\nexport var selectTooltipAxis = state => {\n var axisType = selectTooltipAxisType(state);\n var axisId = selectTooltipAxisId(state);\n return selectAxisSettings(state, axisType, axisId);\n};\nexport var selectTooltipAxisDataKey = createSelector([selectTooltipAxis], axis => axis === null || axis === void 0 ? void 0 : axis.dataKey);\nexport var selectDisplayedStackedData = createSelector([selectStackedCartesianItemsSettings, selectChartDataWithIndexesIfNotInPanorama, selectTooltipAxis], combineDisplayedStackedData);\nexport var combineStackGroups = (displayedData, items, stackOffsetType) => {\n var initialItemsGroups = {};\n var itemsGroup = items.reduce((acc, item) => {\n if (item.stackId == null) {\n return acc;\n }\n if (acc[item.stackId] == null) {\n acc[item.stackId] = [];\n }\n acc[item.stackId].push(item);\n return acc;\n }, initialItemsGroups);\n return Object.fromEntries(Object.entries(itemsGroup).map(_ref2 => {\n var [stackId, graphicalItems] = _ref2;\n var dataKeys = graphicalItems.map(getStackSeriesIdentifier);\n return [stackId, {\n // @ts-expect-error getStackedData requires that the input is array of objects, Recharts does not test for that\n stackedData: getStackedData(displayedData, dataKeys, stackOffsetType),\n graphicalItems\n }];\n }));\n};\n\n/**\n * Stack groups are groups of graphical items that stack on each other.\n * Stack is a function of axis type (X, Y), axis ID, and stack ID.\n * Graphical items that do not have a stack ID are not going to be present in stack groups.\n */\nexport var selectStackGroups = createSelector([selectDisplayedStackedData, selectStackedCartesianItemsSettings, selectStackOffsetType], combineStackGroups);\nexport var combineDomainOfStackGroups = (stackGroups, _ref3, axisType, domainFromUserPreference) => {\n var {\n dataStartIndex,\n dataEndIndex\n } = _ref3;\n if (domainFromUserPreference != null) {\n // User has specified a domain, so we respect that and we can skip computing anything else\n return undefined;\n }\n if (axisType === 'zAxis') {\n // ZAxis ignores stacks\n return undefined;\n }\n var domainOfStackGroups = getDomainOfStackGroups(stackGroups, dataStartIndex, dataEndIndex);\n if (domainOfStackGroups != null && domainOfStackGroups[0] === 0 && domainOfStackGroups[1] === 0) {\n return undefined;\n }\n return domainOfStackGroups;\n};\nvar selectAllowsDataOverflow = createSelector([selectBaseAxis], axisSettings => axisSettings.allowDataOverflow);\nexport var getDomainDefinition = axisSettings => {\n var _axisSettings$domain;\n if (axisSettings == null || !('domain' in axisSettings)) {\n return defaultNumericDomain;\n }\n if (axisSettings.domain != null) {\n return axisSettings.domain;\n }\n if (axisSettings.ticks != null) {\n if (axisSettings.type === 'number') {\n var allValues = onlyAllowNumbers(axisSettings.ticks);\n return [Math.min(...allValues), Math.max(...allValues)];\n }\n if (axisSettings.type === 'category') {\n return axisSettings.ticks.map(String);\n }\n }\n return (_axisSettings$domain = axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.domain) !== null && _axisSettings$domain !== void 0 ? _axisSettings$domain : defaultNumericDomain;\n};\nexport var selectDomainDefinition = createSelector([selectBaseAxis], getDomainDefinition);\n\n/**\n * Under certain circumstances, we can determine the domain without looking at the data at all.\n * This is the case when the domain is explicitly specified as numbers, or when it is specified\n * as 'auto' or 'dataMin'/'dataMax' and data overflow is not allowed.\n *\n * In that case, this function will return the domain, otherwise it returns undefined.\n *\n * This is an optimization to avoid unnecessary data processing.\n * @param state\n * @param axisType\n * @param axisId\n * @param isPanorama\n */\nexport var selectDomainFromUserPreference = createSelector([selectDomainDefinition, selectAllowsDataOverflow], numericalDomainSpecifiedWithoutRequiringData);\nexport var selectDomainOfStackGroups = createSelector([selectStackGroups, selectChartDataWithIndexes, pickAxisType, selectDomainFromUserPreference], combineDomainOfStackGroups, {\n memoizeOptions: {\n resultEqualityCheck: numberDomainEqualityCheck\n }\n});\nexport var selectAllErrorBarSettings = state => state.errorBars;\nvar combineRelevantErrorBarSettings = (cartesianItemsSettings, allErrorBarSettings, axisType) => {\n return cartesianItemsSettings.flatMap(item => {\n return allErrorBarSettings[item.id];\n }).filter(Boolean).filter(e => {\n return isErrorBarRelevantForAxisType(axisType, e);\n });\n};\nexport var mergeDomains = function mergeDomains() {\n for (var _len = arguments.length, domains = new Array(_len), _key = 0; _key < _len; _key++) {\n domains[_key] = arguments[_key];\n }\n var allDomains = domains.filter(Boolean);\n if (allDomains.length === 0) {\n return undefined;\n }\n var allValues = allDomains.flat();\n var min = Math.min(...allValues);\n var max = Math.max(...allValues);\n return [min, max];\n};\nexport var combineDomainOfAllAppliedNumericalValuesIncludingErrorValues = (data, axisSettings, items, errorBars, axisType) => {\n var lowerEnd, upperEnd;\n if (items.length > 0) {\n data.forEach(entry => {\n items.forEach(item => {\n var _errorBars$item$id, _axisSettings$dataKey;\n var relevantErrorBars = (_errorBars$item$id = errorBars[item.id]) === null || _errorBars$item$id === void 0 ? void 0 : _errorBars$item$id.filter(errorBar => isErrorBarRelevantForAxisType(axisType, errorBar));\n var valueByDataKey = getValueByDataKey(entry, (_axisSettings$dataKey = axisSettings.dataKey) !== null && _axisSettings$dataKey !== void 0 ? _axisSettings$dataKey : item.dataKey);\n var errorDomain = getErrorDomainByDataKey(entry, valueByDataKey, relevantErrorBars);\n if (errorDomain.length >= 2) {\n var localLower = Math.min(...errorDomain);\n var localUpper = Math.max(...errorDomain);\n if (lowerEnd == null || localLower < lowerEnd) {\n lowerEnd = localLower;\n }\n if (upperEnd == null || localUpper > upperEnd) {\n upperEnd = localUpper;\n }\n }\n var dataValueDomain = makeDomain(valueByDataKey);\n if (dataValueDomain != null) {\n lowerEnd = lowerEnd == null ? dataValueDomain[0] : Math.min(lowerEnd, dataValueDomain[0]);\n upperEnd = upperEnd == null ? dataValueDomain[1] : Math.max(upperEnd, dataValueDomain[1]);\n }\n });\n });\n }\n if ((axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.dataKey) != null) {\n data.forEach(item => {\n var dataValueDomain = makeDomain(getValueByDataKey(item, axisSettings.dataKey));\n if (dataValueDomain != null) {\n lowerEnd = lowerEnd == null ? dataValueDomain[0] : Math.min(lowerEnd, dataValueDomain[0]);\n upperEnd = upperEnd == null ? dataValueDomain[1] : Math.max(upperEnd, dataValueDomain[1]);\n }\n });\n }\n if (isWellBehavedNumber(lowerEnd) && isWellBehavedNumber(upperEnd)) {\n return [lowerEnd, upperEnd];\n }\n return undefined;\n};\nvar selectDomainOfAllAppliedNumericalValuesIncludingErrorValues = createSelector([selectDisplayedData, selectBaseAxis, selectCartesianItemsSettingsExceptStacked, selectAllErrorBarSettings, pickAxisType], combineDomainOfAllAppliedNumericalValuesIncludingErrorValues, {\n memoizeOptions: {\n resultEqualityCheck: numberDomainEqualityCheck\n }\n});\nfunction onlyAllowNumbersAndStringsAndDates(item) {\n var {\n value\n } = item;\n if (isNumOrStr(value) || value instanceof Date) {\n return value;\n }\n return undefined;\n}\nvar computeDomainOfTypeCategory = (allDataSquished, axisSettings, isCategorical) => {\n var categoricalDomain = allDataSquished.map(onlyAllowNumbersAndStringsAndDates).filter(v => v != null);\n if (isCategorical && (axisSettings.dataKey == null || axisSettings.allowDuplicatedCategory && hasDuplicate(categoricalDomain))) {\n /*\n * 1. In an absence of dataKey, Recharts will use array indexes as its categorical domain\n * 2. When category axis has duplicated text, serial numbers are used to generate scale\n */\n return range(0, allDataSquished.length);\n }\n if (axisSettings.allowDuplicatedCategory) {\n return categoricalDomain;\n }\n return Array.from(new Set(categoricalDomain));\n};\nexport var selectReferenceDots = state => state.referenceElements.dots;\nexport var filterReferenceElements = (elements, axisType, axisId) => {\n return elements.filter(el => el.ifOverflow === 'extendDomain').filter(el => {\n if (axisType === 'xAxis') {\n return el.xAxisId === axisId;\n }\n return el.yAxisId === axisId;\n });\n};\nexport var selectReferenceDotsByAxis = createSelector([selectReferenceDots, pickAxisType, pickAxisId], filterReferenceElements);\nexport var selectReferenceAreas = state => state.referenceElements.areas;\nexport var selectReferenceAreasByAxis = createSelector([selectReferenceAreas, pickAxisType, pickAxisId], filterReferenceElements);\nexport var selectReferenceLines = state => state.referenceElements.lines;\nexport var selectReferenceLinesByAxis = createSelector([selectReferenceLines, pickAxisType, pickAxisId], filterReferenceElements);\nexport var combineDotsDomain = (dots, axisType) => {\n var allCoords = onlyAllowNumbers(dots.map(dot => axisType === 'xAxis' ? dot.x : dot.y));\n if (allCoords.length === 0) {\n return undefined;\n }\n return [Math.min(...allCoords), Math.max(...allCoords)];\n};\nvar selectReferenceDotsDomain = createSelector(selectReferenceDotsByAxis, pickAxisType, combineDotsDomain);\nexport var combineAreasDomain = (areas, axisType) => {\n var allCoords = onlyAllowNumbers(areas.flatMap(area => [axisType === 'xAxis' ? area.x1 : area.y1, axisType === 'xAxis' ? area.x2 : area.y2]));\n if (allCoords.length === 0) {\n return undefined;\n }\n return [Math.min(...allCoords), Math.max(...allCoords)];\n};\nvar selectReferenceAreasDomain = createSelector([selectReferenceAreasByAxis, pickAxisType], combineAreasDomain);\nfunction extractXCoordinates(line) {\n var _line$segment;\n if (line.x != null) {\n return onlyAllowNumbers([line.x]);\n }\n var segmentCoordinates = (_line$segment = line.segment) === null || _line$segment === void 0 ? void 0 : _line$segment.map(s => s.x);\n if (segmentCoordinates == null || segmentCoordinates.length === 0) {\n return [];\n }\n return onlyAllowNumbers(segmentCoordinates);\n}\nfunction extractYCoordinates(line) {\n var _line$segment2;\n if (line.y != null) {\n return onlyAllowNumbers([line.y]);\n }\n var segmentCoordinates = (_line$segment2 = line.segment) === null || _line$segment2 === void 0 ? void 0 : _line$segment2.map(s => s.y);\n if (segmentCoordinates == null || segmentCoordinates.length === 0) {\n return [];\n }\n return onlyAllowNumbers(segmentCoordinates);\n}\nexport var combineLinesDomain = (lines, axisType) => {\n var allCoords = lines.flatMap(line => axisType === 'xAxis' ? extractXCoordinates(line) : extractYCoordinates(line));\n if (allCoords.length === 0) {\n return undefined;\n }\n return [Math.min(...allCoords), Math.max(...allCoords)];\n};\nvar selectReferenceLinesDomain = createSelector([selectReferenceLinesByAxis, pickAxisType], combineLinesDomain);\nvar selectReferenceElementsDomain = createSelector(selectReferenceDotsDomain, selectReferenceLinesDomain, selectReferenceAreasDomain, (dotsDomain, linesDomain, areasDomain) => {\n return mergeDomains(dotsDomain, areasDomain, linesDomain);\n});\nexport var combineNumericalDomain = (axisSettings, domainDefinition, domainFromUserPreference, domainOfStackGroups, dataAndErrorBarsDomain, referenceElementsDomain, layout, axisType) => {\n if (domainFromUserPreference != null) {\n // We're done! No need to compute anything else.\n return domainFromUserPreference;\n }\n var shouldIncludeDomainOfStackGroups = layout === 'vertical' && axisType === 'xAxis' || layout === 'horizontal' && axisType === 'yAxis';\n var mergedDomains = shouldIncludeDomainOfStackGroups ? mergeDomains(domainOfStackGroups, referenceElementsDomain, dataAndErrorBarsDomain) : mergeDomains(referenceElementsDomain, dataAndErrorBarsDomain);\n return parseNumericalUserDomain(domainDefinition, mergedDomains, axisSettings.allowDataOverflow);\n};\nexport var selectNumericalDomain = createSelector([selectBaseAxis, selectDomainDefinition, selectDomainFromUserPreference, selectDomainOfStackGroups, selectDomainOfAllAppliedNumericalValuesIncludingErrorValues, selectReferenceElementsDomain, selectChartLayout, pickAxisType], combineNumericalDomain, {\n memoizeOptions: {\n resultEqualityCheck: numberDomainEqualityCheck\n }\n});\n\n/**\n * Expand by design maps everything between 0 and 1,\n * there is nothing to compute.\n * See https://d3js.org/d3-shape/stack#stack-offsets\n */\nvar expandDomain = [0, 1];\nexport var combineAxisDomain = (axisSettings, layout, displayedData, allAppliedValues, stackOffsetType, axisType, numericalDomain) => {\n if ((axisSettings == null || displayedData == null || displayedData.length === 0) && numericalDomain === undefined) {\n return undefined;\n }\n var {\n dataKey,\n type\n } = axisSettings;\n var isCategorical = isCategoricalAxis(layout, axisType);\n if (isCategorical && dataKey == null) {\n var _displayedData$length;\n return range(0, (_displayedData$length = displayedData === null || displayedData === void 0 ? void 0 : displayedData.length) !== null && _displayedData$length !== void 0 ? _displayedData$length : 0);\n }\n if (type === 'category') {\n return computeDomainOfTypeCategory(allAppliedValues, axisSettings, isCategorical);\n }\n if (stackOffsetType === 'expand') {\n return expandDomain;\n }\n return numericalDomain;\n};\nexport var selectAxisDomain = createSelector([selectBaseAxis, selectChartLayout, selectDisplayedData, selectAllAppliedValues, selectStackOffsetType, pickAxisType, selectNumericalDomain], combineAxisDomain);\nexport var combineRealScaleType = (axisConfig, layout, hasBar, chartType, axisType) => {\n if (axisConfig == null) {\n return undefined;\n }\n var {\n scale,\n type\n } = axisConfig;\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return 'band';\n }\n if (layout === 'radial' && axisType === 'angleAxis') {\n return 'linear';\n }\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {\n return 'point';\n }\n if (type === 'category') {\n return 'band';\n }\n return 'linear';\n }\n if (typeof scale === 'string') {\n var name = \"scale\".concat(upperFirst(scale));\n return name in d3Scales ? name : 'point';\n }\n return undefined;\n};\nexport var selectRealScaleType = createSelector([selectBaseAxis, selectChartLayout, selectHasBar, selectChartName, pickAxisType], combineRealScaleType);\nfunction getD3ScaleFromType(realScaleType) {\n if (realScaleType == null) {\n return undefined;\n }\n if (realScaleType in d3Scales) {\n // @ts-expect-error we should do better type verification here\n return d3Scales[realScaleType]();\n }\n var name = \"scale\".concat(upperFirst(realScaleType));\n if (name in d3Scales) {\n // @ts-expect-error we should do better type verification here\n return d3Scales[name]();\n }\n return undefined;\n}\nexport function combineScaleFunction(axis, realScaleType, axisDomain, axisRange) {\n if (axisDomain == null || axisRange == null) {\n return undefined;\n }\n if (typeof axis.scale === 'function') {\n // @ts-expect-error we're going to assume here that if axis.scale is a function then it is a d3Scale function\n return axis.scale.copy().domain(axisDomain).range(axisRange);\n }\n var d3ScaleFunction = getD3ScaleFromType(realScaleType);\n if (d3ScaleFunction == null) {\n return undefined;\n }\n var scale = d3ScaleFunction.domain(axisDomain).range(axisRange);\n // I don't like this function because it mutates the scale. We should come up with a way to compute the domain up front.\n checkDomainOfScale(scale);\n return scale;\n}\nexport var combineNiceTicks = (axisDomain, axisSettings, realScaleType) => {\n var domainDefinition = getDomainDefinition(axisSettings);\n if (realScaleType !== 'auto' && realScaleType !== 'linear') {\n return undefined;\n }\n if (axisSettings != null && axisSettings.tickCount && Array.isArray(domainDefinition) && (domainDefinition[0] === 'auto' || domainDefinition[1] === 'auto') && isWellFormedNumberDomain(axisDomain)) {\n return getNiceTickValues(axisDomain, axisSettings.tickCount, axisSettings.allowDecimals);\n }\n if (axisSettings != null && axisSettings.tickCount && axisSettings.type === 'number' && isWellFormedNumberDomain(axisDomain)) {\n return getTickValuesFixedDomain(axisDomain, axisSettings.tickCount, axisSettings.allowDecimals);\n }\n return undefined;\n};\nexport var selectNiceTicks = createSelector([selectAxisDomain, selectAxisSettings, selectRealScaleType], combineNiceTicks);\nexport var combineAxisDomainWithNiceTicks = (axisSettings, domain, niceTicks, axisType) => {\n if (\n /*\n * Angle axis for some reason uses nice ticks when rendering axis tick labels,\n * but doesn't use nice ticks for extending domain like all the other axes do.\n * Not really sure why? Is there a good reason,\n * or is it just because someone added support for nice ticks to the other axes and forgot this one?\n */\n axisType !== 'angleAxis' && (axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.type) === 'number' && isWellFormedNumberDomain(domain) && Array.isArray(niceTicks) && niceTicks.length > 0) {\n var minFromDomain = domain[0];\n var minFromTicks = niceTicks[0];\n var maxFromDomain = domain[1];\n var maxFromTicks = niceTicks[niceTicks.length - 1];\n return [Math.min(minFromDomain, minFromTicks), Math.max(maxFromDomain, maxFromTicks)];\n }\n return domain;\n};\nexport var selectAxisDomainIncludingNiceTicks = createSelector([selectBaseAxis, selectAxisDomain, selectNiceTicks, pickAxisType], combineAxisDomainWithNiceTicks);\n\n/**\n * Returns the smallest gap, between two numbers in the data, as a ratio of the whole range (max - min).\n * Ignores domain provided by user and only considers domain from data.\n *\n * The result is a number between 0 and 1.\n */\nexport var selectSmallestDistanceBetweenValues = createSelector(selectAllAppliedValues, selectBaseAxis, (allDataSquished, axisSettings) => {\n if (!axisSettings || axisSettings.type !== 'number') {\n return undefined;\n }\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = Array.from(onlyAllowNumbers(allDataSquished.map(d => d.value))).sort((a, b) => a - b);\n if (sortedValues.length < 2) {\n return Infinity;\n }\n var diff = sortedValues[sortedValues.length - 1] - sortedValues[0];\n if (diff === 0) {\n return Infinity;\n }\n // Only do n - 1 distance calculations because there's only n - 1 distances between n values.\n for (var i = 0; i < sortedValues.length - 1; i++) {\n var distance = sortedValues[i + 1] - sortedValues[i];\n smallestDistanceBetweenValues = Math.min(smallestDistanceBetweenValues, distance);\n }\n return smallestDistanceBetweenValues / diff;\n});\nvar selectCalculatedPadding = createSelector(selectSmallestDistanceBetweenValues, selectChartLayout, selectBarCategoryGap, selectChartOffsetInternal, (_1, _2, _3, padding) => padding, (smallestDistanceInPercent, layout, barCategoryGap, offset, padding) => {\n if (!isWellBehavedNumber(smallestDistanceInPercent)) {\n return 0;\n }\n var rangeWidth = layout === 'vertical' ? offset.height : offset.width;\n if (padding === 'gap') {\n return smallestDistanceInPercent * rangeWidth / 2;\n }\n if (padding === 'no-gap') {\n var gap = getPercentValue(barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n return halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n return 0;\n});\nexport var selectCalculatedXAxisPadding = (state, axisId) => {\n var xAxisSettings = selectXAxisSettings(state, axisId);\n if (xAxisSettings == null || typeof xAxisSettings.padding !== 'string') {\n return 0;\n }\n return selectCalculatedPadding(state, 'xAxis', axisId, xAxisSettings.padding);\n};\nexport var selectCalculatedYAxisPadding = (state, axisId) => {\n var yAxisSettings = selectYAxisSettings(state, axisId);\n if (yAxisSettings == null || typeof yAxisSettings.padding !== 'string') {\n return 0;\n }\n return selectCalculatedPadding(state, 'yAxis', axisId, yAxisSettings.padding);\n};\nvar selectXAxisPadding = createSelector(selectXAxisSettings, selectCalculatedXAxisPadding, (xAxisSettings, calculated) => {\n var _padding$left, _padding$right;\n if (xAxisSettings == null) {\n return {\n left: 0,\n right: 0\n };\n }\n var {\n padding\n } = xAxisSettings;\n if (typeof padding === 'string') {\n return {\n left: calculated,\n right: calculated\n };\n }\n return {\n left: ((_padding$left = padding.left) !== null && _padding$left !== void 0 ? _padding$left : 0) + calculated,\n right: ((_padding$right = padding.right) !== null && _padding$right !== void 0 ? _padding$right : 0) + calculated\n };\n});\nvar selectYAxisPadding = createSelector(selectYAxisSettings, selectCalculatedYAxisPadding, (yAxisSettings, calculated) => {\n var _padding$top, _padding$bottom;\n if (yAxisSettings == null) {\n return {\n top: 0,\n bottom: 0\n };\n }\n var {\n padding\n } = yAxisSettings;\n if (typeof padding === 'string') {\n return {\n top: calculated,\n bottom: calculated\n };\n }\n return {\n top: ((_padding$top = padding.top) !== null && _padding$top !== void 0 ? _padding$top : 0) + calculated,\n bottom: ((_padding$bottom = padding.bottom) !== null && _padding$bottom !== void 0 ? _padding$bottom : 0) + calculated\n };\n});\nexport var combineXAxisRange = createSelector([selectChartOffsetInternal, selectXAxisPadding, selectBrushDimensions, selectBrushSettings, (_state, _axisId, isPanorama) => isPanorama], (offset, padding, brushDimensions, _ref4, isPanorama) => {\n var {\n padding: brushPadding\n } = _ref4;\n if (isPanorama) {\n return [brushPadding.left, brushDimensions.width - brushPadding.right];\n }\n return [offset.left + padding.left, offset.left + offset.width - padding.right];\n});\nexport var combineYAxisRange = createSelector([selectChartOffsetInternal, selectChartLayout, selectYAxisPadding, selectBrushDimensions, selectBrushSettings, (_state, _axisId, isPanorama) => isPanorama], (offset, layout, padding, brushDimensions, _ref5, isPanorama) => {\n var {\n padding: brushPadding\n } = _ref5;\n if (isPanorama) {\n return [brushDimensions.height - brushPadding.bottom, brushPadding.top];\n }\n if (layout === 'horizontal') {\n return [offset.top + offset.height - padding.bottom, offset.top + padding.top];\n }\n return [offset.top + padding.top, offset.top + offset.height - padding.bottom];\n});\nexport var selectAxisRange = (state, axisType, axisId, isPanorama) => {\n var _selectZAxisSettings;\n switch (axisType) {\n case 'xAxis':\n return combineXAxisRange(state, axisId, isPanorama);\n case 'yAxis':\n return combineYAxisRange(state, axisId, isPanorama);\n case 'zAxis':\n return (_selectZAxisSettings = selectZAxisSettings(state, axisId)) === null || _selectZAxisSettings === void 0 ? void 0 : _selectZAxisSettings.range;\n case 'angleAxis':\n return selectAngleAxisRange(state);\n case 'radiusAxis':\n return selectRadiusAxisRange(state, axisId);\n default:\n return undefined;\n }\n};\nexport var selectAxisRangeWithReverse = createSelector([selectBaseAxis, selectAxisRange], combineAxisRangeWithReverse);\nexport var selectAxisScale = createSelector([selectBaseAxis, selectRealScaleType, selectAxisDomainIncludingNiceTicks, selectAxisRangeWithReverse], combineScaleFunction);\nexport var selectErrorBarsSettings = createSelector([selectCartesianItemsSettings, selectAllErrorBarSettings, pickAxisType], combineRelevantErrorBarSettings);\nfunction compareIds(a, b) {\n if (a.id < b.id) {\n return -1;\n }\n if (a.id > b.id) {\n return 1;\n }\n return 0;\n}\nvar pickAxisOrientation = (_state, orientation) => orientation;\nvar pickMirror = (_state, _orientation, mirror) => mirror;\nvar selectAllXAxesWithOffsetType = createSelector(selectAllXAxes, pickAxisOrientation, pickMirror, (allAxes, orientation, mirror) => allAxes.filter(axis => axis.orientation === orientation).filter(axis => axis.mirror === mirror).sort(compareIds));\nvar selectAllYAxesWithOffsetType = createSelector(selectAllYAxes, pickAxisOrientation, pickMirror, (allAxes, orientation, mirror) => allAxes.filter(axis => axis.orientation === orientation).filter(axis => axis.mirror === mirror).sort(compareIds));\nvar getXAxisSize = (offset, axisSettings) => {\n return {\n width: offset.width,\n height: axisSettings.height\n };\n};\nvar getYAxisSize = (offset, axisSettings) => {\n var width = typeof axisSettings.width === 'number' ? axisSettings.width : DEFAULT_Y_AXIS_WIDTH;\n return {\n width,\n height: offset.height\n };\n};\nexport var selectXAxisSize = createSelector(selectChartOffsetInternal, selectXAxisSettings, getXAxisSize);\nvar combineXAxisPositionStartingPoint = (offset, orientation, chartHeight) => {\n switch (orientation) {\n case 'top':\n return offset.top;\n case 'bottom':\n return chartHeight - offset.bottom;\n default:\n return 0;\n }\n};\nvar combineYAxisPositionStartingPoint = (offset, orientation, chartWidth) => {\n switch (orientation) {\n case 'left':\n return offset.left;\n case 'right':\n return chartWidth - offset.right;\n default:\n return 0;\n }\n};\nexport var selectAllXAxesOffsetSteps = createSelector(selectChartHeight, selectChartOffsetInternal, selectAllXAxesWithOffsetType, pickAxisOrientation, pickMirror, (chartHeight, offset, allAxesWithSameOffsetType, orientation, mirror) => {\n var steps = {};\n var position;\n allAxesWithSameOffsetType.forEach(axis => {\n var axisSize = getXAxisSize(offset, axis);\n if (position == null) {\n position = combineXAxisPositionStartingPoint(offset, orientation, chartHeight);\n }\n var needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n steps[axis.id] = position - Number(needSpace) * axisSize.height;\n position += (needSpace ? -1 : 1) * axisSize.height;\n });\n return steps;\n});\nexport var selectAllYAxesOffsetSteps = createSelector(selectChartWidth, selectChartOffsetInternal, selectAllYAxesWithOffsetType, pickAxisOrientation, pickMirror, (chartWidth, offset, allAxesWithSameOffsetType, orientation, mirror) => {\n var steps = {};\n var position;\n allAxesWithSameOffsetType.forEach(axis => {\n var axisSize = getYAxisSize(offset, axis);\n if (position == null) {\n position = combineYAxisPositionStartingPoint(offset, orientation, chartWidth);\n }\n var needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n steps[axis.id] = position - Number(needSpace) * axisSize.width;\n position += (needSpace ? -1 : 1) * axisSize.width;\n });\n return steps;\n});\nvar selectXAxisOffsetSteps = (state, axisId) => {\n var axisSettings = selectXAxisSettings(state, axisId);\n if (axisSettings == null) {\n return undefined;\n }\n return selectAllXAxesOffsetSteps(state, axisSettings.orientation, axisSettings.mirror);\n};\nexport var selectXAxisPosition = createSelector([selectChartOffsetInternal, selectXAxisSettings, selectXAxisOffsetSteps, (_, axisId) => axisId], (offset, axisSettings, allSteps, axisId) => {\n if (axisSettings == null) {\n return undefined;\n }\n var stepOfThisAxis = allSteps === null || allSteps === void 0 ? void 0 : allSteps[axisId];\n if (stepOfThisAxis == null) {\n return {\n x: offset.left,\n y: 0\n };\n }\n return {\n x: offset.left,\n y: stepOfThisAxis\n };\n});\nvar selectYAxisOffsetSteps = (state, axisId) => {\n var axisSettings = selectYAxisSettings(state, axisId);\n if (axisSettings == null) {\n return undefined;\n }\n return selectAllYAxesOffsetSteps(state, axisSettings.orientation, axisSettings.mirror);\n};\nexport var selectYAxisPosition = createSelector([selectChartOffsetInternal, selectYAxisSettings, selectYAxisOffsetSteps, (_, axisId) => axisId], (offset, axisSettings, allSteps, axisId) => {\n if (axisSettings == null) {\n return undefined;\n }\n var stepOfThisAxis = allSteps === null || allSteps === void 0 ? void 0 : allSteps[axisId];\n if (stepOfThisAxis == null) {\n return {\n x: 0,\n y: offset.top\n };\n }\n return {\n x: stepOfThisAxis,\n y: offset.top\n };\n});\nexport var selectYAxisSize = createSelector(selectChartOffsetInternal, selectYAxisSettings, (offset, axisSettings) => {\n var width = typeof axisSettings.width === 'number' ? axisSettings.width : DEFAULT_Y_AXIS_WIDTH;\n return {\n width,\n height: offset.height\n };\n});\nexport var selectCartesianAxisSize = (state, axisType, axisId) => {\n switch (axisType) {\n case 'xAxis':\n {\n return selectXAxisSize(state, axisId).width;\n }\n case 'yAxis':\n {\n return selectYAxisSize(state, axisId).height;\n }\n default:\n {\n return undefined;\n }\n }\n};\nexport var combineDuplicateDomain = (chartLayout, appliedValues, axis, axisType) => {\n if (axis == null) {\n return undefined;\n }\n var {\n allowDuplicatedCategory,\n type,\n dataKey\n } = axis;\n var isCategorical = isCategoricalAxis(chartLayout, axisType);\n var allData = appliedValues.map(av => av.value);\n if (dataKey && isCategorical && type === 'category' && allowDuplicatedCategory && hasDuplicate(allData)) {\n return allData;\n }\n return undefined;\n};\nexport var selectDuplicateDomain = createSelector([selectChartLayout, selectAllAppliedValues, selectBaseAxis, pickAxisType], combineDuplicateDomain);\nexport var combineCategoricalDomain = (layout, appliedValues, axis, axisType) => {\n if (axis == null || axis.dataKey == null) {\n return undefined;\n }\n var {\n type,\n scale\n } = axis;\n var isCategorical = isCategoricalAxis(layout, axisType);\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n return appliedValues.map(d => d.value);\n }\n return undefined;\n};\nexport var selectCategoricalDomain = createSelector([selectChartLayout, selectAllAppliedValues, selectAxisSettings, pickAxisType], combineCategoricalDomain);\nexport var selectAxisPropsNeededForCartesianGridTicksGenerator = createSelector([selectChartLayout, selectCartesianAxisSettings, selectRealScaleType, selectAxisScale, selectDuplicateDomain, selectCategoricalDomain, selectAxisRange, selectNiceTicks, pickAxisType], (layout, axis, realScaleType, scale, duplicateDomain, categoricalDomain, axisRange, niceTicks, axisType) => {\n if (axis == null) {\n return undefined;\n }\n var isCategorical = isCategoricalAxis(layout, axisType);\n return {\n angle: axis.angle,\n interval: axis.interval,\n minTickGap: axis.minTickGap,\n orientation: axis.orientation,\n tick: axis.tick,\n tickCount: axis.tickCount,\n tickFormatter: axis.tickFormatter,\n ticks: axis.ticks,\n type: axis.type,\n unit: axis.unit,\n axisType,\n categoricalDomain,\n duplicateDomain,\n isCategorical,\n niceTicks,\n range: axisRange,\n realScaleType,\n scale\n };\n});\nexport var combineAxisTicks = (layout, axis, realScaleType, scale, niceTicks, axisRange, duplicateDomain, categoricalDomain, axisType) => {\n if (axis == null || scale == null) {\n return undefined;\n }\n var isCategorical = isCategoricalAxis(layout, axisType);\n var {\n type,\n ticks,\n tickCount\n } = axis;\n\n // This is testing for `scaleBand` but for band axis the type is reported as `band` so this looks like a dead code with a workaround elsewhere?\n var offsetForBand = realScaleType === 'scaleBand' && typeof scale.bandwidth === 'function' ? scale.bandwidth() / 2 : 2;\n var offset = type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n offset = axisType === 'angleAxis' && axisRange != null && axisRange.length >= 2 ? mathSign(axisRange[0] - axisRange[1]) * 2 * offset : offset;\n\n // The ticks set by user should only affect the ticks adjacent to axis line\n var ticksOrNiceTicks = ticks || niceTicks;\n if (ticksOrNiceTicks) {\n var result = ticksOrNiceTicks.map((entry, index) => {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n index,\n // If the scaleContent is not a number, the coordinate will be NaN.\n // That could be the case for example with a PointScale and a string as domain.\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset\n };\n });\n return result.filter(row => isWellBehavedNumber(row.coordinate));\n }\n\n // When axis is a categorical axis, but the type of axis is number or the scale of axis is not \"auto\"\n if (isCategorical && categoricalDomain) {\n return categoricalDomain.map((entry, index) => ({\n coordinate: scale(entry) + offset,\n value: entry,\n index,\n offset\n })).filter(row => isWellBehavedNumber(row.coordinate));\n }\n if (scale.ticks) {\n return scale.ticks(tickCount)\n // @ts-expect-error why does the offset go here? The type does not require it\n .map(entry => ({\n coordinate: scale(entry) + offset,\n value: entry,\n offset\n }));\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map((entry, index) => ({\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index,\n offset\n }));\n};\nexport var selectTicksOfAxis = createSelector([selectChartLayout, selectAxisSettings, selectRealScaleType, selectAxisScale, selectNiceTicks, selectAxisRange, selectDuplicateDomain, selectCategoricalDomain, pickAxisType], combineAxisTicks);\nexport var combineGraphicalItemTicks = (layout, axis, scale, axisRange, duplicateDomain, categoricalDomain, axisType) => {\n if (axis == null || scale == null || axisRange == null || axisRange[0] === axisRange[1]) {\n return undefined;\n }\n var isCategorical = isCategoricalAxis(layout, axisType);\n var {\n tickCount\n } = axis;\n var offset = 0;\n offset = axisType === 'angleAxis' && (axisRange === null || axisRange === void 0 ? void 0 : axisRange.length) >= 2 ? mathSign(axisRange[0] - axisRange[1]) * 2 * offset : offset;\n\n // When axis is a categorical axis, but the type of axis is number or the scale of axis is not \"auto\"\n if (isCategorical && categoricalDomain) {\n return categoricalDomain.map((entry, index) => ({\n coordinate: scale(entry) + offset,\n value: entry,\n index,\n offset\n }));\n }\n if (scale.ticks) {\n return scale.ticks(tickCount)\n // @ts-expect-error why does the offset go here? The type does not require it\n .map(entry => ({\n coordinate: scale(entry) + offset,\n value: entry,\n offset\n }));\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map((entry, index) => ({\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index,\n offset\n }));\n};\nexport var selectTicksOfGraphicalItem = createSelector([selectChartLayout, selectAxisSettings, selectAxisScale, selectAxisRange, selectDuplicateDomain, selectCategoricalDomain, pickAxisType], combineGraphicalItemTicks);\nexport var selectAxisWithScale = createSelector(selectBaseAxis, selectAxisScale, (axis, scale) => {\n if (axis == null || scale == null) {\n return undefined;\n }\n return _objectSpread(_objectSpread({}, axis), {}, {\n scale\n });\n});\nvar selectZAxisScale = createSelector([selectBaseAxis, selectRealScaleType, selectAxisDomain, selectAxisRangeWithReverse], combineScaleFunction);\nexport var selectZAxisWithScale = createSelector((state, _axisType, axisId) => selectZAxisSettings(state, axisId), selectZAxisScale, (axis, scale) => {\n if (axis == null || scale == null) {\n return undefined;\n }\n return _objectSpread(_objectSpread({}, axis), {}, {\n scale\n });\n});\n\n/**\n * We are also going to need to implement polar chart directions if we want to support keyboard controls for those.\n */\n\nexport var selectChartDirection = createSelector([selectChartLayout, selectAllXAxes, selectAllYAxes], (layout, allXAxes, allYAxes) => {\n switch (layout) {\n case 'horizontal':\n {\n return allXAxes.some(axis => axis.reversed) ? 'right-to-left' : 'left-to-right';\n }\n case 'vertical':\n {\n return allYAxes.some(axis => axis.reversed) ? 'bottom-to-top' : 'top-to-bottom';\n }\n // TODO: make this better. For now, right arrow triggers \"forward\", left arrow \"back\"\n // however, the tooltip moves an unintuitive direction because of how the indices are rendered\n case 'centric':\n case 'radial':\n {\n return 'left-to-right';\n }\n default:\n {\n return undefined;\n }\n }\n});","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isSymbol = require('../predicate/isSymbol.js');\n\nfunction toNumber(value) {\n if (isSymbol.isSymbol(value)) {\n return NaN;\n }\n return Number(value);\n}\n\nexports.toNumber = toNumber;\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); }\nexport var rectWithPoints = (_ref, _ref2) => {\n var {\n x: x1,\n y: y1\n } = _ref;\n var {\n x: x2,\n y: y2\n } = _ref2;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\nexport var rectWithCoords = _ref3 => {\n var {\n x1,\n y1,\n x2,\n y2\n } = _ref3;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport class ScaleHelper {\n static create(obj) {\n return new ScaleHelper(obj);\n }\n constructor(scale) {\n this.scale = scale;\n }\n get domain() {\n return this.scale.domain;\n }\n get range() {\n return this.scale.range;\n }\n get rangeMin() {\n return this.range()[0];\n }\n get rangeMax() {\n return this.range()[1];\n }\n get bandwidth() {\n return this.scale.bandwidth;\n }\n apply(value) {\n var {\n bandAware,\n position\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (value === undefined) {\n return undefined;\n }\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n return this.scale(value) + _offset;\n }\n default:\n {\n return this.scale(value);\n }\n }\n }\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + _offset2;\n }\n return this.scale(value);\n }\n isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n}\n_defineProperty(ScaleHelper, \"EPS\", 1e-4);\nexport var createLabeledScales = options => {\n var scales = Object.keys(options).reduce((res, key) => _objectSpread(_objectSpread({}, res), {}, {\n [key]: ScaleHelper.create(options[key])\n }), {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply(coord) {\n var {\n bandAware,\n position\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.fromEntries(Object.entries(coord).map(_ref4 => {\n var [label, value] = _ref4;\n return [label, scales[label].apply(value, {\n bandAware,\n position\n })];\n }));\n },\n isInRange(coord) {\n return Object.keys(coord).every(label => scales[label].isInRange(coord[label]));\n }\n });\n};\n\n/** Normalizes the angle so that 0 <= angle < 180.\n * @param {number} angle Angle in degrees.\n * @return {number} the normalized angle with a value of at least 0 and never greater or equal to 180. */\nexport function normalizeAngle(angle) {\n return (angle % 180 + 180) % 180;\n}\n\n/** Calculates the width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n * @param {Object} size Width and height of the text in a horizontal position.\n * @param {number} angle Angle in degrees in which the text is displayed.\n * @return {number} The width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n */\nexport var getAngledRectangleWidth = function getAngledRectangleWidth(_ref5) {\n var {\n width,\n height\n } = _ref5;\n var angle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Ensure angle is >= 0 && < 180\n var normalizedAngle = normalizeAngle(angle);\n var angleRadians = normalizedAngle * Math.PI / 180;\n\n /* Depending on the height and width of the rectangle, we may need to use different formulas to calculate the angled\n * width. This threshold defines when each formula should kick in. */\n var angleThreshold = Math.atan(height / width);\n var angledWidth = angleRadians > angleThreshold && angleRadians < Math.PI - angleThreshold ? height / Math.sin(angleRadians) : width / Math.cos(angleRadians);\n return Math.abs(angledWidth);\n};","/**\n * Given an array and a number N, return a new array which contains every nTh\n * element of the input array. For n below 1, an empty array is returned.\n * For n equal to 1, the input array is returned as is.\n * For n greater than the length of the array, an array containing the first element\n * and every nTh element after that (if any) is returned.\n *\n * @param array An input array.\n * @param n A number specifying which elements to take.\n * @returns The result array of the same type as the input array.\n */\nexport function getEveryNthWithCondition(array, n) {\n if (n < 1) {\n return [];\n }\n if (n === 1) {\n return array;\n }\n var result = [];\n for (var i = 0; i < array.length; i += n) {\n result.push(array[i]);\n }\n return result;\n}","import { getAngledRectangleWidth } from './CartesianUtils';\nimport { getEveryNthWithCondition } from './getEveryNthWithCondition';\nexport function getAngledTickWidth(contentSize, unitSize, angle) {\n var size = {\n width: contentSize.width + unitSize.width,\n height: contentSize.height + unitSize.height\n };\n return getAngledRectangleWidth(size, angle);\n}\nexport function getTickBoundaries(viewBox, sign, sizeKey) {\n var isWidth = sizeKey === 'width';\n var {\n x,\n y,\n width,\n height\n } = viewBox;\n if (sign === 1) {\n return {\n start: isWidth ? x : y,\n end: isWidth ? x + width : y + height\n };\n }\n return {\n start: isWidth ? x + width : y + height,\n end: isWidth ? x : y\n };\n}\nexport function isVisible(sign, tickPosition, getSize, start, end) {\n /* Since getSize() is expensive (it reads the ticks' size from the DOM), we do this check first to avoid calculating\n * the tick's size. */\n if (sign * tickPosition < sign * start || sign * tickPosition > sign * end) {\n return false;\n }\n var size = getSize();\n return sign * (tickPosition - sign * size / 2 - start) >= 0 && sign * (tickPosition + sign * size / 2 - end) <= 0;\n}\nexport function getNumberIntervalTicks(ticks, interval) {\n return getEveryNthWithCondition(ticks, interval + 1);\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 { mathSign, isNumber } from '../util/DataUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Global } from '../util/Global';\nimport { isVisible, getTickBoundaries, getNumberIntervalTicks, getAngledTickWidth } from '../util/TickUtils';\nimport { getEquidistantTicks } from './getEquidistantTicks';\nfunction getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var len = result.length;\n var {\n start\n } = boundaries;\n var {\n end\n } = boundaries;\n var _loop = function _loop(i) {\n var entry = result[i];\n var size;\n var getSize = () => {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * getSize() / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n if (entry.tickCoord != null) {\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n end = entry.tickCoord - sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n };\n for (var i = len - 1; i >= 0; i--) {\n _loop(i);\n }\n return result;\n}\nfunction getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, preserveEnd) {\n // This method is mutating the array so clone is indeed necessary here\n var result = (ticks || []).slice();\n var len = result.length;\n var {\n start,\n end\n } = boundaries;\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailSize = getTickSize(tail, len - 1);\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n if (tail.tickCoord != null) {\n var isTailShow = isVisible(sign, tail.tickCoord, () => tailSize, start, end);\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n }\n var count = preserveEnd ? len - 1 : len;\n var _loop2 = function _loop2(i) {\n var entry = result[i];\n var size;\n var getSize = () => {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * getSize() / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n if (entry.tickCoord != null) {\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n start = entry.tickCoord + sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n };\n for (var i = 0; i < count; i++) {\n _loop2(i);\n }\n return result;\n}\nexport function getTicks(props, fontSize, letterSpacing) {\n var {\n tick,\n ticks,\n viewBox,\n minTickGap,\n orientation,\n interval,\n tickFormatter,\n unit,\n angle\n } = props;\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n if (isNumber(interval) || Global.isSsr) {\n var _getNumberIntervalTic;\n return (_getNumberIntervalTic = getNumberIntervalTicks(ticks, isNumber(interval) ? interval : 0)) !== null && _getNumberIntervalTic !== void 0 ? _getNumberIntervalTic : [];\n }\n var candidates = [];\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize,\n letterSpacing\n }) : {\n width: 0,\n height: 0\n };\n var getTickSize = (content, index) => {\n var value = typeof tickFormatter === 'function' ? tickFormatter(content.value, index) : content.value;\n // Recharts only supports angles when sizeKey === 'width'\n return sizeKey === 'width' ? getAngledTickWidth(getStringSize(value, {\n fontSize,\n letterSpacing\n }), unitSize, angle) : getStringSize(value, {\n fontSize,\n letterSpacing\n })[sizeKey];\n };\n var sign = ticks.length >= 2 ? mathSign(ticks[1].coordinate - ticks[0].coordinate) : 1;\n var boundaries = getTickBoundaries(viewBox, sign, sizeKey);\n if (interval === 'equidistantPreserveStart') {\n return getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n if (interval === 'preserveStart' || interval === 'preserveStartEnd') {\n candidates = getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, interval === 'preserveStartEnd');\n } else {\n candidates = getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n return candidates.filter(entry => entry.isShow);\n}","import { isVisible } from '../util/TickUtils';\nimport { getEveryNthWithCondition } from '../util/getEveryNthWithCondition';\nexport function getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap) {\n // If the ticks are readonly, then the slice might not be necessary\n var result = (ticks || []).slice();\n var {\n start: initialStart,\n end\n } = boundaries;\n var index = 0;\n // Premature optimisation idea 1: Estimate a lower bound, and start from there.\n // For now, start from every tick\n var stepsize = 1;\n var start = initialStart;\n var _loop = function _loop() {\n // Given stepsize, evaluate whether every stepsize-th tick can be shown.\n // If it can not, then increase the stepsize by 1, and try again.\n\n var entry = ticks === null || ticks === void 0 ? void 0 : ticks[index];\n\n // Break condition - If we have evaluated all the ticks, then we are done.\n if (entry === undefined) {\n return {\n v: getEveryNthWithCondition(ticks, stepsize)\n };\n }\n\n // Check if the element collides with the next element\n var i = index;\n var size;\n var getSize = () => {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n var tickCoord = entry.coordinate;\n // We will always show the first tick.\n var isShow = index === 0 || isVisible(sign, tickCoord, getSize, start, end);\n if (!isShow) {\n // Start all over with a larger stepsize\n index = 0;\n start = initialStart;\n stepsize += 1;\n }\n if (isShow) {\n // If it can be shown, update the start\n start = tickCoord + sign * (getSize() / 2 + minTickGap);\n index += stepsize;\n }\n },\n _ret;\n while (stepsize <= result.length) {\n _ret = _loop();\n if (_ret) return _ret.v;\n }\n return [];\n}","import { selectChartLayout } from '../../context/chartLayoutContext';\n\n/**\n * angle, radius, X, Y, and Z axes all have domain and range and scale and associated settings\n */\n\n/**\n * X and Y axes have ticks. Z axis is never displayed and so it lacks ticks\n * and tick settings.\n */\n\nexport var selectTooltipAxisType = state => {\n var layout = selectChartLayout(state);\n if (layout === 'horizontal') {\n return 'xAxis';\n }\n if (layout === 'vertical') {\n return 'yAxis';\n }\n if (layout === 'centric') {\n return 'angleAxis';\n }\n return 'radiusAxis';\n};","import { getStackSeriesIdentifier } from '../../../util/stacks/getStackSeriesIdentifier';\nimport { getValueByDataKey } from '../../../util/ChartUtils';\n\n/**\n * In a stacked chart, each graphical item has its own data. That data could be either:\n * - defined on the chart root, in which case the item gets a unique dataKey\n * - or defined on the item itself, in which case multiple items can share the same dataKey\n *\n * That means we cannot use the dataKey as a unique identifier for the item.\n *\n * This type represents a single data point in a stacked chart, where each key is a series identifier\n * and the value is the numeric value for that series using the numerical axis dataKey.\n */\n\nexport function combineDisplayedStackedData(stackedGraphicalItems, _ref, tooltipAxisSettings) {\n var {\n chartData = []\n } = _ref;\n var {\n allowDuplicatedCategory,\n dataKey: tooltipDataKey\n } = tooltipAxisSettings;\n\n // A map of tooltip data keys to the stacked data points\n var knownItemsByDataKey = new Map();\n stackedGraphicalItems.forEach(item => {\n var _item$data;\n // If there is no data on the individual item then we use the root chart data\n var resolvedData = (_item$data = item.data) !== null && _item$data !== void 0 ? _item$data : chartData;\n if (resolvedData == null || resolvedData.length === 0) {\n // if that doesn't work then we skip this item\n return;\n }\n var stackIdentifier = getStackSeriesIdentifier(item);\n resolvedData.forEach((entry, index) => {\n var tooltipValue = tooltipDataKey == null || allowDuplicatedCategory ? index : String(getValueByDataKey(entry, tooltipDataKey, null));\n var numericValue = getValueByDataKey(entry, item.dataKey, 0);\n var curr;\n if (knownItemsByDataKey.has(tooltipValue)) {\n curr = knownItemsByDataKey.get(tooltipValue);\n } else {\n curr = {};\n }\n Object.assign(curr, {\n [stackIdentifier]: numericValue\n });\n knownItemsByDataKey.set(tooltipValue, curr);\n });\n });\n return Array.from(knownItemsByDataKey.values());\n}","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isSymbol = require('../predicate/isSymbol.js');\n\nconst regexIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/;\nconst regexIsPlainProp = /^\\w*$/;\nfunction isKey(value, object) {\n if (Array.isArray(value)) {\n return false;\n }\n if (typeof value === 'number' || typeof value === 'boolean' || value == null || isSymbol.isSymbol(value)) {\n return true;\n }\n return ((typeof value === 'string' && (regexIsPlainProp.test(value) || !regexIsDeepProp.test(value))) ||\n (object != null && Object.hasOwn(object, value)));\n}\n\nexports.isKey = isKey;\n","/**\n * Some graphical items allow data stacking. The stacks are optional,\n * so all props here are optional too.\n */\n\n/**\n * Some graphical items allow data stacking.\n * This interface is used to represent the items that are stacked\n * because the user has provided the stackId and dataKey properties.\n */\n\nexport function isStacked(graphicalItem) {\n return graphicalItem.stackId != null && graphicalItem.dataKey != null;\n}","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isIterateeCall = require('../_internal/isIterateeCall.js');\nconst toFinite = require('../util/toFinite.js');\n\nfunction range(start, end, step) {\n if (step && typeof step !== 'number' && isIterateeCall.isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n start = toFinite.toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n }\n else {\n end = toFinite.toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite.toFinite(step);\n const length = Math.max(Math.ceil((end - start) / (step || 1)), 0);\n const result = new Array(length);\n for (let index = 0; index < length; index++) {\n result[index] = start;\n start += step;\n }\n return result;\n}\n\nexports.range = range;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/use-sync-external-store-with-selector.production.js');\n} else {\n module.exports = require('./cjs/use-sync-external-store-with-selector.development.js');\n}\n","import { createContext } from 'react';\n\n/*\n * This is a copy of the React-Redux context type, but with our own store type.\n * We could import directly from react-redux like this:\n * import { ReactReduxContextValue } from 'react-redux/src/components/Context';\n * but that makes typescript angry with some errors I am not sure how to resolve\n * so copy it is.\n */\n\n/**\n * We need to use our own independent Redux context because we need to avoid interfering with other people's Redux stores\n * in case they decide to install and use Recharts in another Redux app which is likely to happen.\n *\n * https://react-redux.js.org/using-react-redux/accessing-store#providing-custom-context\n */\nexport var RechartsReduxContext = /*#__PURE__*/createContext(null);","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isUnsafeProperty(key) {\n return key === '__proto__';\n}\n\nexports.isUnsafeProperty = isUnsafeProperty;\n","import { isValidElement } from 'react';\nimport { isEventKey } from './excludeEventProps';\n\n/**\n * Determines how values are stacked:\n *\n * - `none` is the default, it adds values on top of each other. No smarts. Negative values will overlap.\n * - `expand` make it so that the values always add up to 1 - so the chart will look like a rectangle.\n * - `wiggle` and `silhouette` tries to keep the chart centered.\n * - `sign` stacks positive values above zero and negative values below zero. Similar to `none` but handles negatives.\n * - `positive` ignores all negative values, and then behaves like \\`none\\`.\n *\n * Also see https://d3js.org/d3-shape/stack#stack-offsets\n * (note that the `diverging` offset in d3 is named `sign` in recharts)\n */\n\n/**\n * @deprecated use either `CartesianLayout` or `PolarLayout` instead.\n * Mixing both charts families leads to ambiguity in the type system.\n * These two layouts share very few properties, so it is best to keep them separate.\n */\n\n/**\n * @deprecated do not use: too many properties, mixing too many concepts, cartesian and polar together, everything optional.\n * Instead, use either `Coordinate` or `PolarCoordinate`.\n */\n\nexport var isPolarCoordinate = c => {\n return 'radius' in c && 'startAngle' in c && 'endAngle' in c;\n};\n\n//\n// Event Handler Types -- Copied from @types/react/index.d.ts and adapted for Props.\n//\n\n/** The type of easing function to use for animations */\n\n/** Specifies the duration of animation, the unit of this option is ms. */\n\n/**\n * This object defines the offset of the chart area and width and height and brush and ... it's a bit too much information all in one.\n * We use it internally but let's not expose it to the outside world.\n * If you are looking for this information, instead import `ChartOffset` or `PlotArea` from `recharts`.\n */\n\n/**\n * The domain of axis.\n * This is the definition\n *\n * Numeric domain is always defined by an array of exactly two values, for the min and the max of the axis.\n * Categorical domain is defined as array of all possible values.\n *\n * Can be specified in many ways:\n * - array of numbers\n * - with special strings like 'dataMin' and 'dataMax'\n * - with special string math like 'dataMin - 100'\n * - with keyword 'auto'\n * - or a function\n * - array of functions\n * - or a combination of the above\n */\n\n/**\n * NumberDomain is an evaluated {@link AxisDomain}.\n * Unlike {@link AxisDomain}, it has no variety - it's a tuple of two number.\n * This is after all the keywords and functions were evaluated and what is left is [min, max].\n *\n * Know that the min, max values are not guaranteed to be nice numbers - values like -Infinity or NaN are possible.\n *\n * There are also `category` axes that have different things than numbers in their domain.\n */\n\n/** The props definition of base axis */\n\n/** Defines how ticks are placed and whether / how tick collisions are handled.\n * 'preserveStart' keeps the left tick on collision and ensures that the first tick is always shown.\n * 'preserveEnd' keeps the right tick on collision and ensures that the last tick is always shown.\n * 'preserveStartEnd' keeps the left tick on collision and ensures that the first and last ticks always show.\n * 'equidistantPreserveStart' selects a number N such that every nTh tick will be shown without collision.\n */\n\n/**\n * Ticks can be any type when the axis is the type of category.\n *\n * Ticks must be numbers when the axis is the type of number.\n */\n\nexport var adaptEventHandlers = (props, newHandler) => {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if (/*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (typeof inputProps !== 'object' && typeof inputProps !== 'function') {\n return null;\n }\n var out = {};\n Object.keys(inputProps).forEach(key => {\n if (isEventKey(key)) {\n out[key] = newHandler || (e => inputProps[key](inputProps, e));\n }\n });\n return out;\n};\nvar getEventHandlerOfChild = (originalHandler, data, index) => e => {\n originalHandler(data, index, e);\n return null;\n};\nexport var adaptEventsOfChild = (props, data, index) => {\n if (props === null || typeof props !== 'object' && typeof props !== 'function') {\n return null;\n }\n var out = null;\n Object.keys(props).forEach(key => {\n var item = props[key];\n if (isEventKey(key) && typeof item === 'function') {\n if (!out) out = {};\n out[key] = getEventHandlerOfChild(item, data, index);\n }\n });\n return out;\n};\n\n/**\n * 'axis' means that all graphical items belonging to this axis tick will be highlighted,\n * and all will be present in the tooltip.\n * Tooltip with 'axis' will display when hovering on the chart background.\n *\n * 'item' means only the one graphical item being hovered will show in the tooltip.\n * Tooltip with 'item' will display when hovering over individual graphical items.\n *\n * This is calculated internally;\n * charts have a `defaultTooltipEventType` and `validateTooltipEventTypes` options.\n *\n * Users then use <Tooltip shared={true} /> or <Tooltip shared={false} /> to control their preference,\n * and charts will then see what is allowed and what is not.\n */\n\n/**\n * These are the props we are going to pass to an `activeDot` or `dot` if it is a function or a custom Component\n */\n\n/**\n * This is the type of `activeDot` prop on:\n * - Area\n * - Line\n * - Radar\n */\n\n/**\n * Inside the dot event handlers we provide extra information about the dot point\n * that the Dot component itself does not need but users might find useful.\n */\n\n/**\n * This is the type of `dot` prop on:\n * - Area\n * - Line\n * - Radar\n */\n\n/**\n * Simplified version of the MouseEvent so that we don't have to mock the whole thing in tests.\n *\n * This is meant to represent the React.MouseEvent\n * which is a wrapper on top of https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent\n */\n\n/**\n * Coordinates relative to the top-left corner of the chart.\n * Also include scale which means that a chart that's scaled will return the same coordinates as a chart that's not scaled.\n */\n\nexport var isNonEmptyArray = arr => {\n return Array.isArray(arr) && arr.length > 0;\n};","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction flatten(arr, depth = 1) {\n const result = [];\n const flooredDepth = Math.floor(depth);\n const recursive = (arr, currentDepth) => {\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n if (Array.isArray(item) && currentDepth < flooredDepth) {\n recursive(item, currentDepth + 1);\n }\n else {\n result.push(item);\n }\n }\n };\n recursive(arr, 0);\n return result;\n}\n\nexports.flatten = flatten;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst get = require('./get.js');\n\nfunction property(path) {\n return function (object) {\n return get.get(object, path);\n };\n}\n\nexports.property = property;\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); }\n/**\n * This slice contains a registry of z-index values for various components.\n * The state is a map from z-index numbers to a string ID.\n */\nimport { createSlice, prepareAutoBatched } from '@reduxjs/toolkit';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nvar seed = {};\nvar initialState = {\n zIndexMap: Object.values(DefaultZIndexes).reduce((acc, current) => _objectSpread(_objectSpread({}, acc), {}, {\n [current]: {\n elementId: undefined,\n panoramaElementId: undefined,\n consumers: 0\n }\n }), seed)\n};\nvar defaultZIndexSet = new Set(Object.values(DefaultZIndexes));\nfunction isDefaultZIndex(zIndex) {\n return defaultZIndexSet.has(zIndex);\n}\nvar zIndexSlice = createSlice({\n name: 'zIndex',\n initialState,\n reducers: {\n registerZIndexPortal: {\n reducer: (state, action) => {\n var {\n zIndex\n } = action.payload;\n if (state.zIndexMap[zIndex]) {\n state.zIndexMap[zIndex].consumers += 1;\n } else {\n state.zIndexMap[zIndex] = {\n consumers: 1,\n elementId: undefined,\n panoramaElementId: undefined\n };\n }\n },\n prepare: prepareAutoBatched()\n },\n unregisterZIndexPortal: {\n reducer: (state, action) => {\n var {\n zIndex\n } = action.payload;\n if (state.zIndexMap[zIndex]) {\n state.zIndexMap[zIndex].consumers -= 1;\n /*\n * Garbage collect unused z-index entries, except for default z-indexes.\n * Default z-indexes are always rendered, regardless of whether there are consumers or not.\n * And because of that, even if we delete this entry, the ZIndexPortal provider will still be rendered\n * and React is not going to re-create it, and it won't re-register the element ID.\n * So let's not delete default z-index entries.\n */\n if (state.zIndexMap[zIndex].consumers <= 0 && !isDefaultZIndex(zIndex)) {\n delete state.zIndexMap[zIndex];\n }\n }\n },\n prepare: prepareAutoBatched()\n },\n registerZIndexPortalId: {\n reducer: (state, action) => {\n var {\n zIndex,\n elementId,\n isPanorama\n } = action.payload;\n if (state.zIndexMap[zIndex]) {\n if (isPanorama) {\n state.zIndexMap[zIndex].panoramaElementId = elementId;\n } else {\n state.zIndexMap[zIndex].elementId = elementId;\n }\n } else {\n state.zIndexMap[zIndex] = {\n consumers: 0,\n elementId: isPanorama ? undefined : elementId,\n panoramaElementId: isPanorama ? elementId : undefined\n };\n }\n },\n prepare: prepareAutoBatched()\n },\n unregisterZIndexPortalId: {\n reducer: (state, action) => {\n var {\n zIndex\n } = action.payload;\n if (state.zIndexMap[zIndex]) {\n if (action.payload.isPanorama) {\n state.zIndexMap[zIndex].panoramaElementId = undefined;\n } else {\n state.zIndexMap[zIndex].elementId = undefined;\n }\n }\n },\n prepare: prepareAutoBatched()\n }\n }\n});\nexport var {\n registerZIndexPortal,\n unregisterZIndexPortal,\n registerZIndexPortalId,\n unregisterZIndexPortalId\n} = zIndexSlice.actions;\nexport var zIndexReducer = zIndexSlice.reducer;","import { createSelector } from 'reselect';\nimport sortBy from 'es-toolkit/compat/sortBy';\nexport var selectLegendSettings = state => state.legend.settings;\nexport var selectLegendSize = state => state.legend.size;\nvar selectAllLegendPayload2DArray = state => state.legend.payload;\nexport var selectLegendPayload = createSelector([selectAllLegendPayload2DArray, selectLegendSettings], (payloads, _ref) => {\n var {\n itemSorter\n } = _ref;\n var flat = payloads.flat(1);\n return itemSorter ? sortBy(flat, itemSorter) : flat;\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 { createSelector } from 'reselect';\nimport { selectLegendSettings, selectLegendSize } from './legendSelectors';\nimport { appendOffsetOfLegend } from '../../util/ChartUtils';\nimport { selectChartHeight, selectChartWidth, selectMargin } from './containerSelectors';\nimport { selectAllXAxes, selectAllYAxes } from './selectAllAxes';\nimport { DEFAULT_Y_AXIS_WIDTH } from '../../util/Constants';\nexport var selectBrushHeight = state => state.brush.height;\nfunction selectLeftAxesOffset(state) {\n var yAxes = selectAllYAxes(state);\n return yAxes.reduce((result, entry) => {\n if (entry.orientation === 'left' && !entry.mirror && !entry.hide) {\n var width = typeof entry.width === 'number' ? entry.width : DEFAULT_Y_AXIS_WIDTH;\n return result + width;\n }\n return result;\n }, 0);\n}\nfunction selectRightAxesOffset(state) {\n var yAxes = selectAllYAxes(state);\n return yAxes.reduce((result, entry) => {\n if (entry.orientation === 'right' && !entry.mirror && !entry.hide) {\n var width = typeof entry.width === 'number' ? entry.width : DEFAULT_Y_AXIS_WIDTH;\n return result + width;\n }\n return result;\n }, 0);\n}\nfunction selectTopAxesOffset(state) {\n var xAxes = selectAllXAxes(state);\n return xAxes.reduce((result, entry) => {\n if (entry.orientation === 'top' && !entry.mirror && !entry.hide) {\n return result + entry.height;\n }\n return result;\n }, 0);\n}\nfunction selectBottomAxesOffset(state) {\n var xAxes = selectAllXAxes(state);\n return xAxes.reduce((result, entry) => {\n if (entry.orientation === 'bottom' && !entry.mirror && !entry.hide) {\n return result + entry.height;\n }\n return result;\n }, 0);\n}\n\n/**\n * For internal use only.\n *\n * @param root state\n * @return ChartOffsetInternal\n */\nexport var selectChartOffsetInternal = createSelector([selectChartWidth, selectChartHeight, selectMargin, selectBrushHeight, selectLeftAxesOffset, selectRightAxesOffset, selectTopAxesOffset, selectBottomAxesOffset, selectLegendSettings, selectLegendSize], (chartWidth, chartHeight, margin, brushHeight, leftAxesOffset, rightAxesOffset, topAxesOffset, bottomAxesOffset, legendSettings, legendSize) => {\n var offsetH = {\n left: (margin.left || 0) + leftAxesOffset,\n right: (margin.right || 0) + rightAxesOffset\n };\n var offsetV = {\n top: (margin.top || 0) + topAxesOffset,\n bottom: (margin.bottom || 0) + bottomAxesOffset\n };\n var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);\n var brushBottom = offset.bottom;\n offset.bottom += brushHeight;\n offset = appendOffsetOfLegend(offset, legendSettings, legendSize);\n var offsetWidth = chartWidth - offset.left - offset.right;\n var offsetHeight = chartHeight - offset.top - offset.bottom;\n return _objectSpread(_objectSpread({\n brushBottom\n }, offset), {}, {\n // never return negative values for height and width\n width: Math.max(offsetWidth, 0),\n height: Math.max(offsetHeight, 0)\n });\n});\nexport var selectChartViewBox = createSelector(selectChartOffsetInternal, offset => ({\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n}));\nexport var selectAxisViewBox = createSelector(selectChartWidth, selectChartHeight, (width, height) => ({\n x: 0,\n y: 0,\n width,\n height\n}));","export var selectTooltipPayloadSearcher = state => state.options.tooltipPayloadSearcher;","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst regexpTag = '[object RegExp]';\nconst stringTag = '[object String]';\nconst numberTag = '[object Number]';\nconst booleanTag = '[object Boolean]';\nconst argumentsTag = '[object Arguments]';\nconst symbolTag = '[object Symbol]';\nconst dateTag = '[object Date]';\nconst mapTag = '[object Map]';\nconst setTag = '[object Set]';\nconst arrayTag = '[object Array]';\nconst functionTag = '[object Function]';\nconst arrayBufferTag = '[object ArrayBuffer]';\nconst objectTag = '[object Object]';\nconst errorTag = '[object Error]';\nconst dataViewTag = '[object DataView]';\nconst uint8ArrayTag = '[object Uint8Array]';\nconst uint8ClampedArrayTag = '[object Uint8ClampedArray]';\nconst uint16ArrayTag = '[object Uint16Array]';\nconst uint32ArrayTag = '[object Uint32Array]';\nconst bigUint64ArrayTag = '[object BigUint64Array]';\nconst int8ArrayTag = '[object Int8Array]';\nconst int16ArrayTag = '[object Int16Array]';\nconst int32ArrayTag = '[object Int32Array]';\nconst bigInt64ArrayTag = '[object BigInt64Array]';\nconst float32ArrayTag = '[object Float32Array]';\nconst float64ArrayTag = '[object Float64Array]';\n\nexports.argumentsTag = argumentsTag;\nexports.arrayBufferTag = arrayBufferTag;\nexports.arrayTag = arrayTag;\nexports.bigInt64ArrayTag = bigInt64ArrayTag;\nexports.bigUint64ArrayTag = bigUint64ArrayTag;\nexports.booleanTag = booleanTag;\nexports.dataViewTag = dataViewTag;\nexports.dateTag = dateTag;\nexports.errorTag = errorTag;\nexports.float32ArrayTag = float32ArrayTag;\nexports.float64ArrayTag = float64ArrayTag;\nexports.functionTag = functionTag;\nexports.int16ArrayTag = int16ArrayTag;\nexports.int32ArrayTag = int32ArrayTag;\nexports.int8ArrayTag = int8ArrayTag;\nexports.mapTag = mapTag;\nexports.numberTag = numberTag;\nexports.objectTag = objectTag;\nexports.regexpTag = regexpTag;\nexports.setTag = setTag;\nexports.stringTag = stringTag;\nexports.symbolTag = symbolTag;\nexports.uint16ArrayTag = uint16ArrayTag;\nexports.uint32ArrayTag = uint32ArrayTag;\nexports.uint8ArrayTag = uint8ArrayTag;\nexports.uint8ClampedArrayTag = uint8ClampedArrayTag;\n","var _excluded = [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"],\n _excluded2 = [\"offset\"],\n _excluded3 = [\"xAxisId\", \"yAxisId\"],\n _excluded4 = [\"xAxisId\", \"yAxisId\"];\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); }\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; }\n/**\n * @fileOverview Cartesian Grid\n */\nimport * as React from 'react';\nimport { warn } from '../util/LogUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { getCoordinatesOfGrid, getTicksOfAxis } from '../util/ChartUtils';\nimport { getTicks } from './getTicks';\nimport { defaultCartesianAxisProps } from './CartesianAxis';\nimport { useChartHeight, useChartWidth, useOffsetInternal } from '../context/chartLayoutContext';\nimport { selectAxisPropsNeededForCartesianGridTicksGenerator } from '../state/selectors/axisSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\n\n/**\n * The <CartesianGrid horizontal\n */\n\nvar Background = props => {\n var {\n fill\n } = props;\n if (!fill || fill === 'none') {\n return null;\n }\n var {\n fillOpacity,\n x,\n y,\n width,\n height,\n ry\n } = props;\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n ry: ry,\n width: width,\n height: height,\n stroke: \"none\",\n fill: fill,\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n};\nfunction LineItem(_ref) {\n var {\n option,\n lineItemProps\n } = _ref;\n var lineItem;\n if (/*#__PURE__*/React.isValidElement(option)) {\n // @ts-expect-error typescript does not see the props type when cloning an element\n lineItem = /*#__PURE__*/React.cloneElement(option, lineItemProps);\n } else if (typeof option === 'function') {\n lineItem = option(lineItemProps);\n } else {\n var _svgPropertiesNoEvent;\n var {\n x1,\n y1,\n x2,\n y2,\n key\n } = lineItemProps,\n others = _objectWithoutProperties(lineItemProps, _excluded);\n var _ref2 = (_svgPropertiesNoEvent = svgPropertiesNoEvents(others)) !== null && _svgPropertiesNoEvent !== void 0 ? _svgPropertiesNoEvent : {},\n {\n offset: __\n } = _ref2,\n restOfFilteredProps = _objectWithoutProperties(_ref2, _excluded2);\n lineItem = /*#__PURE__*/React.createElement(\"line\", _extends({}, restOfFilteredProps, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n fill: \"none\",\n key: key\n }));\n }\n return lineItem;\n}\nfunction HorizontalGridLines(props) {\n var {\n x,\n width,\n horizontal = true,\n horizontalPoints\n } = props;\n if (!horizontal || !horizontalPoints || !horizontalPoints.length) {\n return null;\n }\n var {\n xAxisId,\n yAxisId\n } = props,\n otherLineItemProps = _objectWithoutProperties(props, _excluded3);\n var items = horizontalPoints.map((entry, i) => {\n var lineItemProps = _objectSpread(_objectSpread({}, otherLineItemProps), {}, {\n x1: x,\n y1: entry,\n x2: x + width,\n y2: entry,\n key: \"line-\".concat(i),\n index: i\n });\n return /*#__PURE__*/React.createElement(LineItem, {\n key: \"line-\".concat(i),\n option: horizontal,\n lineItemProps: lineItemProps\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-horizontal\"\n }, items);\n}\nfunction VerticalGridLines(props) {\n var {\n y,\n height,\n vertical = true,\n verticalPoints\n } = props;\n if (!vertical || !verticalPoints || !verticalPoints.length) {\n return null;\n }\n var {\n xAxisId,\n yAxisId\n } = props,\n otherLineItemProps = _objectWithoutProperties(props, _excluded4);\n var items = verticalPoints.map((entry, i) => {\n var lineItemProps = _objectSpread(_objectSpread({}, otherLineItemProps), {}, {\n x1: entry,\n y1: y,\n x2: entry,\n y2: y + height,\n key: \"line-\".concat(i),\n index: i\n });\n return /*#__PURE__*/React.createElement(LineItem, {\n option: vertical,\n lineItemProps: lineItemProps,\n key: \"line-\".concat(i)\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-vertical\"\n }, items);\n}\nfunction HorizontalStripes(props) {\n var {\n horizontalFill,\n fillOpacity,\n x,\n y,\n width,\n height,\n horizontalPoints,\n horizontal = true\n } = props;\n if (!horizontal || !horizontalFill || !horizontalFill.length || horizontalPoints == null) {\n return null;\n }\n var roundedSortedHorizontalPoints = horizontalPoints.map(e => Math.round(e + y - y)).sort((a, b) => a - b);\n // Why is this condition `!==` instead of `<=` ?\n if (y !== roundedSortedHorizontalPoints[0]) {\n roundedSortedHorizontalPoints.unshift(0);\n }\n var items = roundedSortedHorizontalPoints.map((entry, i) => {\n // Why do we strip only the last stripe if it is invisible, and not all invisible stripes?\n var lastStripe = !roundedSortedHorizontalPoints[i + 1];\n var lineHeight = lastStripe ? y + height - entry : roundedSortedHorizontalPoints[i + 1] - entry;\n if (lineHeight <= 0) {\n return null;\n }\n var colorIndex = i % horizontalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i),\n y: entry,\n x: x,\n height: lineHeight,\n width: width,\n stroke: \"none\",\n fill: horizontalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-horizontal\"\n }, items);\n}\nfunction VerticalStripes(props) {\n var {\n vertical = true,\n verticalFill,\n fillOpacity,\n x,\n y,\n width,\n height,\n verticalPoints\n } = props;\n if (!vertical || !verticalFill || !verticalFill.length) {\n return null;\n }\n var roundedSortedVerticalPoints = verticalPoints.map(e => Math.round(e + x - x)).sort((a, b) => a - b);\n if (x !== roundedSortedVerticalPoints[0]) {\n roundedSortedVerticalPoints.unshift(0);\n }\n var items = roundedSortedVerticalPoints.map((entry, i) => {\n var lastStripe = !roundedSortedVerticalPoints[i + 1];\n var lineWidth = lastStripe ? x + width - entry : roundedSortedVerticalPoints[i + 1] - entry;\n if (lineWidth <= 0) {\n return null;\n }\n var colorIndex = i % verticalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i),\n x: entry,\n y: y,\n width: lineWidth,\n height: height,\n stroke: \"none\",\n fill: verticalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-vertical\"\n }, items);\n}\nvar defaultVerticalCoordinatesGenerator = (_ref3, syncWithTicks) => {\n var {\n xAxis,\n width,\n height,\n offset\n } = _ref3;\n return getCoordinatesOfGrid(getTicks(_objectSpread(_objectSpread(_objectSpread({}, defaultCartesianAxisProps), xAxis), {}, {\n ticks: getTicksOfAxis(xAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width,\n height\n }\n })), offset.left, offset.left + offset.width, syncWithTicks);\n};\nvar defaultHorizontalCoordinatesGenerator = (_ref4, syncWithTicks) => {\n var {\n yAxis,\n width,\n height,\n offset\n } = _ref4;\n return getCoordinatesOfGrid(getTicks(_objectSpread(_objectSpread(_objectSpread({}, defaultCartesianAxisProps), yAxis), {}, {\n ticks: getTicksOfAxis(yAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width,\n height\n }\n })), offset.top, offset.top + offset.height, syncWithTicks);\n};\nvar defaultCartesianGridProps = {\n horizontal: true,\n vertical: true,\n // The ordinates of horizontal grid lines\n horizontalPoints: [],\n // The abscissas of vertical grid lines\n verticalPoints: [],\n stroke: '#ccc',\n fill: 'none',\n // The fill of colors of grid lines\n verticalFill: [],\n horizontalFill: [],\n xAxisId: 0,\n yAxisId: 0,\n syncWithTicks: false,\n zIndex: DefaultZIndexes.grid\n};\nexport function CartesianGrid(props) {\n var chartWidth = useChartWidth();\n var chartHeight = useChartHeight();\n var offset = useOffsetInternal();\n var propsIncludingDefaults = _objectSpread(_objectSpread({}, resolveDefaultProps(props, defaultCartesianGridProps)), {}, {\n x: isNumber(props.x) ? props.x : offset.left,\n y: isNumber(props.y) ? props.y : offset.top,\n width: isNumber(props.width) ? props.width : offset.width,\n height: isNumber(props.height) ? props.height : offset.height\n });\n var {\n xAxisId,\n yAxisId,\n x,\n y,\n width,\n height,\n syncWithTicks,\n horizontalValues,\n verticalValues\n } = propsIncludingDefaults;\n var isPanorama = useIsPanorama();\n var xAxis = useAppSelector(state => selectAxisPropsNeededForCartesianGridTicksGenerator(state, 'xAxis', xAxisId, isPanorama));\n var yAxis = useAppSelector(state => selectAxisPropsNeededForCartesianGridTicksGenerator(state, 'yAxis', yAxisId, isPanorama));\n if (!isPositiveNumber(width) || !isPositiveNumber(height) || !isNumber(x) || !isNumber(y)) {\n return null;\n }\n\n /*\n * verticalCoordinatesGenerator and horizontalCoordinatesGenerator are defined\n * outside the propsIncludingDefaults because they were never part of the original props\n * and they were never passed as a prop down to horizontal/vertical custom elements.\n * If we add these two to propsIncludingDefaults then we are changing public API.\n * Not a bad thing per se but also not necessary.\n */\n var verticalCoordinatesGenerator = propsIncludingDefaults.verticalCoordinatesGenerator || defaultVerticalCoordinatesGenerator;\n var horizontalCoordinatesGenerator = propsIncludingDefaults.horizontalCoordinatesGenerator || defaultHorizontalCoordinatesGenerator;\n var {\n horizontalPoints,\n verticalPoints\n } = propsIncludingDefaults;\n\n // No horizontal points are specified\n if ((!horizontalPoints || !horizontalPoints.length) && typeof horizontalCoordinatesGenerator === 'function') {\n var isHorizontalValues = horizontalValues && horizontalValues.length;\n var generatorResult = horizontalCoordinatesGenerator({\n yAxis: yAxis ? _objectSpread(_objectSpread({}, yAxis), {}, {\n ticks: isHorizontalValues ? horizontalValues : yAxis.ticks\n }) : undefined,\n width: chartWidth !== null && chartWidth !== void 0 ? chartWidth : width,\n height: chartHeight !== null && chartHeight !== void 0 ? chartHeight : height,\n offset\n }, isHorizontalValues ? true : syncWithTicks);\n warn(Array.isArray(generatorResult), \"horizontalCoordinatesGenerator should return Array but instead it returned [\".concat(typeof generatorResult, \"]\"));\n if (Array.isArray(generatorResult)) {\n horizontalPoints = generatorResult;\n }\n }\n\n // No vertical points are specified\n if ((!verticalPoints || !verticalPoints.length) && typeof verticalCoordinatesGenerator === 'function') {\n var isVerticalValues = verticalValues && verticalValues.length;\n var _generatorResult = verticalCoordinatesGenerator({\n xAxis: xAxis ? _objectSpread(_objectSpread({}, xAxis), {}, {\n ticks: isVerticalValues ? verticalValues : xAxis.ticks\n }) : undefined,\n width: chartWidth !== null && chartWidth !== void 0 ? chartWidth : width,\n height: chartHeight !== null && chartHeight !== void 0 ? chartHeight : height,\n offset\n }, isVerticalValues ? true : syncWithTicks);\n warn(Array.isArray(_generatorResult), \"verticalCoordinatesGenerator should return Array but instead it returned [\".concat(typeof _generatorResult, \"]\"));\n if (Array.isArray(_generatorResult)) {\n verticalPoints = _generatorResult;\n }\n }\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: propsIncludingDefaults.zIndex\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid\"\n }, /*#__PURE__*/React.createElement(Background, {\n fill: propsIncludingDefaults.fill,\n fillOpacity: propsIncludingDefaults.fillOpacity,\n x: propsIncludingDefaults.x,\n y: propsIncludingDefaults.y,\n width: propsIncludingDefaults.width,\n height: propsIncludingDefaults.height,\n ry: propsIncludingDefaults.ry\n }), /*#__PURE__*/React.createElement(HorizontalStripes, _extends({}, propsIncludingDefaults, {\n horizontalPoints: horizontalPoints\n })), /*#__PURE__*/React.createElement(VerticalStripes, _extends({}, propsIncludingDefaults, {\n verticalPoints: verticalPoints\n })), /*#__PURE__*/React.createElement(HorizontalGridLines, _extends({}, propsIncludingDefaults, {\n offset: offset,\n horizontalPoints: horizontalPoints,\n xAxis: xAxis,\n yAxis: yAxis\n })), /*#__PURE__*/React.createElement(VerticalGridLines, _extends({}, propsIncludingDefaults, {\n offset: offset,\n verticalPoints: verticalPoints,\n xAxis: xAxis,\n yAxis: yAxis\n }))));\n}\nCartesianGrid.displayName = 'CartesianGrid';","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","module.exports = require('../dist/compat/object/get.js').get;\n","import { createSlice } from '@reduxjs/toolkit';\n\n/**\n * This is the data that's coming through main chart `data` prop\n * Recharts is very flexible in what it accepts so the type is very flexible too.\n * This will typically be an object, and various components will provide various `dataKey`\n * that dictates how to pull data from that object.\n *\n * TL;DR: before dataKey\n */\n\n/**\n * So this is the same unknown type as ChartData but this is after the dataKey has been applied.\n * We still don't know what the type is - that depends on what exactly it was before the dataKey application,\n * and the dataKey can return whatever anyway - but let's keep it separate as a form of documentation.\n *\n * TL;DR: ChartData after dataKey.\n */\n\nexport var initialChartDataState = {\n chartData: undefined,\n computedData: undefined,\n dataStartIndex: 0,\n dataEndIndex: 0\n};\nvar chartDataSlice = createSlice({\n name: 'chartData',\n initialState: initialChartDataState,\n reducers: {\n setChartData(state, action) {\n state.chartData = action.payload;\n if (action.payload == null) {\n state.dataStartIndex = 0;\n state.dataEndIndex = 0;\n return;\n }\n if (action.payload.length > 0 && state.dataEndIndex !== action.payload.length - 1) {\n state.dataEndIndex = action.payload.length - 1;\n }\n },\n setComputedData(state, action) {\n state.computedData = action.payload;\n },\n setDataStartEndIndexes(state, action) {\n var {\n startIndex,\n endIndex\n } = action.payload;\n if (startIndex != null) {\n state.dataStartIndex = startIndex;\n }\n if (endIndex != null) {\n state.dataEndIndex = endIndex;\n }\n }\n }\n});\nexport var {\n setChartData,\n setDataStartEndIndexes,\n setComputedData\n} = chartDataSlice.actions;\nexport var chartDataReducer = chartDataSlice.reducer;","module.exports = require('../dist/compat/function/throttle.js').throttle;\n","import { createSelector } from 'reselect';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { selectMargin } from './containerSelectors';\nimport { isNumber } from '../../util/DataUtils';\nexport var selectBrushSettings = state => state.brush;\nexport var selectBrushDimensions = createSelector([selectBrushSettings, selectChartOffsetInternal, selectMargin], (brushSettings, offset, margin) => ({\n height: brushSettings.height,\n x: isNumber(brushSettings.x) ? brushSettings.x : offset.left,\n y: isNumber(brushSettings.y) ? brushSettings.y : offset.top + offset.height + offset.brushBottom - ((margin === null || margin === void 0 ? void 0 : margin.bottom) || 0),\n width: isNumber(brushSettings.width) ? brushSettings.width : offset.width\n}));","import { createSelector } from 'reselect';\nexport var selectAllXAxes = createSelector(state => state.cartesianAxis.xAxis, xAxisMap => {\n return Object.values(xAxisMap);\n});\nexport var selectAllYAxes = createSelector(state => state.cartesianAxis.yAxis, yAxisMap => {\n return Object.values(yAxisMap);\n});","/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin <M8ch88l@gmail.com>\r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n var MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n Decimal = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\n P.exponent = function () {\r\n return getBase10Exponent(this);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return this.s === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = P.valueOf = P.val = P.toJSON = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\n function add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\n function exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\n function ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(Decimal);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Internal constant.\r\n ONE = new Decimal(1);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self\r\n ? self : Function('return this')();\r\n }\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isMatchWith = require('./isMatchWith.js');\n\nfunction isMatch(target, source) {\n return isMatchWith.isMatchWith(target, source, () => undefined);\n}\n\nexports.isMatch = isMatch;\n","// Should be no imports here!\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: unique symbol = Symbol.for(\"immer-nothing\")\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = Symbol.for(\"immer-draftable\")\n\nexport const DRAFT_STATE: unique symbol = Symbol.for(\"immer-state\")\n","export const errors =\n\tprocess.env.NODE_ENV !== \"production\"\n\t\t? [\n\t\t\t\t// All error codes, starting by 0:\n\t\t\t\tfunction(plugin: string) {\n\t\t\t\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t\t\t\t},\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t\t\t\t},\n\t\t\t\t\"This object has been frozen and should not be mutated\",\n\t\t\t\tfunction(data: any) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\t\t\t\tdata\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t\t\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t\t\t\t\"Immer forbids circular references\",\n\t\t\t\t\"The first or second argument to `produce` must be a function\",\n\t\t\t\t\"The third argument to `produce` must be a function or undefined\",\n\t\t\t\t\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t\t\t\t\"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'current' expects a draft, got: ${thing}`\n\t\t\t\t},\n\t\t\t\t\"Object.defineProperty() cannot be used on an Immer draft\",\n\t\t\t\t\"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t\t\t\t\"Immer only supports deleting array indices\",\n\t\t\t\t\"Immer only supports setting array indices and the 'length' property\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'original' expects a draft, got: ${thing}`\n\t\t\t\t}\n\t\t\t\t// Note: if more errors are added, the errorOffset in Patches.ts should be increased\n\t\t\t\t// See Patches.ts for additional errors\n\t\t ]\n\t\t: []\n\nexport function die(error: number, ...args: any[]): never {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst e = errors[error]\n\t\tconst msg = typeof e === \"function\" ? e.apply(null, args as any) : e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\tArchType,\n\tdie,\n\tStrictMode\n} from \"../internal\"\n\nexport const getPrototypeOf = Object.getPrototypeOf\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\nconst cachedCtorStrings = new WeakMap()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null || proto === Object.prototype) return true\n\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\tif (Ctor === Object) return true\n\n\tif (typeof Ctor !== \"function\") return false\n\n\tlet ctorString = cachedCtorStrings.get(Ctor)\n\tif (ctorString === undefined) {\n\t\tctorString = Function.toString.call(Ctor)\n\t\tcachedCtorStrings.set(Ctor, ctorString)\n\t}\n\n\treturn ctorString === objectCtorString\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original<T>(value: T): T | undefined\nexport function original(value: Drafted<any>): any {\n\tif (!isDraft(value)) die(15, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/**\n * Each iterates a map, set or array.\n * Or, if any other kind of object, all of its own properties.\n *\n * @param obj The object to iterate over\n * @param iter The iterator function\n * @param strict When true (default), includes symbols and non-enumerable properties.\n * When false, uses looseiteration over only enumerable string properties.\n */\nexport function each<T extends Objectish>(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tstrict?: boolean\n): void\nexport function each(obj: any, iter: any, strict: boolean = true) {\n\tif (getArchtype(obj) === ArchType.Object) {\n\t\t// If strict, we do a full iteration including symbols and non-enumerable properties\n\t\t// Otherwise, we only iterate enumerable string properties for performance\n\t\tconst keys = strict ? Reflect.ownKeys(obj) : Object.keys(obj)\n\t\tkeys.forEach(key => {\n\t\t\titer(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): ArchType {\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_\n\t\t: Array.isArray(thing)\n\t\t? ArchType.Array\n\t\t: isMap(thing)\n\t\t? ArchType.Map\n\t\t: isSet(thing)\n\t\t? ArchType.Set\n\t\t: ArchType.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === ArchType.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === ArchType.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === ArchType.Map) thing.set(propOrOldValue, value)\n\telse if (t === ArchType.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any, strict: StrictMode) {\n\tif (isMap(base)) {\n\t\treturn new Map(base)\n\t}\n\tif (isSet(base)) {\n\t\treturn new Set(base)\n\t}\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\n\tconst isPlain = isPlainObject(base)\n\n\tif (strict === true || (strict === \"class_only\" && !isPlain)) {\n\t\t// Perform a strict copy\n\t\tconst descriptors = Object.getOwnPropertyDescriptors(base)\n\t\tdelete descriptors[DRAFT_STATE as any]\n\t\tlet keys = Reflect.ownKeys(descriptors)\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key: any = keys[i]\n\t\t\tconst desc = descriptors[key]\n\t\t\tif (desc.writable === false) {\n\t\t\t\tdesc.writable = true\n\t\t\t\tdesc.configurable = true\n\t\t\t}\n\t\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t\t// with libraries that trap values, like mobx or vue\n\t\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\t\tif (desc.get || desc.set)\n\t\t\t\tdescriptors[key] = {\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\t\tvalue: base[key]\n\t\t\t\t}\n\t\t}\n\t\treturn Object.create(getPrototypeOf(base), descriptors)\n\t} else {\n\t\t// perform a sloppy copy\n\t\tconst proto = getPrototypeOf(base)\n\t\tif (proto !== null && isPlain) {\n\t\t\treturn {...base} // assumption: better inner class optimization than the assign below\n\t\t}\n\t\tconst obj = Object.create(proto)\n\t\treturn Object.assign(obj, base)\n\t}\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze<T>(obj: T, deep?: boolean): T\nexport function freeze<T>(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tObject.defineProperties(obj, {\n\t\t\tset: dontMutateMethodOverride,\n\t\t\tadd: dontMutateMethodOverride,\n\t\t\tclear: dontMutateMethodOverride,\n\t\t\tdelete: dontMutateMethodOverride\n\t\t})\n\t}\n\tObject.freeze(obj)\n\tif (deep)\n\t\t// See #590, don't recurse into non-enumerable / Symbol properties when freezing\n\t\t// So use Object.values (only string-like, enumerables) instead of each()\n\t\tObject.values(obj).forEach(value => freeze(value, true))\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nconst dontMutateMethodOverride = {\n\tvalue: dontMutateFrozenCollections\n}\n\nexport function isFrozen(obj: any): boolean {\n\t// Fast path: primitives and null/undefined are always \"frozen\"\n\tif (obj === null || typeof obj !== \"object\") return true\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tDrafted,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tArchType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_<T>(draft: T, patches: readonly Patch[]): T\n\t}\n\tMapSet?: {\n\t\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T\n\t\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin<K extends keyof Plugins>(\n\tpluginKey: K\n): Exclude<Plugins[K], undefined> {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(0, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin<K extends keyof Plugins>(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ArchType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map<any, boolean> | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted<AnyMap, MapState>\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ArchType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map<any, Drafted> // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted<AnySet, SetState>\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tArchType,\n\tgetPlugin\n} from \"../internal\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (state.type_ === ArchType.Object || state.type_ === ArchType.Array)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tArchType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tisMap\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst useStrictIteration = rootScope.immer_.shouldUseStrictIteration()\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\tuseStrictIteration\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result = state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ArchType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(\n\t\t\tresultEach,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(\n\t\t\t\t\trootScope,\n\t\t\t\t\tstate,\n\t\t\t\t\tresult,\n\t\t\t\t\tkey,\n\t\t\t\t\tchildValue,\n\t\t\t\t\tpath,\n\t\t\t\t\tisSet\n\t\t\t\t),\n\t\t\tuseStrictIteration\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (childValue == null) {\n\t\treturn\n\t}\n\n\tif (typeof childValue !== \"object\" && !targetIsSet) {\n\t\treturn\n\t}\n\tconst childIsFrozen = isFrozen(childValue)\n\tif (childIsFrozen && !targetIsSet) {\n\t\treturn\n\t}\n\n\tif (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n\t\tdie(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ArchType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude<ImmerState, SetState>).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !childIsFrozen) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tif (\n\t\t\tparentState &&\n\t\t\tparentState.base_ &&\n\t\t\tparentState.base_[prop] === childValue &&\n\t\t\tchildIsFrozen\n\t\t) {\n\t\t\t// Object is unchanged from base - no need to process further\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// Immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\t// Per #590, we never freeze symbolic properties. Just to make sure don't accidentally interfere\n\t\t// with other frameworks.\n\t\tif (\n\t\t\t(!parentState || !parentState.scope_.parent_) &&\n\t\t\ttypeof prop !== \"symbol\" &&\n\t\t\t(isMap(targetObject)\n\t\t\t\t? targetObject.has(prop)\n\t\t\t\t: Object.prototype.propertyIsEnumerable.call(targetObject, prop))\n\t\t)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tgetPrototypeOf,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tArchType,\n\tImmerScope\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ArchType.Object\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted<AnyObject, ProxyObjectState>\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ArchType.Array\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted<AnyArray, ProxyArrayState>\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy<T extends Objectish>(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted<T, ProxyState> {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ArchType.Array : (ArchType.Object as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler<object | Array<any>> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler<ProxyState> = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(value, state))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\tif (state.copy_) {\n\t\t\tdelete state.copy_[prop]\n\t\t}\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ArchType.Array || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop as any)))\n\t\tdie(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (\n\t\tprocess.env.NODE_ENV !== \"production\" &&\n\t\tprop !== \"length\" &&\n\t\tisNaN(parseInt(prop as any))\n\t)\n\t\tdie(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {\n\tbase_: any\n\tcopy_: any\n\tscope_: ImmerScope\n}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(\n\t\t\tstate.base_,\n\t\t\tstate.scope_.immer_.useStrictShallowCopy_\n\t\t)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport type StrictMode = boolean | \"class_only\"\n\nexport class Immer implements ProducersFns {\n\tautoFreeze_: boolean = true\n\tuseStrictShallowCopy_: StrictMode = false\n\tuseStrictIteration_: boolean = true\n\n\tconstructor(config?: {\n\t\tautoFreeze?: boolean\n\t\tuseStrictShallowCopy?: StrictMode\n\t\tuseStrictIteration?: boolean\n\t}) {\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t\tif (typeof config?.useStrictShallowCopy === \"boolean\")\n\t\t\tthis.setUseStrictShallowCopy(config!.useStrictShallowCopy)\n\t\tif (typeof config?.useStrictIteration === \"boolean\")\n\t\t\tthis.setUseStrictIteration(config!.useStrictIteration)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(1, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft<T extends Objectish>(base: T): Draft<T> {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft<D extends Draft<any>>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft<infer T> ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (!state || !state.isManual_) die(9)\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to enable strict shallow copy.\n\t *\n\t * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n\t */\n\tsetUseStrictShallowCopy(value: StrictMode) {\n\t\tthis.useStrictShallowCopy_ = value\n\t}\n\n\t/**\n\t * Pass false to use faster iteration that skips non-enumerable properties\n\t * but still handles symbols for compatibility.\n\t *\n\t * By default, strict iteration is enabled (includes all own properties).\n\t */\n\tsetUseStrictIteration(value: boolean) {\n\t\tthis.useStrictIteration_ = value\n\t}\n\n\tshouldUseStrictIteration(): boolean {\n\t\treturn this.useStrictIteration_\n\t}\n\n\tapplyPatches<T extends Objectish>(base: T, patches: readonly Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy<T extends Objectish>(\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: createProxyProxy(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tisFrozen\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current<T>(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(10, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value) || isFrozen(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tlet strict = true // Default to strict for compatibility\n\tif (state) {\n\t\tif (!state.modified_) return state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_)\n\t\tstrict = state.scope_.immer_.shouldUseStrictIteration()\n\t} else {\n\t\tcopy = shallowCopy(value, true)\n\t}\n\t// recurse\n\teach(\n\t\tcopy,\n\t\t(key, childValue) => {\n\t\t\tset(copy, key, currentImpl(childValue))\n\t\t},\n\t\tstrict\n\t)\n\tif (state) {\n\t\tstate.finalized_ = false\n\t}\n\treturn copy\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tWritableDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\tProducer,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze,\n\tObjectish,\n\tStrictMode\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = /* @__PURE__ */ immer.produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\nexport const setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(\n\timmer\n)\n\n/**\n * Pass false to use loose iteration that only processes enumerable string properties.\n * This skips symbols and non-enumerable properties for maximum performance.\n *\n * By default, strict iteration is enabled (includes all own properties).\n */\nexport const setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(\n\timmer\n)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = /* @__PURE__ */ immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft<T>(value: T): Draft<T> {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable<T>(value: T): Immutable<T> {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction toArray(value) {\n return Array.isArray(value) ? value : Array.from(value);\n}\n\nexports.toArray = toArray;\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 { createSlice, prepareAutoBatched } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nexport var defaultAxisId = 0;\n\n/**\n * Properties shared in X, Y, and Z axes\n */\n\n/**\n * These are the external props, visible for users as they set them using our public API.\n * There is all sorts of internal computed things based on these, but they will come through selectors.\n *\n * Properties shared between X and Y axes\n */\n\n/**\n * Z axis is special because it's never displayed. It controls the size of Scatter dots,\n * but it never displays ticks anywhere.\n */\n\nvar initialState = {\n xAxis: {},\n yAxis: {},\n zAxis: {}\n};\n\n/**\n * This is the slice where each individual Axis element pushes its own configuration.\n * Prefer to use this one instead of axisSlice.\n */\nvar cartesianAxisSlice = createSlice({\n name: 'cartesianAxis',\n initialState,\n reducers: {\n addXAxis: {\n reducer(state, action) {\n state.xAxis[action.payload.id] = castDraft(action.payload);\n },\n prepare: prepareAutoBatched()\n },\n removeXAxis: {\n reducer(state, action) {\n delete state.xAxis[action.payload.id];\n },\n prepare: prepareAutoBatched()\n },\n addYAxis: {\n reducer(state, action) {\n state.yAxis[action.payload.id] = castDraft(action.payload);\n },\n prepare: prepareAutoBatched()\n },\n removeYAxis: {\n reducer(state, action) {\n delete state.yAxis[action.payload.id];\n },\n prepare: prepareAutoBatched()\n },\n addZAxis: {\n reducer(state, action) {\n state.zAxis[action.payload.id] = castDraft(action.payload);\n },\n prepare: prepareAutoBatched()\n },\n removeZAxis: {\n reducer(state, action) {\n delete state.zAxis[action.payload.id];\n },\n prepare: prepareAutoBatched()\n },\n updateYAxisWidth(state, action) {\n var {\n id,\n width\n } = action.payload;\n var axis = state.yAxis[id];\n if (axis) {\n var history = axis.widthHistory || [];\n // An oscillation is detected when the new width is the same as the width before the last one.\n // This is a simple A -> B -> A pattern. If the next width is B, and the difference is less than 1 pixel, we ignore it.\n if (history.length === 3 && history[0] === history[2] && width === history[1] && width !== axis.width && Math.abs(width - history[0]) <= 1) {\n return;\n }\n var newHistory = [...history, width].slice(-3);\n state.yAxis[id] = _objectSpread(_objectSpread({}, state.yAxis[id]), {}, {\n width,\n widthHistory: newHistory\n });\n }\n }\n }\n});\nexport var {\n addXAxis,\n removeXAxis,\n addYAxis,\n removeYAxis,\n addZAxis,\n removeZAxis,\n updateYAxisWidth\n} = cartesianAxisSlice.actions;\nexport var cartesianAxisReducer = cartesianAxisSlice.reducer;","/**\n * @license React\n * use-sync-external-store-with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useSyncExternalStore = React.useSyncExternalStore,\n useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue;\nexports.useSyncExternalStoreWithSelector = function (\n subscribe,\n getSnapshot,\n getServerSnapshot,\n selector,\n isEqual\n) {\n var instRef = useRef(null);\n if (null === instRef.current) {\n var inst = { hasValue: !1, value: null };\n instRef.current = inst;\n } else inst = instRef.current;\n instRef = useMemo(\n function () {\n function memoizedSelector(nextSnapshot) {\n if (!hasMemo) {\n hasMemo = !0;\n memoizedSnapshot = nextSnapshot;\n nextSnapshot = selector(nextSnapshot);\n if (void 0 !== isEqual && inst.hasValue) {\n var currentSelection = inst.value;\n if (isEqual(currentSelection, nextSnapshot))\n return (memoizedSelection = currentSelection);\n }\n return (memoizedSelection = nextSnapshot);\n }\n currentSelection = memoizedSelection;\n if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;\n var nextSelection = selector(nextSnapshot);\n if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n return (memoizedSnapshot = nextSnapshot), currentSelection;\n memoizedSnapshot = nextSnapshot;\n return (memoizedSelection = nextSelection);\n }\n var hasMemo = !1,\n memoizedSnapshot,\n memoizedSelection,\n maybeGetServerSnapshot =\n void 0 === getServerSnapshot ? null : getServerSnapshot;\n return [\n function () {\n return memoizedSelector(getSnapshot());\n },\n null === maybeGetServerSnapshot\n ? void 0\n : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n }\n ];\n },\n [getSnapshot, getServerSnapshot, selector, isEqual]\n );\n var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n useEffect(\n function () {\n inst.hasValue = !0;\n inst.value = value;\n },\n [value]\n );\n useDebugValue(value);\n return value;\n};\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst cloneDeepWith = require('./cloneDeepWith.js');\n\nfunction cloneDeep(obj) {\n return cloneDeepWith.cloneDeepWith(obj);\n}\n\nexports.cloneDeep = cloneDeep;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isLength(value) {\n return Number.isSafeInteger(value) && value >= 0;\n}\n\nexports.isLength = isLength;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point === 0) {\n this._point = 1;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(area);\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","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); }\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); }\n/**\n * @fileOverview Curve\n */\nimport * as React from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveBumpX, curveBumpY, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'victory-vendor/d3-shape';\nimport { clsx } from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { isNumber, upperFirst } from '../util/DataUtils';\nimport { isWellBehavedNumber } from '../util/isWellBehavedNumber';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nvar CURVE_FACTORIES = {\n curveBasisClosed,\n curveBasisOpen,\n curveBasis,\n curveBumpX,\n curveBumpY,\n curveLinearClosed,\n curveLinear,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore\n};\nvar defined = p => isWellBehavedNumber(p.x) && isWellBehavedNumber(p.y);\nvar areaDefined = d => d.base != null && defined(d.base) && defined(d);\nvar getX = p => p.x;\nvar getY = p => p.y;\nvar getCurveFactory = (type, layout) => {\n if (typeof type === 'function') {\n return type;\n }\n var name = \"curve\".concat(upperFirst(type));\n if ((name === 'curveMonotone' || name === 'curveBump') && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n return CURVE_FACTORIES[name] || curveLinear;\n};\n/**\n * Calculate the path of curve. Returns null if points is an empty array.\n * @return path or null\n */\nexport var getPath = _ref => {\n var {\n type = 'linear',\n points = [],\n baseLine,\n layout,\n connectNulls = false\n } = _ref;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(defined) : points;\n var lineFunction;\n\n // When dealing with an area chart (where `baseLine` is an array),\n // we need to pair points with their corresponding `baseLine` points first.\n // This is to ensure that we filter points and their baseline counterparts together,\n // preventing errors from mismatched array lengths and ensuring `defined` checks both.\n if (Array.isArray(baseLine)) {\n var areaPoints = points.map((entry, index) => _objectSpread(_objectSpread({}, entry), {}, {\n base: baseLine[index]\n }));\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(d => d.base.x);\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(d => d.base.y);\n }\n /*\n * What happens here is that the `.defined()` call will make it so that this function can accept\n * nullable points, and internally it will filter them out and skip when generating the path.\n * So on the input it accepts NullableCoordinate, but it never calls getX/getY on null points because of the defined() filter.\n *\n * The d3 type definition has only one generic so it doesn't allow to describe this properly.\n * However. d3 types are mutable, but we can pretend that they are not and we can pretend\n * that calling defined() returns a new function with a different generic type.\n */\n var _nullableLineFunction = lineFunction.defined(areaDefined).curve(curveFactory);\n var finalPoints = connectNulls ? areaPoints.filter(areaDefined) : areaPoints;\n return _nullableLineFunction(finalPoints);\n }\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n var nullableLineFunction = lineFunction.defined(defined).curve(curveFactory);\n return nullableLineFunction(formatPoints);\n};\nexport var Curve = props => {\n var {\n className,\n points,\n path,\n pathRef\n } = props;\n if ((!points || !points.length) && !path) {\n return null;\n }\n var realPath = points && points.length ? getPath(props) : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, svgPropertiesNoEvents(props), adaptEventHandlers(props), {\n className: clsx('recharts-curve', className),\n d: realPath === null ? undefined : realPath,\n ref: pathRef\n }));\n};","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","/**\n * A collection of all default zIndex values used throughout the library.\n */\nexport var DefaultZIndexes = {\n /**\n * CartesianGrid and PolarGrid\n */\n grid: -100,\n /**\n * Background of Bar and RadialBar.\n * This is not visible by default but can be enabled by setting background={true} on Bar or RadialBar.\n */\n barBackground: -50,\n /*\n * other chart elements or custom elements without specific zIndex\n * render in here, at zIndex 0\n */\n\n /**\n * Area, Pie, Radar, and ReferenceArea\n */\n area: 100,\n /**\n * Cursor is embedded inside Tooltip and controlled by it.\n * The Tooltip itself has a separate portal and is not included in the zIndex system;\n * Cursor is the decoration inside the chart area. CursorRectangle is a rectangle box.\n * It renders below bar so that in a stacked bar chart the cursor rectangle does not hide the other bars.\n */\n cursorRectangle: 200,\n /**\n * Bar and RadialBar\n */\n bar: 300,\n /**\n * Line and ReferenceLine, and ErrorBor\n */\n line: 400,\n /**\n * XAxis and YAxis and PolarAngleAxis and PolarRadiusAxis ticks and lines and children\n */\n axis: 500,\n /**\n * Scatter and ReferenceDot,\n * and Dots of Line and Area and Radar if they have dot=true\n */\n scatter: 600,\n /**\n * Hovering over a Bar or RadialBar renders a highlight rectangle\n */\n activeBar: 1000,\n /**\n * Cursor is embedded inside Tooltip and controlled by it.\n * The Tooltip itself has a separate portal and is not included in the zIndex system;\n * Cursor is the decoration inside the chart area, usually a cross or a box.\n * CursorLine is a line cursor rendered in Line, Area, Scatter, Radar charts.\n * It renders above the Line and Scatter so that it is always visible.\n * It renders below active dot so that the dot is always visible and shows the current point.\n * We're also assuming that the active dot is small enough that it does not fully cover the cursor line.\n *\n * This also applies to the radial cursor in RadialBarChart.\n */\n cursorLine: 1100,\n /**\n * Hovering over a Point in Line, Area, Scatter, Radar renders a highlight dot\n */\n activeDot: 1200,\n /**\n * LabelList and Label, including Axis labels\n */\n label: 2000\n};","import { useLayoutEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { noop } from '../util/DataUtils';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectZIndexPortalId } from './zIndexSelectors';\nimport { registerZIndexPortal, unregisterZIndexPortal } from '../state/zIndexSlice';\nimport { useIsInChartContext } from '../context/chartLayoutContext';\nimport { useIsPanorama } from '../context/PanoramaContext';\n\n/**\n * @since 3.4\n */\n\n/**\n * A layer that renders its children into a portal corresponding to the given zIndex.\n * We can't use regular CSS z-index because SVG does not support it.\n * So instead, we create separate DOM nodes for each zIndex layer\n * and render the children into the corresponding DOM node using React portals.\n *\n * This component must be used inside a Chart component.\n *\n * @param zIndex numeric zIndex value, higher values are rendered on top of lower values\n * @param children the content to render inside this zIndex layer\n */\nexport function ZIndexLayer(_ref) {\n var {\n zIndex,\n children\n } = _ref;\n /*\n * If we are outside of chart, then we can't rely on the zIndex portal state,\n * so we just render normally.\n */\n var isInChartContext = useIsInChartContext();\n /*\n * If zIndex is undefined then we render normally without portals.\n * Also, if zIndex is 0, we render normally without portals,\n * because 0 is the default layer that does not need a portal.\n */\n var shouldRenderInPortal = isInChartContext && zIndex !== undefined && zIndex !== 0;\n var isPanorama = useIsPanorama();\n var dispatch = useAppDispatch();\n useLayoutEffect(() => {\n if (!shouldRenderInPortal) {\n // Nothing to do. We have to call the hook because of the rules of hooks.\n return noop;\n }\n /*\n * Because zIndexes are dynamic (meaning, we're not working with a predefined set of layers,\n * but we allow users to define any zIndex at any time), we need to register\n * the requested zIndex in the global store. This way, the ZIndexPortals component\n * can render the corresponding portals and only the requested ones.\n */\n dispatch(registerZIndexPortal({\n zIndex\n }));\n return () => {\n dispatch(unregisterZIndexPortal({\n zIndex\n }));\n };\n }, [dispatch, zIndex, shouldRenderInPortal]);\n var portalId = useAppSelector(state => selectZIndexPortalId(state, zIndex, isPanorama));\n if (!shouldRenderInPortal) {\n // If no zIndex is provided or zIndex is 0, render normally without portals\n return children;\n }\n if (!portalId) {\n /*\n * If we don't have a portalId yet, this means that the registration\n * has not been processed yet by the ZIndexPortals component.\n * So here we render null and wait for the next render cycle.\n */\n return null;\n }\n var zIndexPortal = document.getElementById(portalId);\n if (zIndexPortal) {\n return /*#__PURE__*/createPortal(children, zIndexPortal);\n }\n /*\n * If the portal is not found, this means it has not been rendered yet.\n * So here we render null and wait for the next render cycle.\n */\n return null;\n}","import { useEffect } from 'react';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { setChartSize, setMargin } from '../state/layoutSlice';\nimport { selectChartOffsetInternal, selectChartViewBox } from '../state/selectors/selectChartOffsetInternal';\nimport { selectChartHeight, selectChartWidth } from '../state/selectors/containerSelectors';\nimport { useIsPanorama } from './PanoramaContext';\nimport { selectBrushDimensions, selectBrushSettings } from '../state/selectors/brushSelectors';\nimport { useResponsiveContainerContext } from '../component/ResponsiveContainer';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\nexport function cartesianViewBoxToTrapezoid(box) {\n if (!box) {\n return undefined;\n }\n return {\n x: box.x,\n y: box.y,\n upperWidth: 'upperWidth' in box ? box.upperWidth : box.width,\n lowerWidth: 'lowerWidth' in box ? box.lowerWidth : box.width,\n width: box.width,\n height: box.height\n };\n}\nexport var useViewBox = () => {\n var _useAppSelector;\n var panorama = useIsPanorama();\n var rootViewBox = useAppSelector(selectChartViewBox);\n var brushDimensions = useAppSelector(selectBrushDimensions);\n var brushPadding = (_useAppSelector = useAppSelector(selectBrushSettings)) === null || _useAppSelector === void 0 ? void 0 : _useAppSelector.padding;\n if (!panorama || !brushDimensions || !brushPadding) {\n return rootViewBox;\n }\n return {\n width: brushDimensions.width - brushPadding.left - brushPadding.right,\n height: brushDimensions.height - brushPadding.top - brushPadding.bottom,\n x: brushPadding.left,\n y: brushPadding.top\n };\n};\nvar manyComponentsThrowErrorsIfOffsetIsUndefined = {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0,\n brushBottom: 0\n};\n/**\n * For internal use only. If you want this information, `import { useOffset } from 'recharts'` instead.\n *\n * Returns the offset of the chart in pixels.\n *\n * @returns {ChartOffsetInternal} The offset of the chart in pixels, or a default value if not in a chart context.\n */\nexport var useOffsetInternal = () => {\n var _useAppSelector2;\n return (_useAppSelector2 = useAppSelector(selectChartOffsetInternal)) !== null && _useAppSelector2 !== void 0 ? _useAppSelector2 : manyComponentsThrowErrorsIfOffsetIsUndefined;\n};\n\n/**\n * Returns the width of the chart in pixels.\n *\n * If you are using chart with hardcoded `width` prop, then the width returned will be the same\n * as the `width` prop on the main chart element.\n *\n * If you are using a chart with a `ResponsiveContainer`, the width will be the size of the chart\n * as the ResponsiveContainer has decided it would be.\n *\n * If the chart has any axes or legend, the `width` will be the size of the chart\n * including the axes and legend. Meaning: adding axes and legend will not change the width.\n *\n * The dimensions do not scale, meaning as user zoom in and out, the width number will not change\n * as the chart gets visually larger or smaller.\n *\n * Returns `undefined` if used outside a chart context.\n *\n * @returns {number | undefined} The width of the chart in pixels, or `undefined` if not in a chart context.\n */\nexport var useChartWidth = () => {\n return useAppSelector(selectChartWidth);\n};\n\n/**\n * Returns the height of the chart in pixels.\n *\n * If you are using chart with hardcoded `height` props, then the height returned will be the same\n * as the `height` prop on the main chart element.\n *\n * If you are using a chart with a `ResponsiveContainer`, the height will be the size of the chart\n * as the ResponsiveContainer has decided it would be.\n *\n * If the chart has any axes or legend, the `height` will be the size of the chart\n * including the axes and legend. Meaning: adding axes and legend will not change the height.\n *\n * The dimensions do not scale, meaning as user zoom in and out, the height number will not change\n * as the chart gets visually larger or smaller.\n *\n * Returns `undefined` if used outside a chart context.\n *\n * @returns {number | undefined} The height of the chart in pixels, or `undefined` if not in a chart context.\n */\nexport var useChartHeight = () => {\n return useAppSelector(selectChartHeight);\n};\n\n/**\n * Margin is the empty space around the chart. Excludes axes and legend and brushes and the like.\n * This is declared by the user in the chart props.\n * If you are interested in the space occupied by axes, legend, or brushes,\n * use `useOffset` instead.\n *\n * Returns `undefined` if used outside a chart context.\n *\n * @returns {Margin | undefined} The margin of the chart in pixels, or `undefined` if not in a chart context.\n */\nexport var useMargin = () => {\n return useAppSelector(state => state.layout.margin);\n};\nexport var selectChartLayout = state => state.layout.layoutType;\nexport var useChartLayout = () => useAppSelector(selectChartLayout);\n\n/**\n * Returns true if the component is rendered inside a chart context.\n * Some components may be used both inside and outside of charts,\n * and this hook allows them to determine if they are in a chart context or not.\n *\n * Other selectors may return undefined when used outside a chart context,\n * or undefined when inside a chart, but without relevant data.\n * This hook provides a more explicit way to check for chart context.\n *\n * @returns {boolean} True if in chart context, false otherwise.\n */\nexport var useIsInChartContext = () => {\n /*\n * All charts provide a layout type in the chart context.\n * If we have a layout type, we are in a chart context.\n */\n var layout = useChartLayout();\n return layout !== undefined;\n};\nexport var ReportChartSize = props => {\n var dispatch = useAppDispatch();\n\n /*\n * Skip dispatching properties in panorama chart for two reasons:\n * 1. The root chart should be deciding on these properties, and\n * 2. Brush reads these properties from redux store, and so they must remain stable\n * to avoid circular dependency and infinite re-rendering.\n */\n var isPanorama = useIsPanorama();\n var {\n width: widthFromProps,\n height: heightFromProps\n } = props;\n var responsiveContainerCalculations = useResponsiveContainerContext();\n var width = widthFromProps;\n var height = heightFromProps;\n if (responsiveContainerCalculations) {\n /*\n * In case we receive width and height from ResponsiveContainer,\n * we will always prefer those.\n * Only in case ResponsiveContainer does not provide width or height,\n * we will fall back to the explicitly provided width and height.\n *\n * This to me feels backwards - we should allow override by the more specific props on individual charts, right?\n * But this is 3.x behaviour, so let's keep it for backwards compatibility.\n *\n * We can change this in 4.x if we want to.\n */\n width = responsiveContainerCalculations.width > 0 ? responsiveContainerCalculations.width : widthFromProps;\n height = responsiveContainerCalculations.height > 0 ? responsiveContainerCalculations.height : heightFromProps;\n }\n useEffect(() => {\n if (!isPanorama && isPositiveNumber(width) && isPositiveNumber(height)) {\n dispatch(setChartSize({\n width,\n height\n }));\n }\n }, [dispatch, isPanorama, width, height]);\n return null;\n};\nexport var ReportChartMargin = _ref => {\n var {\n margin\n } = _ref;\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(setMargin(margin));\n }, [dispatch, margin]);\n return null;\n};","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isMatch = require('./isMatch.js');\nconst toKey = require('../_internal/toKey.js');\nconst cloneDeep = require('../object/cloneDeep.js');\nconst get = require('../object/get.js');\nconst has = require('../object/has.js');\n\nfunction matchesProperty(property, source) {\n switch (typeof property) {\n case 'object': {\n if (Object.is(property?.valueOf(), -0)) {\n property = '-0';\n }\n break;\n }\n case 'number': {\n property = toKey.toKey(property);\n break;\n }\n }\n source = cloneDeep.cloneDeep(source);\n return function (target) {\n const result = get.get(target, property);\n if (result === undefined) {\n return has.has(target, property);\n }\n if (source === undefined) {\n return result === undefined;\n }\n return isMatch.isMatch(result, source);\n };\n}\n\nexports.matchesProperty = matchesProperty;\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Checks if two arrays are equal, treating empty arrays as equal regardless of reference.\n * If both arrays are non-empty, it checks for reference equality.\n * @param a\n * @param b\n */\nexport function emptyArraysAreEqualCheck(a, b) {\n if (Array.isArray(a) && Array.isArray(b) && a.length === 0 && b.length === 0) {\n // empty arrays are always equal, regardless of reference\n return true;\n }\n return a === b;\n}\n\n/**\n * Checks if two arrays have the same contents in the same order.\n * @param a\n * @param b\n */\nexport function arrayContentsAreEqualCheck(a, b) {\n if (a.length === b.length) {\n for (var i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n return false;\n}","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","import { createSlice, current, prepareAutoBatched } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\n\n/**\n * Unique ID of the graphical item.\n * This is used to identify the graphical item in the state and in the React tree.\n * This is required for every graphical item - it's either provided by the user or generated automatically.\n */\n\nvar initialState = {\n cartesianItems: [],\n polarItems: []\n};\nvar graphicalItemsSlice = createSlice({\n name: 'graphicalItems',\n initialState,\n reducers: {\n addCartesianGraphicalItem: {\n reducer(state, action) {\n state.cartesianItems.push(castDraft(action.payload));\n },\n prepare: prepareAutoBatched()\n },\n replaceCartesianGraphicalItem: {\n reducer(state, action) {\n var {\n prev,\n next\n } = action.payload;\n var index = current(state).cartesianItems.indexOf(castDraft(prev));\n if (index > -1) {\n state.cartesianItems[index] = castDraft(next);\n }\n },\n prepare: prepareAutoBatched()\n },\n removeCartesianGraphicalItem: {\n reducer(state, action) {\n var index = current(state).cartesianItems.indexOf(castDraft(action.payload));\n if (index > -1) {\n state.cartesianItems.splice(index, 1);\n }\n },\n prepare: prepareAutoBatched()\n },\n addPolarGraphicalItem: {\n reducer(state, action) {\n state.polarItems.push(castDraft(action.payload));\n },\n prepare: prepareAutoBatched()\n },\n removePolarGraphicalItem: {\n reducer(state, action) {\n var index = current(state).polarItems.indexOf(castDraft(action.payload));\n if (index > -1) {\n state.polarItems.splice(index, 1);\n }\n },\n prepare: prepareAutoBatched()\n }\n }\n});\nexport var {\n addCartesianGraphicalItem,\n replaceCartesianGraphicalItem,\n removeCartesianGraphicalItem,\n addPolarGraphicalItem,\n removePolarGraphicalItem\n} = graphicalItemsSlice.actions;\nexport var graphicalItemsReducer = graphicalItemsSlice.reducer;","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isUnsafeProperty = require('../../_internal/isUnsafeProperty.js');\nconst isDeepKey = require('../_internal/isDeepKey.js');\nconst toKey = require('../_internal/toKey.js');\nconst toPath = require('../util/toPath.js');\n\nfunction get(object, path, defaultValue) {\n if (object == null) {\n return defaultValue;\n }\n switch (typeof path) {\n case 'string': {\n if (isUnsafeProperty.isUnsafeProperty(path)) {\n return defaultValue;\n }\n const result = object[path];\n if (result === undefined) {\n if (isDeepKey.isDeepKey(path)) {\n return get(object, toPath.toPath(path), defaultValue);\n }\n else {\n return defaultValue;\n }\n }\n return result;\n }\n case 'number':\n case 'symbol': {\n if (typeof path === 'number') {\n path = toKey.toKey(path);\n }\n const result = object[path];\n if (result === undefined) {\n return defaultValue;\n }\n return result;\n }\n default: {\n if (Array.isArray(path)) {\n return getWithPath(object, path, defaultValue);\n }\n if (Object.is(path?.valueOf(), -0)) {\n path = '-0';\n }\n else {\n path = String(path);\n }\n if (isUnsafeProperty.isUnsafeProperty(path)) {\n return defaultValue;\n }\n const result = object[path];\n if (result === undefined) {\n return defaultValue;\n }\n return result;\n }\n }\n}\nfunction getWithPath(object, path, defaultValue) {\n if (path.length === 0) {\n return defaultValue;\n }\n let current = object;\n for (let index = 0; index < path.length; index++) {\n if (current == null) {\n return defaultValue;\n }\n if (isUnsafeProperty.isUnsafeProperty(path[index])) {\n return defaultValue;\n }\n current = current[path[index]];\n }\n if (current === undefined) {\n return defaultValue;\n }\n return current;\n}\n\nexports.get = get;\n","module.exports = require('../dist/compat/predicate/isPlainObject.js').isPlainObject;\n","var _ref;\nimport * as React from 'react';\nimport { uniqueId } from './DataUtils';\n\n/**\n * Fallback for React.useId() for versions prior to React 18.\n * Generates a unique ID using a simple counter and a prefix.\n *\n * @returns A unique ID that remains consistent across renders.\n */\nexport var useIdFallback = () => {\n var [id] = React.useState(() => uniqueId('uid-'));\n return id;\n};\n\n/*\n * This weird syntax is used to avoid a build-time error in React 17 and earlier when building with Webpack.\n * See https://github.com/webpack/webpack/issues/14814\n */\nexport var useId = (_ref = React['useId'.toString()]) !== null && _ref !== void 0 ? _ref : useIdFallback;","import { useId } from './useId';\n\n/**\n * A hook that generates a unique ID. It uses React.useId() in React 18+ for SSR safety\n * and falls back to a client-side-only unique ID generator for older versions.\n *\n * The ID will stay the same across renders, and you can optionally provide a prefix.\n *\n * @param [prefix] - An optional prefix for the generated ID.\n * @param [customId] - An optional custom ID to override the generated one.\n * @returns The unique ID.\n */\nexport function useUniqueId(prefix, customId) {\n /*\n * We have to call this hook here even if we don't use the result because\n * rules of hooks demand that hooks are never called conditionally.\n */\n var generatedId = useId();\n\n // If a custom ID is provided, it always takes precedence.\n if (customId) {\n return customId;\n }\n\n // Apply the prefix if one was provided.\n return prefix ? \"\".concat(prefix, \"-\").concat(generatedId) : generatedId;\n}\n\n/**\n * The useUniqueId hook returns a unique ID that is either reused from external props or generated internally.\n * Either way the ID is now guaranteed to be present so no more nulls or undefined.\n */","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","import { MAX_VALUE_REG, MIN_VALUE_REG } from './ChartUtils';\nimport { isNumber } from './DataUtils';\nimport { isWellBehavedNumber } from './isWellBehavedNumber';\nexport function isWellFormedNumberDomain(v) {\n if (Array.isArray(v) && v.length === 2) {\n var [min, max] = v;\n if (isWellBehavedNumber(min) && isWellBehavedNumber(max)) {\n return true;\n }\n }\n return false;\n}\nexport function extendDomain(providedDomain, boundaryDomain, allowDataOverflow) {\n if (allowDataOverflow) {\n // If the data are allowed to overflow - we're fine with whatever user provided\n return providedDomain;\n }\n /*\n * If the data are not allowed to overflow - we need to extend the domain.\n * Means that effectively the user is allowed to make the domain larger\n * but not smaller.\n */\n return [Math.min(providedDomain[0], boundaryDomain[0]), Math.max(providedDomain[1], boundaryDomain[1])];\n}\n\n/**\n * So Recharts allows users to provide their own domains,\n * but it also places some expectations on what the domain is.\n * We can improve on the typescript typing, but we also need a runtime test\n to observe that the user-provided domain is well-formed,\n * that is: an array with exactly two numbers.\n *\n * This function does not accept data as an argument.\n * This is to enable a performance optimization - if the domain is there,\n * and we know what it is without traversing all the data,\n * then we don't have to traverse all the data!\n *\n * If the user-provided domain is not well-formed,\n * this function will return undefined - in which case we should traverse the data to calculate the real domain.\n *\n * This function is for parsing the numerical domain only.\n *\n * @param userDomain external prop, user provided, before validation. Can have various shapes: array, function, special magical strings inside too.\n * @param allowDataOverflow boolean, provided by users. If true then the data domain wins\n *\n * @return [min, max] domain if it's well-formed; undefined if the domain is invalid\n */\nexport function numericalDomainSpecifiedWithoutRequiringData(userDomain, allowDataOverflow) {\n if (!allowDataOverflow) {\n // Cannot compute data overflow if the data is not provided\n return undefined;\n }\n if (typeof userDomain === 'function') {\n // The user function expects the data to be provided as an argument\n return undefined;\n }\n if (Array.isArray(userDomain) && userDomain.length === 2) {\n var [providedMin, providedMax] = userDomain;\n var finalMin, finalMax;\n if (isWellBehavedNumber(providedMin)) {\n finalMin = providedMin;\n } else if (typeof providedMin === 'function') {\n // The user function expects the data to be provided as an argument\n return undefined;\n }\n if (isWellBehavedNumber(providedMax)) {\n finalMax = providedMax;\n } else if (typeof providedMax === 'function') {\n // The user function expects the data to be provided as an argument\n return undefined;\n }\n var candidate = [finalMin, finalMax];\n if (isWellFormedNumberDomain(candidate)) {\n return candidate;\n }\n }\n return undefined;\n}\n\n/**\n * So Recharts allows users to provide their own domains,\n * but it also places some expectations on what the domain is.\n * We can improve on the typescript typing, but we also need a runtime test\n * to observe that the user-provided domain is well-formed,\n * that is: an array with exactly two numbers.\n * If the user-provided domain is not well-formed,\n * this function will return undefined - in which case we should traverse the data to calculate the real domain.\n *\n * This function is for parsing the numerical domain only.\n *\n * You are probably thinking, why does domain need tick count?\n * Well it adjusts the domain based on where the \"nice ticks\" land, and nice ticks depend on the tick count.\n *\n * @param userDomain external prop, user provided, before validation. Can have various shapes: array, function, special magical strings inside too.\n * @param dataDomain calculated from data. Can be undefined, as an option for performance optimization\n * @param allowDataOverflow provided by users. If true then the data domain wins\n *\n * @return [min, max] domain if it's well-formed; undefined if the domain is invalid\n */\nexport function parseNumericalUserDomain(userDomain, dataDomain, allowDataOverflow) {\n if (!allowDataOverflow && dataDomain == null) {\n // Cannot compute data overflow if the data is not provided\n return undefined;\n }\n if (typeof userDomain === 'function' && dataDomain != null) {\n try {\n var result = userDomain(dataDomain, allowDataOverflow);\n if (isWellFormedNumberDomain(result)) {\n return extendDomain(result, dataDomain, allowDataOverflow);\n }\n } catch (_unused) {\n /* ignore the exception and compute domain from data later */\n }\n }\n if (Array.isArray(userDomain) && userDomain.length === 2) {\n var [providedMin, providedMax] = userDomain;\n var finalMin, finalMax;\n if (providedMin === 'auto') {\n if (dataDomain != null) {\n finalMin = Math.min(...dataDomain);\n }\n } else if (isNumber(providedMin)) {\n finalMin = providedMin;\n } else if (typeof providedMin === 'function') {\n try {\n if (dataDomain != null) {\n finalMin = providedMin(dataDomain === null || dataDomain === void 0 ? void 0 : dataDomain[0]);\n }\n } catch (_unused2) {\n /* ignore the exception and compute domain from data later */\n }\n } else if (typeof providedMin === 'string' && MIN_VALUE_REG.test(providedMin)) {\n var match = MIN_VALUE_REG.exec(providedMin);\n if (match == null || dataDomain == null) {\n finalMin = undefined;\n } else {\n var value = +match[1];\n finalMin = dataDomain[0] - value;\n }\n } else {\n finalMin = dataDomain === null || dataDomain === void 0 ? void 0 : dataDomain[0];\n }\n if (providedMax === 'auto') {\n if (dataDomain != null) {\n finalMax = Math.max(...dataDomain);\n }\n } else if (isNumber(providedMax)) {\n finalMax = providedMax;\n } else if (typeof providedMax === 'function') {\n try {\n if (dataDomain != null) {\n finalMax = providedMax(dataDomain === null || dataDomain === void 0 ? void 0 : dataDomain[1]);\n }\n } catch (_unused3) {\n /* ignore the exception and compute domain from data later */\n }\n } else if (typeof providedMax === 'string' && MAX_VALUE_REG.test(providedMax)) {\n var _match = MAX_VALUE_REG.exec(providedMax);\n if (_match == null || dataDomain == null) {\n finalMax = undefined;\n } else {\n var _value = +_match[1];\n finalMax = dataDomain[1] + _value;\n }\n } else {\n finalMax = dataDomain === null || dataDomain === void 0 ? void 0 : dataDomain[1];\n }\n var candidate = [finalMin, finalMax];\n if (isWellFormedNumberDomain(candidate)) {\n if (dataDomain == null) {\n return candidate;\n }\n return extendDomain(candidate, dataDomain, allowDataOverflow);\n }\n }\n return undefined;\n}","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction identity(x) {\n return x;\n}\n\nexports.identity = identity;\n","export var combineTooltipPayloadConfigurations = (tooltipState, tooltipEventType, trigger, defaultIndex) => {\n // if tooltip reacts to axis interaction, then we display all items at the same time.\n if (tooltipEventType === 'axis') {\n return tooltipState.tooltipItemPayloads;\n }\n /*\n * By now we already know that tooltipEventType is 'item', so we can only search in itemInteractions.\n * item means that only the hovered or clicked item will be present in the tooltip.\n */\n if (tooltipState.tooltipItemPayloads.length === 0) {\n // No point filtering if the payload is empty\n return [];\n }\n var filterByDataKey;\n if (trigger === 'hover') {\n filterByDataKey = tooltipState.itemInteraction.hover.dataKey;\n } else {\n filterByDataKey = tooltipState.itemInteraction.click.dataKey;\n }\n if (filterByDataKey == null && defaultIndex != null) {\n /*\n * So when we use `defaultIndex` - we don't have a dataKey to filter by because user did not hover over anything yet.\n * In that case let's display the first item in the tooltip; after all, this is `item` interaction case,\n * so we should display only one item at a time instead of all.\n */\n return [tooltipState.tooltipItemPayloads[0]];\n }\n return tooltipState.tooltipItemPayloads.filter(tpc => {\n var _tpc$settings;\n return ((_tpc$settings = tpc.settings) === null || _tpc$settings === void 0 ? void 0 : _tpc$settings.dataKey) === filterByDataKey;\n });\n};","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst last$1 = require('../../array/last.js');\nconst toArray = require('../_internal/toArray.js');\nconst isArrayLike = require('../predicate/isArrayLike.js');\n\nfunction last(array) {\n if (!isArrayLike.isArrayLike(array)) {\n return undefined;\n }\n return last$1.last(toArray.toArray(array));\n}\n\nexports.last = last;\n","import { isValidElement } from 'react';\nimport { isEventKey } from './excludeEventProps';\nimport { isDataAttribute, isSvgElementPropKey } from './svgPropertiesNoEvents';\n/**\n * Filters an object to only include SVG properties, data attributes, and event handlers.\n * @param obj - The object to filter.\n * @returns A new object containing only valid SVG properties, data attributes, and event handlers.\n */\nexport function svgPropertiesAndEvents(obj) {\n var filteredEntries = Object.entries(obj).filter(_ref => {\n var [key] = _ref;\n return isSvgElementPropKey(key) || isDataAttribute(key) || isEventKey(key);\n });\n return Object.fromEntries(filteredEntries);\n}\n\n/**\n * Function to filter SVG properties from various input types.\n * The input types can be:\n * - A record of string keys to any values, in which case it returns a record of only SVG properties\n * - A React element, in which case it returns the props of the element filtered to only SVG properties\n * - Anything else, in which case it returns null\n *\n * This function has a wide-open return type, because it will read and filter the props of an arbitrary React element.\n * This can be SVG, HTML, whatnot, with arbitrary values, so we can't type it more specifically.\n *\n * If you wish to have a type-safe version, use svgPropertiesNoEvents directly with a typed object.\n *\n * @param input - The input to filter, which can be a record, a React element, or other types.\n * @returns A record of SVG properties if the input is a record or React element, otherwise null.\n */\nexport function svgPropertiesAndEventsFromUnknown(input) {\n if (input == null) {\n return null;\n }\n if (/*#__PURE__*/isValidElement(input)) {\n // @ts-expect-error we can't type this better because input can be any React element\n return svgPropertiesAndEvents(input.props);\n }\n if (typeof input === 'object' && !Array.isArray(input)) {\n return svgPropertiesAndEvents(input);\n }\n return null;\n}","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction getPriority(a) {\n if (typeof a === 'symbol') {\n return 1;\n }\n if (a === null) {\n return 2;\n }\n if (a === undefined) {\n return 3;\n }\n if (a !== a) {\n return 4;\n }\n return 0;\n}\nconst compareValues = (a, b, order) => {\n if (a !== b) {\n const aPriority = getPriority(a);\n const bPriority = getPriority(b);\n if (aPriority === bPriority && aPriority === 0) {\n if (a < b) {\n return order === 'desc' ? 1 : -1;\n }\n if (a > b) {\n return order === 'desc' ? -1 : 1;\n }\n }\n return order === 'desc' ? bPriority - aPriority : aPriority - bPriority;\n }\n return 0;\n};\n\nexports.compareValues = compareValues;\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\"),\n shim = require(\"use-sync-external-store/shim\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useSyncExternalStore = shim.useSyncExternalStore,\n useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue;\nexports.useSyncExternalStoreWithSelector = function (\n subscribe,\n getSnapshot,\n getServerSnapshot,\n selector,\n isEqual\n) {\n var instRef = useRef(null);\n if (null === instRef.current) {\n var inst = { hasValue: !1, value: null };\n instRef.current = inst;\n } else inst = instRef.current;\n instRef = useMemo(\n function () {\n function memoizedSelector(nextSnapshot) {\n if (!hasMemo) {\n hasMemo = !0;\n memoizedSnapshot = nextSnapshot;\n nextSnapshot = selector(nextSnapshot);\n if (void 0 !== isEqual && inst.hasValue) {\n var currentSelection = inst.value;\n if (isEqual(currentSelection, nextSnapshot))\n return (memoizedSelection = currentSelection);\n }\n return (memoizedSelection = nextSnapshot);\n }\n currentSelection = memoizedSelection;\n if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;\n var nextSelection = selector(nextSnapshot);\n if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n return (memoizedSnapshot = nextSnapshot), currentSelection;\n memoizedSnapshot = nextSnapshot;\n return (memoizedSelection = nextSelection);\n }\n var hasMemo = !1,\n memoizedSnapshot,\n memoizedSelection,\n maybeGetServerSnapshot =\n void 0 === getServerSnapshot ? null : getServerSnapshot;\n return [\n function () {\n return memoizedSelector(getSnapshot());\n },\n null === maybeGetServerSnapshot\n ? void 0\n : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n }\n ];\n },\n [getSnapshot, getServerSnapshot, selector, isEqual]\n );\n var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n useEffect(\n function () {\n inst.hasValue = !0;\n inst.value = value;\n },\n [value]\n );\n useDebugValue(value);\n return value;\n};\n","module.exports = require('../dist/compat/math/range.js').range;\n","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isObjectLike(value) {\n return typeof value === 'object' && value !== null;\n}\n\nexports.isObjectLike = isObjectLike;\n","import { useAppSelector } from '../state/hooks';\nexport var useAccessibilityLayer = () => {\n var _useAppSelector;\n return (_useAppSelector = useAppSelector(state => state.rootProps.accessibilityLayer)) !== null && _useAppSelector !== void 0 ? _useAppSelector : true;\n};","'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction eq(value, other) {\n return value === other || (Number.isNaN(value) && Number.isNaN(other));\n}\n\nexports.eq = eq;\n"],"names":["selectRootMaxBarSize","state","rootProps","maxBarSize","selectBarGap","barGap","selectBarCategoryGap","barCategoryGap","selectRootBarSize","barSize","selectStackOffsetType","stackOffset","selectChartName","options","chartName","selectSyncId","syncId","selectSyncMethod","syncMethod","selectEventEmitter","eventEmitter","combineAxisRangeWithReverse","axisSettings","axisRange","reversed","warn","condition","format","_len","arguments","length","args","Array","_key","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","i","Symbol","toPrimitive","call","TypeError","String","Number","_toPrimitive","_toPropertyKey","value","configurable","writable","RADIAN","Math","PI","radianToDegree","angleInRadian","polarToCartesian","cx","cy","radius","angle","x","cos","y","sin","getMaxRadius","width","height","offset","undefined","top","right","bottom","left","brushBottom","min","abs","getAngleOfPoint","_ref","_ref2","distanceBetweenPoints","point","anotherPoint","x1","y1","x2","y2","sqrt","acos","reverseFormatAngleOfSector","_ref4","startAngle","endAngle","startCnt","floor","endCnt","inRangeOfSector","_ref5","viewBox","chartX","chartY","innerRadius","outerRadius","inRange","_ref3","formatAngleOfSector","formatAngle","combineActiveLabel","tooltipTicks","activeIndex","_tooltipTicks$n","n","isNan","TooltipPortalContext","createContext","useTooltipPortal","useContext","module","exports","numberDomainEqualityCheck","a","b","toStringTag","toString","isArray","map","join","result","is","eventCenter","TOOLTIP_SYNC_EVENT","BRUSH_SYNC_EVENT","selectSynchronisedTooltipState","tooltip","syncInteraction","_excluded","useTooltipSyncEventsListener","mySyncId","useAppSelector","myEventEmitter","dispatch","useAppDispatch","selectTooltipAxisTicks","layout","useChartLayout","useViewBox","className","useEffect","noop","listener","incomingSyncId","action","emitter","_action$payload","activeTick","syncMethodParam","activeTooltipIndex","payload","index","isTooltipActive","active","activeLabel","label","activeDataKey","dataKey","activeCoordinate","coordinate","find","tick","validateChartX","validateChartY","syncAction","setSyncInteraction","sourceViewBox","_action$payload$coord","_x","_y","otherCoordinateProps","hasOwnProperty","indexOf","_objectWithoutPropertiesLoose","propertyIsEnumerable","_objectWithoutProperties","sourceX","sourceY","sourceWidth","sourceHeight","scaledCoordinate","on","off","useSynchronisedEventsFromOtherCharts","createEventEmitter","setDataStartEndIndexes","useBrushSyncEventsListener","useTooltipChartSynchronisation","tooltipEventType","trigger","selectTooltipDataKey","eventEmitterSymbol","tooltipState","isReceivingSynchronisation","emit","_extends","assign","bind","getTangentCircle","sign","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","asin","centerAngle","lineTangencyAngle","center","circleTangency","lineTangency","getSectorPath","getDeltaAngle","mathSign","tempEndAngle","outerStartPoint","outerEndPoint","path","concat","innerStartPoint","innerEndPoint","defaultProps","forceCornerRadius","Sector","sectorProps","props","resolveDefaultProps","layerClass","clsx","deltaRadius","cr","getPercentValue","soct","solt","sot","eoct","eolt","eot","outerArcAngle","sict","silt","sit","eict","eilt","eit","innerArcAngle","getSectorWithCorner","React","svgPropertiesAndEvents","d","noopDispatch","context","RechartsReduxContext","store","addNestedSubNoop","refEquality","selector","useSyncExternalStoreWithSelector","subscription","addNestedSub","getState","alpha","begin","end","k","needContinue","from","to","calStepperVals","easing","preVals","steps","nextStepVals","mapObject","key","val","newX","newV","velocity","createStepperUpdate","interKeys","render","timeoutController","preTime","stepperStyle","reduce","res","stopAnimation","stepperUpdate","now","dt","values","setTimeout","_stopAnimation","duration","getIntersectionKeys","isStepper","beginTime","timingStyle","timingUpdate","currStyle","finalStyle","_stopAnimation2","createTimingUpdate","ACCURACY","cubicBezierFactor","c1","c2","evaluatePolynomial","params","param","pre","curr","cubicBezier","createBezierEasing","curveX","curveY","derCurveX","newParams","slice","rangeValue","bezier","_t","evalT","derVal","configBezier","_easing$","split","coords","parseFloat","getBezierCoordinates","configEasing","config","stiff","damping","stepper","currX","destX","currV","configSpring","RequestAnimationFrameTimeoutController","callback","delay","startTime","performance","requestId","executeCallback","requestAnimationFrame","cancelAnimationFrame","createDefaultAnimationManager","handleChange","shouldStop","cancelTimeout","setStyle","_style","styles","restStyles","stop","start","style","subscribe","_handleChange","getTimeoutController","createAnimateManager","AnimationManagerContext","defaultJavascriptAnimateProps","isActive","canBegin","onAnimationEnd","onAnimationStart","JavascriptAnimate","outsideProps","children","animationManager","animationId","animationManagerFromProps","contextAnimationManager","useMemo","useAnimationManager","useState","stopJSAnimation","useRef","startAnimation","configUpdate","onAnimationActive","current","isObject","_excluded2","_excluded3","defaultCartesianAxisProps","orientation","ticks","stroke","tickLine","axisLine","mirror","minTickGap","tickSize","tickMargin","interval","zIndex","DefaultZIndexes","axis","AxisLine","axisLineProps","otherSvgProps","svgPropertiesNoEvents","fill","needHeight","needWidth","get","TickItem","tickItem","option","tickProps","combinedClassName","Text","Ticks","forwardRef","ref","tickFormatter","unit","padding","tickTextProps","fontSize","letterSpacing","getTicksConfig","events","axisType","finalTicks","getTicks","textAnchor","getTickTextAnchor","verticalAnchor","getTickVerticalAnchor","axisProps","customTickProps","svgPropertiesNoEventsFromUnknown","tickLinePropsObject","tickLineProps","tickLineCoords","entry","data","tx","ty","finalTickSize","tickCoord","isNumber","line","getTickLineCoord","tickLines","lineCoord","Layer","tickLabels","visibleTicksCount","adaptEventsOfChild","ZIndexLayer","CartesianAxisComponent","hide","rest","setFontSize","setLetterSpacing","tickRefs","useImperativeHandle","getCalculatedWidth","_props$labelRef","labelGapWithTick","maxTickWidth","tickNode","bbox","getBoundingClientRect","labelWidth","updatedYAxisWidth","round","getCalculatedYAxisWidth","labelRef","layerRef","useCallback","el","tickNodes","getElementsByClassName","computedStyle","window","getComputedStyle","calculatedFontSize","calculatedLetterSpacing","CartesianLabelContextProvider","lowerWidth","upperWidth","CartesianLabelFromLabelProp","MemoCartesianAxis","prevProps","nextProps","prevViewBox","prevRestProps","nextViewBox","nextRestProps","shallowEqual","CartesianAxis","displayName","calculateChartDimensions","containerWidth","containerHeight","aspect","maxHeight","calculatedWidth","isPercent","calculatedHeight","bothOverflow","overflow","overflowX","overflowY","noStyle","getInnerDivStyle","isWidthPercent","isHeightPercent","ResponsiveContainerContext","ResponsiveContainerContextProvider","size","isPositiveNumber","isAcceptableSize","Provider","useResponsiveContainerContext","SizeDetectorContainer","initialDimension","minWidth","minHeight","debounce","id","onResize","containerRef","onResizeRef","sizes","setSizes","setContainerSize","newWidth","newHeight","prevState","roundedWidth","roundedHeight","ResizeObserver","entries","_onResizeRef$current","contentRect","throttle","trailing","leading","observer","observe","disconnect","ResponsiveContainer","responsiveContainerContext","getDefaultWidthAndHeight","isLength","require","isArrayLike","debounce$1","func","debounceMs","maxWait","edges","pendingAt","_debounced","this","debounced","_len2","_key2","Date","cancel","schedule","flush","combineActiveTooltipIndex","tooltipInteraction","chartData","desiredIndex","indexAsNumber","isWellBehavedNumber","upperLimit","Infinity","max","toKey","toPath","deepKey","quoteChar","bracket","charCodeAt","char","arrayTooltipSearcher","strIndex","numIndex","parseInt","initialState","tooltipPayloadSearcher","defaultTooltipEventType","optionsSlice","createSlice","name","reducers","optionsReducer","reducer","actions","createThunkMiddleware","extraArgument","next","thunk","withExtraArgument","composeWithDevTools","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","__REDUX_DEVTOOLS_EXTENSION__","createAction","type","prepareAction","actionCreator","prepared","Error","formatProdErrorMessage","meta","error","match","isAction","Tuple","_Tuple","constructor","super","setPrototypeOf","prototype","species","arr","prepend","_len3","_key3","freezeDraftable","isDraftable","produce","getOrInsertComputed","compute","has","set","buildGetDefaultMiddleware","immutableCheck","serializableCheck","actionCreatorCheck","middlewareArray","thunkMiddleware","SHOULD_AUTOBATCH","prepareAutoBatched","createQueueWithTimer","timeout","notify","autoBatchEnhancer","notifying","shouldNotifyAtEndOfTick","notificationQueued","listeners","Set","queueCallback","queueMicrotask","queueNotification","notifyListeners","l","listener2","unsubscribe","wrappedListener","add","delete","_action$meta","buildGetDefaultEnhancers","middlewareEnhancer","autoBatch","enhancerArray","configureStore","getDefaultMiddleware","middleware","devTools","duplicateMiddlewareCheck","preloadedState","enhancers","rootReducer","finalMiddleware","isPlainObject","combineReducers","finalCompose","trace","process","applyMiddleware","getDefaultEnhancers","composedEnhancer","createStore","executeReducerBuilderCallback","builderCallback","actionsMap","actionMatchers","defaultCaseReducer","builder","addCase","typeOrActionCreator","addAsyncThunk","asyncThunk","pending","rejected","fulfilled","settled","matcher","addMatcher","addDefaultCase","setUseStrictIteration","nanoid","random","asyncThunkSymbol","for","getType","actionKey","buildCreateSlice","_creators$asyncThunk","creators","cAT","reducerPath","payloadCreator","_reducerDefinitionType","withTypes","caseReducer","preparedReducer","prepare","buildReducerCreators","reducerNames","sliceCaseReducersByName","sliceCaseReducersByType","actionCreators","sliceMatchers","contextMethods","reducer2","exposeAction","name2","exposeCaseReducer","buildReducer","extraReducers","finalCaseReducers","mapOrBuilderCallback","getInitialState","finalActionMatchers","finalDefaultCaseReducer","frozenInitialState","caseReducers","previousState","isDraft","draft","createReducer","sM","m","reducerName","reducerDefinition","reducerDetails","createNotation","isAsyncThunkSliceReducerDefinition","maybeReducerWithPrepare","prepareCallback","isCaseReducerWithPrepareDefinition","handleNormalReducerDefinition","_ref6","handleThunkCaseReducerDefinition","selectSelf","injectedSelectorCache","Map","injectedStateCache","WeakMap","_reducer","makeSelectorProps","reducerPath2","injected","selectSlice","sliceState","getSelectors","selectState","selectorCache","_options$selectors","selectors","wrapSelector","injectInto","injectable","pathOpt","newReducerPath","inject","wrapper","rootState","_len1","_key1","unwrapped","completed","cancelled","taskCancelled","taskCompleted","listenerCancelled","listenerCompleted","TaskAbortError","code","message","assertFunction","expected","noop2","catchRejection","promise","onError","catch","addAbortSignalListener","abortSignal","addEventListener","once","removeEventListener","abortControllerWithReason","abortController","reason","signal","aborted","abort","validateActive","raceWithSignal","cleanup","Promise","resolve","reject","notifyRejection","finally","then","createPause","output","createDelay","pause","timeoutMs","INTERNAL_NIL_TOKEN","alm","createFork","parentAbortSignal","parentBlockingPromises","taskExecutor","opts","childAbortController","AbortController","controller","async","task2","cleanUp","status","runTask","result2","autoJoin","createTakePattern","startListening","predicate","promises","stopListening","effect","listenerApi","getOriginalState","race","take","getListenerEntryPropsFrom","createListenerEntry","findListenerEntry","listenerMap","cancelActiveListeners","safelyNotifyError","errorHandler","errorToNotify","errorInfo","errorHandlerError","addListener","clearAllListeners","removeListener","defaultErrorHandler","_len10","_key10","console","createListenerMiddleware","middlewareOptions","executingListeners","extra","_findListenerEntry","cancelOptions","cancelActive","insertEntry","notifyListener","api","internalTaskController","autoJoinPromises","_executingListeners$g","count","trackExecutingListener","Boolean","fork","_","throwIfCancelled","listenerError","raisedBy","all","_executingListeners$g2","untrackExecutingListener","clearListenerMiddleware","createClearListenerMiddleware","clear","originalState","currentState","listenerEntries","runListener","predicateError","clearListeners","assertIsFunction","errorMessage","ensureIsArray","item","getDependencies","createSelectorArgs","dependencies","array","every","itemTypes","assertIsArrayOfFunctions","getPrototypeOf","Ref","WeakRef","deref","createCacheNode","s","v","p","weakMapMemoize","fnNode","resultEqualityCheck","lastResult","resultsCount","memoized","cacheNode","arg","objectCache","objectNode","primitiveCache","primitiveNode","terminatedNode","_lastResult$deref","_lastResult","_lastResult$deref2","lastResultValue","clearCache","resetResultsCount","createSelectorCreator","memoizeOrOptions","memoizeOptionsFromArgs","createSelectorCreatorOptions","memoize","memoizeOptions","createSelector2","recomputations","dependencyRecomputations","directlyPassedOptions","resultFunc","pop","combinedOptions","argsMemoize","argsMemoizeOptions","devModeChecks","finalMemoizeOptions","finalArgsMemoizeOptions","memoizedResultFunc","inputSelectorResults","inputSelectorArgs","collectInputSelectorResults","resetDependencyRecomputations","resetRecomputations","createSelector","createStructuredSelector","inputSelectorsObject","selectorCreator","object","assertIsObject","inputSelectorKeys","structuredSelector","_key4","composition","getSliced","startIndex","endIndex","isObjectLike","isArrayLikeObject","isPrimitive","eq","isMatchWithInternal","target","source","compare","stack","isArrayMatch","sourceValue","isMapMatch","isSetMatch","isObjectMatch","countedIndex","sourceItem","found","j","matches","isMatchWith","doesMatch","objValue","srcValue","isEqual","_excluded4","SetXAxisSettings","settings","useLayoutEffect","addXAxis","removeXAxis","XAxisImpl","xAxisId","selectAxisViewBox","isPanorama","useIsPanorama","scale","selectAxisScale","cartesianTickItems","selectTicksOfAxis","axisSize","selectXAxisSize","position","selectXAxisPosition","synchronizedSettings","selectXAxisSettingsNoDefaults","dangerouslySetInnerHTML","allOtherProps","restSynchronizedSettings","xAxisDefaultProps","allowDataOverflow","implicitXAxis","allowDecimals","allowDuplicatedCategory","tickCount","XAxisSettingsDispatcher","_props$interval","_props$includeHidden","_props$angle","_props$minTickGap","_props$tick","domain","includeHidden","XAxisMemoComparator","prevDomain","prevRest","nextDomain","nextRest","XAxis","orderBy","flatten","isIterateeCall","sortBy","collection","criteria","selectDefaultTooltipEventType","selectValidateTooltipEventTypes","validateTooltipEventTypes","combineTooltipEventType","shared","eventType","includes","selectTooltipEventType","useTooltipEventType","objectIs","useDebugValue","checkIfSnapshotChanged","inst","latestGetSnapshot","getSnapshot","nextValue","shim","document","createElement","_useState","forceUpdate","useSyncExternalStore","selectChartOffset","selectChartOffsetInternal","offsetInternal","selectPlotArea","selectChartWidth","selectChartHeight","chartWidth","chartHeight","usePlotArea","isDeepKey","combineCoordinateForDefaultIndex","defaultIndex","tooltipConfigurations","firstConfiguration","maybePosition","positions","isFinite","CartesianLabelContext","useCartesianLabelContext","labelChildContext","chartContext","cartesianViewBoxToTrapezoid","PolarLabelContext","usePolarLabelContext","selectPolarViewBox","getLabel","formatter","isNullish","isLabelContentAFunction","content","renderRadialLabel","labelProps","attrs","labelAngle","direction","clockWise","deltaAngle","startPoint","endPoint","uniqueId","dominantBaseline","xlinkHref","getAttrsOfPolarLabel","midAngle","isPolar","getAttrsOfCartesianLabel","parentViewBox","parentViewBoxFromProps","upperX","lowerX","middleX","midHeightWidth","centerX","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","_attrs2","_attrs3","sizeAttrs","defaultLabelProps","Label","outerProps","positionAttrs","viewBoxFromProps","textBreakAll","polarViewBox","cartesianViewBox","isValidElement","propsWithViewBox","propsWithoutLabelRef","cloneElement","isValidTextAnchor","breakAll","parseLabel","commonProps","isNumOrStr","_Object$getOwnPropert","tag","proto","selectTooltipAxisRealScaleType","selectTooltipAxis","selectChartLayout","selectHasBar","selectTooltipAxisType","combineRealScaleType","selectAllUnfilteredGraphicalItems","graphicalItems","cartesianItems","polarItems","selectTooltipAxisPredicate","selectTooltipAxisId","itemAxisPredicate","selectAllGraphicalItemsSettings","combineGraphicalItemsSettings","emptyArraysAreEqualCheck","selectAllStackedGraphicalItemsSettings","isStacked","selectTooltipGraphicalItemsData","combineGraphicalItemsData","selectTooltipDisplayedData","selectChartDataWithIndexes","combineDisplayedData","selectTooltipStackedData","combineDisplayedStackedData","selectAllTooltipAppliedValues","combineAppliedValues","selectTooltipAxisDomainDefinition","getDomainDefinition","selectTooltipDataOverflow","selectTooltipDomainFromUserPreferences","numericalDomainSpecifiedWithoutRequiringData","selectAllStackedGraphicalItems","selectTooltipStackGroups","combineStackGroups","selectTooltipDomainOfStackGroups","combineDomainOfStackGroups","selectTooltipItemsSettingsExceptStacked","filterGraphicalNotStackedItems","selectDomainOfAllAppliedNumericalValuesIncludingErrorValues","selectAllErrorBarSettings","combineDomainOfAllAppliedNumericalValuesIncludingErrorValues","selectReferenceDotsByTooltipAxis","selectReferenceDots","filterReferenceElements","selectTooltipReferenceDotsDomain","combineDotsDomain","selectReferenceAreasByTooltipAxis","selectReferenceAreas","selectTooltipReferenceAreasDomain","combineAreasDomain","selectReferenceLinesByTooltipAxis","selectReferenceLines","selectTooltipReferenceLinesDomain","combineLinesDomain","selectTooltipReferenceElementsDomain","mergeDomains","selectTooltipNumericalDomain","combineNumericalDomain","selectTooltipAxisDomain","combineAxisDomain","selectTooltipNiceTicks","combineNiceTicks","selectTooltipAxisDomainIncludingNiceTicks","combineAxisDomainWithNiceTicks","selectTooltipAxisRange","axisId","selectAxisRange","selectTooltipAxisRangeWithReverse","selectTooltipAxisScale","combineScaleFunction","selectTooltipDuplicateDomain","combineDuplicateDomain","selectTooltipCategoricalDomain","combineCategoricalDomain","combineTicksOfTooltipAxis","realScaleType","range","duplicateDomain","categoricalDomain","isCategorical","isCategoricalAxis","offsetForBand","bandwidth","validateTooltipEventType","selectTooltipTrigger","selectDefaultIndex","selectTooltipInteractionState","selectTooltipState","combineTooltipInteractionState","selectActiveTooltipIndex","selectActiveLabel","selectActiveTooltipDataKey","selectTooltipPayloadConfigurations","combineTooltipPayloadConfigurations","selectTooltipCoordinateForDefaultIndex","selectTooltipPayloadSearcher","selectActiveTooltipCoordinate","tooltipInteractionState","defaultIndexCoordinate","selectIsTooltipActive","selectActiveTooltipPayload","selectTooltipAxisDataKey","combineTooltipPayload","dataPoints","identity","property","matchesProperty","iteratee","noInteraction","itemInteraction","click","hover","axisInteraction","keyboardInteraction","tooltipItemPayloads","tooltipSlice","addTooltipEntrySettings","castDraft","removeTooltipEntrySettings","splice","setTooltipSettingsState","setActiveMouseOverItemIndex","mouseLeaveChart","mouseLeaveItem","setActiveClickItemIndex","setMouseOverAxisIndex","setMouseClickAxisIndex","setKeyboardInteraction","tooltipReducer","isSymbol","legendSlice","align","verticalAlign","itemSorter","setLegendSize","setLegendSettings","addLegendPayload","removeLegendPayload","legendReducer","useAnimationId","input","prefix","__esModule","selectZIndexPortalId","zIndexMap","_zIndex","panoramaElementId","elementId","selectAllRegisteredZIndexes","allNumbers","zIndexStr","sort","arrayContentsAreEqualCheck","_value$valueOf","valueOf","EventKeys","isEventKey","currentConfig","cacheSize","enableCache","stringCache","maxSize","cache","firstKey","SPAN_STYLE","margin","border","whiteSpace","MEASUREMENT_SPAN_ID","measureTextWithDOM","text","measurementSpan","getElementById","setAttribute","body","appendChild","textContent","rect","_unused","getStringSize","Global","isSsr","cacheKey","fontFamily","fontWeight","fontStyle","textTransform","createCacheKey","cachedResult","defaultNoopBatch","nullListeners","createSubscription","parentSub","subscriptionsAmount","selfSubscribed","handleChangeWrapper","onStateChange","trySubscribe","first","last","isSubscribed","prev","createListenerCollection","tryUnsubscribe","cleanupListener","removed","notifyNestedSubs","getListeners","isDOM","canUseDOM","isReactNative","isRunningInReactNative","navigator","product","useIsomorphicLayoutEffect","getUseIsomorphicLayoutEffect","getOwnPropertyNames","ContextKey","gT","globalThis","getContext","_gT$ContextKey","contextMap","realContext","ReactReduxContext","Provider_default","providerProps","serverState","contextValue","getServerState","Context","selectActivePropsFromChartPointer","pickChartPointer","_state","chartPointer","selectOrderedTooltipTicks","combineActiveProps","getChartPointer","event","currentTarget","scaleX","offsetWidth","scaleY","offsetHeight","clientX","clientY","mouseClickAction","mouseClickMiddleware","mousePointer","activeProps","mouseMoveAction","mouseMoveMiddleware","reduxDevtoolsJsonStringifyReplacer","HTMLElement","tagName","referenceElementsSlice","dots","areas","lines","addDot","removeDot","findIndex","dot","addArea","removeArea","area","addLine","removeLine","referenceElementsReducer","brushSlice","setBrushSettings","brushReducer","accessibilityLayer","baseValue","rootPropsSlice","updateOptions","_action$payload$barGa","rootPropsReducer","polarAxisSlice","radiusAxis","angleAxis","addRadiusAxis","removeRadiusAxis","addAngleAxis","removeAngleAxis","polarAxisReducer","polarOptionsSlice","updatePolarOptions","polarOptionsReducer","keyDownAction","focusAction","keyboardEventsMiddleware","currentIndex","nextIndex","selectChartDirection","selectCoordinateForDefaultIndex","_coordinate","_action","externalEventAction","externalEventsMiddleware","handler","nextState","reactEvent","selectAllTooltipPayloadConfiguration","selectTooltipCoordinate","tooltipIndex","_dataKey","_tooltipIndex","allTooltipConfigurations","mostRelevantTooltipConfiguration","tooltipConfiguration","touchEventAction","touchEventMiddleware","touchEvent","touches","_target$getAttribute","touch","elementFromPoint","getAttribute","itemIndex","DATA_ITEM_INDEX_ATTRIBUTE_NAME","DATA_ITEM_DATAKEY_ATTRIBUTE_NAME","errorBarSlice","addErrorBar","itemId","errorBar","replaceErrorBar","removeErrorBar","errorBarReducer","brush","cartesianAxis","cartesianAxisReducer","chartDataReducer","errorBars","graphicalItemsReducer","chartLayoutReducer","legend","polarAxis","polarOptions","referenceElements","zIndexReducer","RechartsStoreProvider","reduxStoreName","storeRef","devToolsEnabled","serialize","replacer","createRechartsStore","nonNullContext","ChartDataContextProvider","setChartData","ReportMainChartProps","setLayout","setMargin","ReportChartProps","Surface","title","desc","others","svgView","ZIndexSvgPortal","portalId","useUniqueId","registerZIndexPortalId","unregisterZIndexPortalId","AllZIndexPortals","allRegisteredZIndexes","allNegativeZIndexes","allPositiveZIndexes","FULL_WIDTH_AND_HEIGHT","display","MainChartSurface","useChartWidth","useChartHeight","hasAccessibilityLayer","useAccessibilityLayer","tabIndex","role","otherAttributes","BrushPanoramaSurface","brushDimensions","selectBrushDimensions","RootSurface","LegendPortalContext","EventSynchronizer","getNumberOrZero","parsed","isNaN","ResponsiveDiv","_props$style","_props$style2","observerRef","innerRef","node","ReportChartSize","ReadSizeOnceDiv","StaticDiv","NonResponsiveDiv","RechartsWrapper","heightFromProps","onClick","onContextMenu","onDoubleClick","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","widthFromProps","responsive","dispatchTouchEvents","tooltipPortal","setTooltipPortal","legendPortal","setLegendPortal","setScaleRef","setRef","selectContainerScale","newScale","setScale","useReportScale","responsiveContainerCalculations","myOnClick","myOnMouseEnter","myOnMouseLeave","myOnMouseMove","onFocus","onKeyDown","myOnContextMenu","myOnDoubleClick","myOnMouseDown","myOnMouseUp","myOnTouchStart","myOnTouchMove","myOnTouchEnd","WrapperDiv","getWrapperDivComponent","cursor","ClipPathIdContext","ClipPathProvider","clipPathId","plotArea","CategoricalChart","compact","reverseStackOrder","CartesianChart","_categoricalChartProp","rootChartProps","categoricalChartProps","allowedTooltipTypes","BarChart","defaultFormatter","DefaultTooltipContent","separator","contentStyle","itemStyle","labelStyle","wrapperClassName","labelClassName","labelFormatter","backgroundColor","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","accessibilityAttributes","renderContent","items","finalFormatter","finalValue","finalName","formatted","finalItemStyle","paddingTop","paddingBottom","color","CSS_CLASS_PREFIX","TOOLTIP_HIDDEN","visibility","getTooltipCSSClassName","translateX","translateY","getTooltipTranslateXY","allowEscapeViewBox","offsetTopLeft","reverseDirection","tooltipDimension","viewBoxDimension","negative","positive","viewBoxKey","TooltipBoundingBox","PureComponent","dismissed","dismissedAtCoordinate","_this$props$coordinat","_this$props$coordinat2","_this$props$coordinat3","_this$props$coordinat4","setState","componentDidMount","handleKeyDown","componentWillUnmount","componentDidUpdate","_this$props$coordinat5","_this$props$coordinat6","animationDuration","animationEasing","hasPayload","isAnimationActive","useTranslate3d","wrapperStyle","lastBoundingBox","hasPortalFromProps","cssClasses","cssProperties","tooltipBox","transform","getTransformStyle","getTooltipTranslate","positionStyles","transition","pointerEvents","outerStyle","xmlns","EPS","getPath","Cross","getRadialCursorPoints","points","getCursorPoints","isPolarCoordinate","innerPoint","outerPoint","useTooltipAxisBandSize","tooltipAxis","tooltipAxisScale","getBandSizeOfAxis","RenderCursor","cursorComp","cursorProps","CursorInternal","_props$zIndex","restProps","preferredZIndex","tooltipAxisBandSize","activePayload","cursorLine","halfSize","getCursorRectangle","Rectangle","cursorRectangle","Curve","extraClassName","payloadIndex","Cursor","useOffsetInternal","useChartName","defaultUniqBy","emptyPayload","defaultTooltipProps","filterNull","Tooltip","_useAppSelector","activeFromProps","payloadUniqBy","portal","portalFromProps","defaultIndexAsString","payloadFromRedux","selectTooltipPayload","labelFromRedux","selectActiveCoordinate","tooltipPortalFromContext","finalIsActive","updateBoundingBox","extraDependencies","setLastBoundingBox","box","useElementOffset","finalPayload","uniqBy","getUniqPayload","tooltipElement","createPortal","Cell","_props","defaultAccessor","CartesianLabelListContext","CartesianLabelListContextProvider","PolarLabelListContext","LabelList","valueAccessor","cartesianData","polarData","_restProps$fill","getValueByDataKey","idProps","LabelListFromLabelProp","getDisplayName","Comp","lastChildren","toArray","Children","child","isFragment","getTrapezoidPath","widthGap","isUpdateAnimationActive","animationBegin","Trapezoid","trapezoidProps","pathRef","totalLength","setTotalLength","prevUpperWidthRef","prevLowerWidthRef","prevHeightRef","prevXRef","prevYRef","getTotalLength","pathTotalLength","prevUpperWidth","prevLowerWidth","prevHeight","prevX","prevY","getTransitionVal","currUpperWidth","interpolate","currLowerWidth","currHeight","currY","animationStyle","strokeDasharray","atan2","pi","tau","draw","moveTo","arc","lineTo","closePath","tan30","tan30_2","w","kr","kx","ky","c","sqrt3","x0","y0","symbolFactories","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","Symbols","sizeType","realType","filteredProps","symbolFactory","upperFirst","getSymbolFactory","symbol","withPath","buffer","constant","circle","shapeSymbol","calculateAreaSize","tan","registerSymbol","factory","defaultPropTransformer","ShapeSelector","shapeType","elementProps","isSymbolsProps","Shape","shape","propTransformer","activeClassName","getPropsFromShapeOption","typeguardBarRectangleProps","xProp","yProp","xValue","yValue","heightValue","widthValue","BarRectangle","minPointSizeCallback","minPointSize","defaultValue","isValueNumberOrNil","invariant","useMouseEnterItemDispatch","onMouseEnterFromProps","tooltipPosition","useMouseLeaveItemDispatch","onMouseLeaveFromProps","useMouseClickItemDispatch","onMouseClickFromProps","SetTooltipEntrySettings","fn","tooltipEntrySettings","initialContextState","yAxisId","dataPointFormatter","errorBarOffset","ErrorBarContext","SetErrorBarContext","useNeedsClip","_xAxis$allowDataOverf","_yAxis$allowDataOverf","xAxis","selectXAxisSettings","yAxis","selectYAxisSettings","needClipX","needClipY","implicitYAxis","needClip","GraphicalItemClipPath","selectSynchronisedBarSettings","selectUnfilteredCartesianItems","pickBarId","_xAxisId","_yAxisId","_isPanorama","selectMaxBarSize","barSettings","getBarSize","globalSize","totalSize","selfSize","selectAllVisibleBars","pickXAxisId","pickYAxisId","pickIsPanorama","allItems","selectBarSizeList","selectBarCartesianAxisSize","selectCartesianAxisSize","combineBarSizeList","allBars","stackedBars","unstackedBars","stackId","groupByStack","acc","bar","bars","dataKeys","dk","selectAxisBandSize","selectAxisWithScale","selectTicksOfGraphicalItem","selectAllBarPositions","selectBarBandSize","_getBandSizeOfAxis","globalMaxBarSize","childMaxBarSize","combineAllBarPositions","sizeList","barBandSize","bandSize","allBarPositions","len","realBarGap","initialValue","useFull","fullBarSize","sum","_entry$barSize","newRes","_offset","originalSize","getBarPositions","pos","selectBarPosition","selectStackedDataOfItem","selectBarStackGroups","selectStackGroups","combineStackedData","stackGroups","stackSeriesIdentifier","getStackSeriesIdentifier","stackGroup","stackedData","sd","selectBarRectangles","selectXAxisWithScale","selectYAxisWithScale","selectXAxisTicks","selectYAxisTicks","selectChartDataWithIndexesIfNotInPanorama","pickCells","_id","cells","axisViewBox","xAxisTicks","yAxisTicks","dataStartIndex","dataEndIndex","displayedData","computeBarRectangles","SetLegendPayload","legendPayload","GraphicalItemIdContext","RegisterGraphicalItemId","resolvedId","SetCartesianGraphicalItem","prevPropsRef","addCartesianGraphicalItem","replaceCartesianGraphicalItem","removeCartesianGraphicalItem","computeLegendPayloadFromBarData","legendType","inactive","getTooltipNameProp","getTooltipEntrySettings","strokeWidth","dataDefinedOnItem","nameKey","tooltipType","BarBackground","background","backgroundFromProps","allOtherBarProps","onItemClickFromProps","restOfAllOtherProps","onMouseEnterFromContext","onMouseLeaveFromContext","onClickFromContext","defaultZIndex","backgroundProps","barBackground","backgroundFromDataEntry","barRectangleProps","BarLabelListProvider","showLabels","rects","labelListEntries","BarRectangleWithActiveState","activeBar","baseProps","BarRectangleNeverActive","BarRectangles","_svgPropertiesNoEvent","RectanglesWithAnimation","previousRectanglesRef","prevData","isAnimating","setIsAnimating","handleAnimationEnd","handleAnimationStart","stepData","stackedBarStart","RenderRectangles","defaultMinPointSize","errorBarDataPointFormatter","dataPoint","errorVal","BarWithState","clipPath","defaultBarProps","BarImpl","types","childType","findAllByType","firstDataPoint","minPointSizeProp","numericAxis","stackedDomain","getBaseValueOfBar","truncateByDomain","baseValueScale","currentValueScale","getCateCoordinateOfBar","computedHeight","delta","_baseValueScale","_currentValueScale","BarFn","zAxisId","getNormalizedStackId","Bar","toPropertyKey","_typeof","iterator","isTypedArray","ArrayBuffer","isView","DataView","isIndex","isMatch","cloneDeep","selectMargin","symbol_observable_default","observable","randomString","substring","actionTypes_default","INIT","REPLACE","PROBE_UNKNOWN_ACTION","obj","enhancer","currentReducer","currentListeners","nextListeners","listenerIdCounter","isDispatching","ensureCanMutateNextListeners","listenerId","replaceReducer","nextReducer","outerSubscribe","observeState","observerAsObserver","reducerKeys","finalReducers","finalReducerKeys","shapeAssertionError","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","funcs","middlewares","createStore2","middlewareAPI","_len4","chain","PanoramaContext","MULTIPLY_OR_DIVIDE_REGEX","ADD_OR_SUBTRACT_REGEX","CSS_LENGTH_UNIT_REGEX","NUM_SPLIT_REGEX","CONVERSION_RATES","cm","mm","pt","pc","in","Q","px","FIXED_CSS_LENGTH_UNITS","STR_NAN","DecimalCSS","parse","str","_NUM_SPLIT_REGEX$exec","numStr","exec","num","test","NaN","convertToPx","other","subtract","multiply","divide","calculateArithmetic","expr","newExpr","_MULTIPLY_OR_DIVIDE_R","leftOperand","operator","rightOperand","lTs","rTs","replace","_ADD_OR_SUBTRACT_REGE","_leftOperand","_operator","_rightOperand","_lTs","_rTs","_result","PARENTHESES_REGEX","evaluateExpression","expression","parentheticalExpression","calculateParentheses","reduceCSSCalc","safeEvaluateExpression","BREAKING_SPACES","calculateWordWidths","words","wordsWithComputedWidth","word","spaceWidth","calculate","lineWidth","scaleToFit","currentLine","newLine","findLongestLine","checkOverflow","maxLines","tempText","getWordsWithoutCalculate","getWordsByLines","wordWidths","wcw","sw","calculateWordsByLines","initialWordsWithComputedWith","shouldLimitLines","originalResult","trimmedResult","iterations","middle","doesPrevOverflow","doesMiddleOverflow","DEFAULT_FILL","textDefaultProps","capHeight","lineHeight","_resolveDefaultProps","propsX","propsY","wordsByLines","dx","dy","textProps","startDy","transforms","mapper","getRectanglePath","maxRadius","ySign","xSign","newRadius","_newRadius","rectangleProps","prevWidthRef","animationIdInput","_svgPropertiesAndEven","otherPathProps","prevWidth","currWidth","_svgPropertiesAndEven2","graphicalItem","IS_UNSIGNED_INTEGER","MAX_SAFE_INTEGER","isInteger","DEFAULT_Y_AXIS_WIDTH","prop","toLowerCase","preObj","nextObj","series","order","s0","s1","stackValue","stackSeries","appendOffsetOfLegend","legendSettings","legendSize","boxWidth","boxHeight","getCoordinatesOfGrid","minValue","maxValue","syncWithTicks","hasMin","hasMax","getTicksOfAxis","isGrid","isAll","niceTicks","scaleContent","row","checkDomainOfScale","STACK_OFFSET_MAP","expand","none","stackOffsetNone","silhouette","wiggle","s2","si","sij0","s3","sk","getStackedData","offsetType","offsetAccessor","orderNone","offsetNone","oz","sz","shapeStack","stackOrderNone","publicStackId","getDomainOfStackGroups","group","flat","getDomainOfSingle","MIN_VALUE_REG","MAX_VALUE_REG","isBar","bandWidth","orderedTicks","cur","getTooltipEntry","nameFromItem","calculateCartesianTooltipPos","calculatePolarTooltipPos","rangeObj","pendingThis","pendingArgs","invoke","timeoutId","clearTimeout","isFirstCall","toNumber","toFinite","MAX_VALUE","appropriateMouseInteraction","chooseAppropriateMouseInteraction","uniqBy$1","iteratee$1","f","g","h","q","u","$$typeof","tooltipPayloadConfigurations","chartDataState","tooltipAxisDataKey","computedData","agg","_settings$dataKey","tooltipPayload","_getValueByDataKey","finalData","dataDefinedOnChart","selectFinalData","sliced","finalDataKey","finalNameKey","findEntryInArray","newSettings","cloneDeepWith","cloneDeepWithImpl","isArguments","resolvedPath","hasOwn","compareValues","isKey","orders","guard","getValueByNestedPath","preparedCriteria","criterion","original","getValueByCriterion","comparedResult","selectChartDataAndAlwaysIgnoreIndexes","dataState","_unused1","_unused2","throttleMs","chartLayoutSlice","layoutType","setChartSize","_action$payload$top","_action$payload$right","_action$payload$botto","_action$payload$left","cloneDeepWith$1","tags","customizer","cloned","numberTag","stringTag","booleanTag","copyProperties","argumentsTag","_taggedTemplateLiteral","freeze","raw","epsilon","tauEpsilon","append","strings","Path","digits","_x0","_y0","_x1","_y1","_append","appendRound","_templateObject","_templateObject2","_templateObject3","quadraticCurveTo","_templateObject4","bezierCurveTo","_templateObject5","arcTo","x21","y21","x01","y01","l01_2","_templateObject6","x20","y20","l21_2","l20_2","l21","l01","t01","t21","_templateObject8","_templateObject9","_templateObject7","a0","a1","ccw","cw","da","_templateObject0","_templateObject1","_templateObject10","_templateObject11","_templateObject12","RangeError","NOTHING","DRAFTABLE","DRAFT_STATE","die","_value$constructor","isMap","isSet","objectCtorString","cachedCtorStrings","Ctor","ctorString","Function","each","iter","strict","getArchtype","Reflect","thing","type_","propOrOldValue","latest","copy_","base_","shallowCopy","base","isPlain","descriptors","create","deep","isFrozen","dontMutateMethodOverride","currentScope","plugins","getPlugin","pluginKey","plugin","getCurrentScope","usePatchesInScope","scope","patchListener","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","drafts_","revokeDraft","parent_","enterScope","immer2","immer_","canAutoFreeze_","unfinalizedDrafts_","revoke_","revoked_","processResult","baseDraft","modified_","finalize","maybeFreeze","generateReplacementPatches_","rootScope","useStrictIteration","shouldUseStrictIteration","childValue","finalizeProperty","scope_","finalized_","resultEach","isSet2","generatePatches_","parentState","targetObject","rootPath","targetIsSet","childIsFrozen","assigned_","autoFreeze_","objectTraps","_desc$get","getDescriptorFromProto","draft_","readPropFromProto","peek","prepareCopy","createProxy","current2","markChanged","deleteProperty","owner","arrayTraps","useStrictShallowCopy_","parent","proxyMap_","proxySet_","isManual_","traps","revoke","proxy","Proxy","revocable","createProxyProxy","currentImpl","copy","immer","_this","useStrictIteration_","recipe","defaultBase","self","base2","hasError","ip","produceWithPatches","patches","inversePatches","autoFreeze","setAutoFreeze","useStrictShallowCopy","setUseStrictShallowCopy","createDraft","finishDraft","applyPatches","patch","op","applyPatchesImpl","applyPatches_","getTag","SetYAxisSettings","addYAxis","removeYAxis","YAxisImpl","cartesianAxisRef","selectYAxisSize","selectYAxisPosition","selectYAxisSettingsNoDefaults","axisComponent","updateYAxisWidth","yAxisDefaultProps","YAxisSettingsDispatcher","YAxisMemoComparator","YAxis","defaultPolarAngleAxisProps","defaultPolarRadiusAxisProps","implicitAngleAxis","implicitRadiusAxis","implicitRadialBarAngleAxis","implicitRadialBarRadiusAxis","selectAngleAxis","angleAxisId","selectRadiusAxis","radiusAxisId","selectPolarOptions","selectMaxRadius","selectInnerRadius","polarChartOptions","selectOuterRadius","selectAngleAxisRange","selectRadiusAxisRange","SVGElementPropKeys","isSvgElementPropKey","isDataAttribute","startsWith","filteredEntries","fromEntries","idCounter","percent","totalValue","validate","hasDuplicate","ary","specifiedKey","specifiedValue","charAt","toUpperCase","isNotNil","realProps","resolvedProps","dp","getSymbols","valueToClone","keyToClone","objectToClone","cloneValue","getTime","RegExp","flags","lastIndex","Buffer","isBuffer","subarray","SharedArrayBuffer","byteOffset","byteLength","File","Blob","cause","arrayTag","arrayBufferTag","dataViewTag","dateTag","float32ArrayTag","float64ArrayTag","int8ArrayTag","int16ArrayTag","int32ArrayTag","mapTag","objectTag","regexpTag","setTag","symbolTag","uint8ArrayTag","uint8ClampedArrayTag","uint16ArrayTag","uint32ArrayTag","isCloneableObject","descriptor","calculateActiveTickIndex","unsortedTicks","_ticks$length","before","after","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","_i","pickTooltipEventType","pickTrigger","_tooltipEventType","pickDefaultIndex","_trigger","selectActiveIndex","_tooltipInteractionSt","combineActivePolarProps","chartEvent","tooltipAxisType","tooltipAxisRange","orderedTooltipTicks","getActivePolarCoordinate","_angle","_radius","combineActiveCartesianProps","pointer","isInCartesianRange","getActiveCartesianCoordinate","initRange","initInterpolator","interpolator","InternMap","keyof","_intern","intern_get","intern_set","intern_delete","implicit","ordinal","unknown","band","step","ordinalRange","r0","r1","paddingInner","paddingOuter","rescale","reverse","ceil","sequence","rangeRound","pointish","e10","e5","e2","tickSpec","power","log10","pow","factor","i1","i2","inc","tickIncrement","tickStep","ascending","descending","bisector","compare1","compare2","lo","hi","mid","zero","number","ascendingBisect","bisectRight","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","trim","rgbn","Rgb","rgba","hsla","opacity","rgb_formatHex","hex","rgb_formatRgb","clampa","clampi","Hsl","hslConvert","clamph","clampt","hsl2rgb","m1","m2","basis","t1","v0","v1","v2","v3","t2","t3","define","channels","displayable","formatHex8","formatHsl","clamp","linear","gamma","nogamma","exponential","rgbGamma","colorRgb","rgbSpline","spline","colors","genericArray","nb","na","setTime","reA","reB","am","bm","bs","bi","one","string","date","numberArray","normalize","bimap","d0","d1","polymap","bisect","transformer","untransform","piecewise","interpolateValue","clamper","invert","interpolateNumber","interpolateRound","continuous","prefixExponent","re","formatSpecifier","specifier","FormatSpecifier","comma","precision","formatDecimalParts","toExponential","coefficient","exponent","%","toFixed","toLocaleString","toPrecision","formatRounded","locale","formatPrefix","prefixes","grouping","thousands","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","minus","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","i0","formatTrim","tickFormat","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","transformLog","log","transformExp","exp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","E","log2","logp","powp","z","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","square","radial","squared","unsquare","valueof","compareDefined","ascendingDefined","quickselect","swap","quantile","Float64Array","numbers","value0","quantileSorted","thresholds","threshold","invertExtent","quantiles","quantize","formatLocale","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","t0","timeInterval","floori","offseti","field","previous","millisecond","second","getMilliseconds","getUTCSeconds","timeMinute","getSeconds","getMinutes","utcMinute","setUTCSeconds","getUTCMinutes","timeHour","getHours","utcHour","setUTCMinutes","getUTCHours","timeDay","setHours","setDate","getDate","getTimezoneOffset","utcDay","setUTCHours","setUTCDate","getUTCDate","unixDay","timeWeekday","getDay","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","setMonth","getMonth","getFullYear","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","timeYear","setFullYear","utcYear","setUTCFullYear","ticker","year","month","week","day","hour","minute","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","H","M","S","L","utcDate","UTC","newDate","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","names","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","U","parseWeekNumberISO","V","parseWeekNumberMonday","W","parseFullYear","parseYear","parseZone","Z","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","time","timeWeek","timeSecond","utcTime","utcWeek","utcSecond","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","k21","r2","I","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","newParse","X","utcParse","defaultLocale","PLACE_HOLDER","isPlaceHolder","curry0","_curried","curryN","argsLength","restArgs","newArgs","shift","curry","lastArgs","_lastArgs","getDigitCount","Decimal","rangeStep","lt","newA","diff","getValidInterval","validMin","validMax","getFormatStep","roughStep","correctionFactor","lte","digitCount","digitCountValue","stepRatio","div","stepRatioScale","formatStep","mul","getTickOfSingleValue","isint","absVal","middleIndex","fns","firstFn","tailsFn","_calculateStep","tickMin","tickMax","sub","mod","belowCount","upCount","scaleCount","getNiceTickValues","cormin","cormax","_values","getTickValuesFixedDomain","pickAxisType","pickAxisId","_axisType","defaultNumericDomain","implicitZAxis","selectZAxisSettings","zAxis","selectBaseAxis","selectAxisSettings","some","selectAxisPredicate","axisPredicate","selectCartesianItemsSettings","selectStackedCartesianItemsSettings","selectCartesianItemsSettingsExceptStacked","selectCartesianGraphicalItemsData","graphicalItemsData","selectDisplayedData","flatMap","selectAllAppliedValues","isErrorBarRelevantForAxisType","makeNumber","makeDomain","attempt","isWellFormedNumberDomain","onlyAllowNumbers","selectDisplayedStackedData","stackOffsetType","itemsGroup","domainFromUserPreference","domainOfStackGroups","selectAllowsDataOverflow","_axisSettings$domain","allValues","selectDomainDefinition","selectDomainFromUserPreference","selectDomainOfStackGroups","domains","allDomains","lowerEnd","upperEnd","_errorBars$item$id","_axisSettings$dataKey","relevantErrorBars","valueByDataKey","errorDomain","appliedValue","eb","lowBound","highBound","errorValue","getErrorDomainByDataKey","localLower","localUpper","dataValueDomain","onlyAllowNumbersAndStringsAndDates","elements","ifOverflow","selectReferenceDotsByAxis","selectReferenceAreasByAxis","selectReferenceLinesByAxis","allCoords","selectReferenceDotsDomain","selectReferenceAreasDomain","_line$segment","segmentCoordinates","segment","extractXCoordinates","_line$segment2","extractYCoordinates","selectReferenceLinesDomain","selectReferenceElementsDomain","dotsDomain","linesDomain","areasDomain","domainDefinition","dataAndErrorBarsDomain","referenceElementsDomain","mergedDomains","parseNumericalUserDomain","selectNumericalDomain","expandDomain","allAppliedValues","numericalDomain","_displayedData$length","computeDomainOfTypeCategory","allDataSquished","selectAxisDomain","axisConfig","hasBar","chartType","d3Scales","selectRealScaleType","axisDomain","d3ScaleFunction","getD3ScaleFromType","selectNiceTicks","minFromDomain","minFromTicks","maxFromDomain","maxFromTicks","selectAxisDomainIncludingNiceTicks","selectSmallestDistanceBetweenValues","smallestDistanceBetweenValues","sortedValues","distance","selectCalculatedPadding","_1","_2","_3","smallestDistanceInPercent","rangeWidth","gap","halfBand","selectXAxisPadding","selectCalculatedXAxisPadding","xAxisSettings","calculated","_padding$left","_padding$right","selectYAxisPadding","selectCalculatedYAxisPadding","yAxisSettings","_padding$top","_padding$bottom","combineXAxisRange","selectBrushSettings","_axisId","brushPadding","combineYAxisRange","_selectZAxisSettings","selectAxisRangeWithReverse","combineRelevantErrorBarSettings","cartesianItemsSettings","allErrorBarSettings","compareIds","pickAxisOrientation","pickMirror","_orientation","selectAllXAxesWithOffsetType","selectAllXAxes","allAxes","selectAllYAxesWithOffsetType","selectAllYAxes","getXAxisSize","selectAllXAxesOffsetSteps","allAxesWithSameOffsetType","combineXAxisPositionStartingPoint","needSpace","selectAllYAxesOffsetSteps","getYAxisSize","combineYAxisPositionStartingPoint","selectXAxisOffsetSteps","allSteps","stepOfThisAxis","selectYAxisOffsetSteps","chartLayout","appliedValues","allData","av","selectDuplicateDomain","selectCategoricalDomain","selectAxisPropsNeededForCartesianGridTicksGenerator","selectCartesianAxisSettings","combineAxisTicks","ticksOrNiceTicks","combineGraphicalItemTicks","selectZAxisScale","allXAxes","allYAxes","ScaleHelper","rangeMin","rangeMax","bandAware","_offset2","isInRange","getAngledRectangleWidth","normalizedAngle","normalizeAngle","angleRadians","angleThreshold","atan","angledWidth","getEveryNthWithCondition","isVisible","tickPosition","getSize","_getNumberIntervalTic","getNumberIntervalTicks","candidates","sizeKey","unitSize","getTickSize","contentSize","getAngledTickWidth","boundaries","isWidth","getTickBoundaries","_ret","initialStart","stepsize","_loop","isShow","getEquidistantTicks","preserveEnd","tail","tailSize","tailGap","_loop2","getTicksStart","getTicksEnd","stackedGraphicalItems","tooltipAxisSettings","tooltipDataKey","knownItemsByDataKey","_item$data","resolvedData","stackIdentifier","tooltipValue","numericValue","regexIsDeepProp","regexIsPlainProp","isUnsafeProperty","adaptEventHandlers","newHandler","inputProps","getEventHandlerOfChild","originalHandler","depth","flooredDepth","recursive","currentDepth","consumers","defaultZIndexSet","zIndexSlice","registerZIndexPortal","unregisterZIndexPortal","isDefaultZIndex","selectLegendSettings","payloads","brushHeight","leftAxesOffset","rightAxesOffset","topAxesOffset","bottomAxesOffset","offsetH","selectChartViewBox","bigInt64ArrayTag","bigUint64ArrayTag","errorTag","functionTag","Background","fillOpacity","ry","LineItem","lineItem","lineItemProps","__","restOfFilteredProps","HorizontalGridLines","horizontal","horizontalPoints","otherLineItemProps","VerticalGridLines","vertical","verticalPoints","HorizontalStripes","horizontalFill","roundedSortedHorizontalPoints","unshift","colorIndex","VerticalStripes","verticalFill","roundedSortedVerticalPoints","defaultVerticalCoordinatesGenerator","defaultHorizontalCoordinatesGenerator","defaultCartesianGridProps","grid","CartesianGrid","propsIncludingDefaults","horizontalValues","verticalValues","verticalCoordinatesGenerator","horizontalCoordinatesGenerator","isHorizontalValues","generatorResult","isVerticalValues","_generatorResult","initialChartDataState","chartDataSlice","setComputedData","brushSettings","xAxisMap","yAxisMap","ONE","MAX_DIGITS","rounding","toExpNeg","toExpPos","LN10","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","mathpow","isDecimal","BASE","MAX_E","P","carry","xd","yd","pr","checkInt32","digitsToString","ws","indexOfLastWord","getZeroString","absoluteValue","comparedTo","cmp","xdL","ydL","decimalPlaces","dividedBy","dividedToIntegerBy","idiv","equals","getBase10Exponent","greaterThan","gt","greaterThanOrEqualTo","gte","isNegative","isneg","isPositive","ispos","isZero","lessThan","lessThanOrEqualTo","logarithm","wpr","ln","modulo","times","naturalExponential","naturalLogarithm","negated","neg","plus","squareRoot","rL","toDecimalPlaces","todp","rm","toInteger","toint","toPower","yIsInt","yn","truncate","toSignificantDigits","tosd","toJSON","multiplyInteger","temp","aL","bL","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","denominator","getLn10","zs","c0","numerator","parseDecimal","search","rd","doRound","xdi","xe","xLTy","isExp","ps","clone","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","cartesianAxisSlice","addZAxis","removeZAxis","history","widthHistory","newHistory","isSafeInteger","that","_context","Basis","BasisClosed","BasisOpen","areaStart","_line","areaEnd","lineStart","_point","lineEnd","_x2","_x3","_x4","_y2","_y3","_y4","Bump","LinearClosed","Linear","slope3","h0","h1","slope2","MonotoneX","MonotoneY","ReflectContext","Natural","controlPoints","Step","_t0","py","defined","curve","curveLinear","defined0","pointX","pointY","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","CURVE_FACTORIES","curveBasisClosed","curveBasisOpen","curveBasis","curveBumpX","curveBumpY","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","areaDefined","getX","getY","baseLine","connectNulls","curveFactory","getCurveFactory","formatPoints","areaPoints","shapeArea","_nullableLineFunction","shapeLine","nullableLineFunction","realPath","Events","EE","evt","_events","_eventsCount","clearEvent","EventEmitter","__proto__","eventNames","handlers","ee","listenerCount","a2","a3","a4","a5","removeAllListeners","prefixed","scatter","activeDot","shouldRenderInPortal","useIsInChartContext","zIndexPortal","panorama","rootViewBox","manyComponentsThrowErrorsIfOffsetIsUndefined","_useAppSelector2","_property","graphicalItemsSlice","addPolarGraphicalItem","removePolarGraphicalItem","_path","getWithPath","useId","useIdFallback","customId","generatedId","extendDomain","providedDomain","boundaryDomain","userDomain","finalMin","finalMax","providedMin","providedMax","candidate","dataDomain","_unused3","_match","_value","filterByDataKey","tpc","_tpc$settings","last$1","getPriority","aPriority","bPriority","getServerSnapshot","instRef","hasValue","memoizedSelector","nextSnapshot","hasMemo","memoizedSnapshot","currentSelection","memoizedSelection","nextSelection","maybeGetServerSnapshot"],"sourceRoot":""}