harshapitla/stackoverflow
0
1{"version":3,"file":"static/js/143.a66ce3c7.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/util/ReactUtils.js","../node_modules/recharts/es6/context/tooltipPortalContext.js","../node_modules/es-toolkit/compat/last.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/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/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/context/chartDataContext.js","../node_modules/recharts/es6/shape/Sector.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/axisSelectors.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/shape/Trapezoid.js","../node_modules/recharts/es6/util/ActiveShapeUtils.js","../node_modules/recharts/es6/util/useElementOffset.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/ReportChartProps.js","../node_modules/recharts/es6/component/LabelList.js","../node_modules/recharts/es6/state/optionsSlice.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/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/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/recharts/es6/state/selectors/pickAxisType.js","../node_modules/recharts/es6/state/keyboardEventsMiddleware.js","../node_modules/recharts/es6/container/Surface.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/util/payload/getUniqPayload.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/state/mouseEventsMiddleware.js","../node_modules/recharts/es6/util/excludeEventProps.js","../node_modules/recharts/es6/util/LRUCache.js","../node_modules/recharts/es6/util/DOMUtils.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/recharts/es6/state/selectors/touchSelectors.js","../node_modules/recharts/es6/state/touchEventsMiddleware.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/recharts/es6/state/selectors/selectActivePropsFromChartPointer.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/context/legendPortalContext.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/state/SetTooltipEntrySettings.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/recharts/es6/state/selectors/pickAxisId.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/es6/state/selectors/legendSelectors.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/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/recharts/es6/state/selectors/selectChartOffsetInternal.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/recharts/es6/state/ReportMainChartProps.js","../node_modules/es-toolkit/dist/compat/util/toNumber.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/zIndex/ZIndexPortal.js","../node_modules/recharts/es6/container/RootSurface.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/util/types.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/reduxDevtoolsJsonStringifyReplacer.js","../node_modules/recharts/es6/state/referenceElementsSlice.js","../node_modules/recharts/es6/state/brushSlice.js","../node_modules/recharts/es6/state/polarAxisSlice.js","../node_modules/recharts/es6/state/errorBarSlice.js","../node_modules/recharts/es6/state/store.js","../node_modules/recharts/es6/state/RechartsStoreProvider.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/selectTooltipPayloadSearcher.js","../node_modules/es-toolkit/dist/compat/_internal/tags.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/rootPropsSlice.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/util/getChartPointer.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/recharts/es6/state/polarOptionsSlice.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/recharts/es6/state/externalEventsMiddleware.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 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};","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","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}","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}","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}","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};","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};","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);","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});","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","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};","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}","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}","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 { 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 = [\"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 { 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;","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","// 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","'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};","export var pickAxisType = (_state, axisType) => axisType;","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});","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});","'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}","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}","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","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});","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});","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;","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});","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;","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 * 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;","import { createContext, useContext } from 'react';\nexport var LegendPortalContext = /*#__PURE__*/createContext(null);\nexport var useLegendPortal = () => useContext(LegendPortalContext);","/**\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};","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}","'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","export var pickAxisId = (_state, _axisType, axisId) => axisId;","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","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});","// 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};","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","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}));","'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};","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}","'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","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 * 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});","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});","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};","// 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","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';\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';\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}","'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;","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 _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","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;","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};","/**\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 { 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","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;","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","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});","'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","getDisplayName","Comp","displayName","name","lastChildren","lastResult","toArray","children","isArray","result","Children","child","isNullish","isFragment","concat","props","findAllByType","type","types","map","childType","get","indexOf","isClipDot","dot","Boolean","clipDot","TooltipPortalContext","createContext","useTooltipPortal","useContext","module","exports","_extends","assign","bind","hasOwnProperty","defaultFormatter","isNumOrStr","join","DefaultTooltipContent","separator","contentStyle","itemStyle","labelStyle","payload","formatter","itemSorter","wrapperClassName","labelClassName","label","labelFormatter","accessibilityLayer","finalStyle","margin","padding","backgroundColor","border","whiteSpace","finalLabelStyle","hasLabel","finalLabel","wrapperCN","clsx","labelCN","accessibilityAttributes","role","React","className","style","renderContent","items","sortBy","entry","finalFormatter","finalValue","finalName","formatted","finalItemStyle","display","paddingTop","paddingBottom","color","key","unit","CSS_CLASS_PREFIX","TOOLTIP_HIDDEN","visibility","getTooltipCSSClassName","coordinate","translateX","translateY","isNumber","getTooltipTranslateXY","allowEscapeViewBox","offsetTopLeft","position","reverseDirection","tooltipDimension","viewBoxDimension","negative","positive","viewBoxKey","max","TooltipBoundingBox","PureComponent","constructor","super","this","dismissed","dismissedAtCoordinate","event","_this$props$coordinat","_this$props$coordinat2","_this$props$coordinat3","_this$props$coordinat4","setState","componentDidMount","document","addEventListener","handleKeyDown","componentWillUnmount","removeEventListener","componentDidUpdate","_this$props$coordinat5","_this$props$coordinat6","render","active","animationDuration","animationEasing","hasPayload","isAnimationActive","useTranslate3d","wrapperStyle","lastBoundingBox","innerRef","hasPortalFromProps","cssClasses","cssProperties","tooltipBox","transform","getTransformStyle","getTooltipTranslate","positionStyles","transition","pointerEvents","outerStyle","xmlns","tabIndex","ref","_excluded","getPath","Cross","_objectWithoutPropertiesLoose","propertyIsEnumerable","_objectWithoutProperties","svgPropertiesAndEvents","d","getRadialCursorPoints","activeCoordinate","points","getCursorPoints","layout","isPolarCoordinate","innerPoint","outerPoint","useTooltipAxisBandSize","tooltipAxis","useAppSelector","selectTooltipAxis","selectTooltipAxisTicks","tooltipAxisScale","selectTooltipAxisScale","getBandSizeOfAxis","scale","RenderCursor","cursor","cursorComp","cursorProps","isValidElement","cloneElement","createElement","CursorInternal","_props$zIndex","restProps","preferredZIndex","index","tooltipAxisBandSize","tooltipEventType","activePayload","activeTooltipIndex","DefaultZIndexes","cursorLine","halfSize","stroke","fill","getCursorRectangle","Rectangle","cursorRectangle","Sector","Curve","extraClassName","svgPropertiesNoEventsFromUnknown","payloadIndex","ZIndexLayer","zIndex","Cursor","useOffsetInternal","useChartLayout","useChartName","defaultUniqBy","dataKey","emptyPayload","defaultTooltipProps","axisId","filterNull","Global","isSsr","trigger","Tooltip","outsideProps","_useAppSelector","resolveDefaultProps","activeFromProps","content","payloadUniqBy","shared","defaultIndex","portal","portalFromProps","dispatch","useAppDispatch","defaultIndexAsString","useEffect","setTooltipSettingsState","useViewBox","useAccessibilityLayer","useTooltipEventType","isActive","selectIsTooltipActive","payloadFromRedux","selectTooltipPayload","labelFromRedux","selectActiveLabel","selectActiveCoordinate","tooltipPortalFromContext","finalIsActive","updateBoundingBox","useElementOffset","useTooltipChartSynchronisation","tooltipPortal","finalPayload","getUniqPayload","hide","includeHidden","tooltipElement","createPortal","numberDomainEqualityCheck","a","b","toStringTag","toString","is","eventCenter","TOOLTIP_SYNC_EVENT","BRUSH_SYNC_EVENT","selectSynchronisedTooltipState","tooltip","syncInteraction","useTooltipSyncEventsListener","mySyncId","myEventEmitter","noop","listener","incomingSyncId","action","emitter","_action$payload","activeTick","syncMethodParam","isTooltipActive","activeLabel","activeDataKey","find","tick","validateChartX","validateChartY","syncAction","setSyncInteraction","sourceViewBox","_action$payload$coord","_x","_y","otherCoordinateProps","sourceX","sourceY","sourceWidth","sourceHeight","scaledCoordinate","on","off","useSynchronisedEventsFromOtherCharts","createEventEmitter","setDataStartEndIndexes","useBrushSyncEventsListener","selectTooltipDataKey","eventEmitterSymbol","tooltipState","isReceivingSynchronisation","emit","ChartDataContextProvider","chartData","isPanorama","useIsPanorama","setChartData","getTangentCircle","sign","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","asin","centerAngle","lineTangencyAngle","center","circleTangency","lineTangency","getSectorPath","getDeltaAngle","mathSign","tempEndAngle","outerStartPoint","outerEndPoint","path","innerStartPoint","innerEndPoint","defaultProps","forceCornerRadius","sectorProps","layerClass","deltaRadius","cr","getPercentValue","soct","solt","sot","eoct","eolt","eot","outerArcAngle","sict","silt","sit","eict","eilt","eit","innerArcAngle","getSectorWithCorner","initRange","domain","range","initInterpolator","interpolator","InternMap","Map","entries","keyof","_intern","set","intern_get","has","intern_set","delete","intern_delete","Set","valueOf","implicit","ordinal","unknown","_","slice","from","copy","band","step","bandwidth","ordinalRange","r0","r1","round","paddingInner","paddingOuter","align","rescale","reverse","start","stop","values","ceil","sequence","rangeRound","pointish","e10","e5","e2","tickSpec","count","power","log10","error","pow","factor","i1","i2","inc","ticks","tickIncrement","tickStep","ascending","NaN","descending","bisector","f","compare1","compare2","delta","lo","hi","mid","zero","number","ascendingBisect","bisectRight","factory","prototype","extend","parent","definition","create","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","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","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","m","l","trim","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","g","opacity","rgb_formatHex","hex","rgb_formatRgb","clampa","clampi","isNaN","h","s","Hsl","hslConvert","clamph","clampt","hsl2rgb","m1","m2","basis","t1","v0","v1","v2","v3","t2","t3","define","channels","displayable","formatHex8","formatHsl","k","clamp","linear","gamma","nogamma","exponential","constant","rgbGamma","end","colorRgb","rgbSpline","spline","colors","genericArray","nb","na","c","Date","setTime","reA","reB","source","am","bm","bs","bi","lastIndex","q","one","string","date","ArrayBuffer","isView","DataView","object","numberArray","identity","normalize","bimap","interpolate","d0","d1","polymap","j","bisect","target","transformer","untransform","piecewise","output","input","interpolateValue","clamper","invert","interpolateNumber","interpolateRound","u","continuous","prefixExponent","re","formatSpecifier","specifier","match","Error","FormatSpecifier","symbol","comma","precision","formatDecimalParts","p","toExponential","coefficient","exponent","%","toFixed","toLocaleString","replace","toPrecision","formatRounded","toUpperCase","locale","formatPrefix","prefixes","grouping","thousands","group","substring","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","percent","minus","nan","newFormat","formatTypes","prefix","test","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","i0","formatTrim","charCodeAt","Infinity","tickFormat","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","interval","x0","transformLog","log","transformExp","exp","transformLogn","transformExpn","pow10","isFinite","reflect","loggish","logs","pows","base","E","log2","logp","powp","v","z","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","square","radial","squared","unsquare","valueof","compareDefined","compare","ascendingDefined","quickselect","array","sd","swap","quantile","Float64Array","numbers","value0","subarray","quantileSorted","thresholds","threshold","invertExtent","sort","quantiles","quantize","formatLocale","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","t0","timeInterval","floori","offseti","field","previous","every","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","w","parseWeekdayNumberMonday","parseWeekNumberSunday","U","parseWeekNumberISO","V","parseWeekNumberMonday","W","parseFullYear","parseYear","parseZone","Z","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","Q","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","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","charAt","newParse","parse","X","utcParse","defaultLocale","PLACE_HOLDER","isPlaceHolder","val","curry0","fn","_curried","curryN","argsLength","arg","_len2","restArgs","_key2","newArgs","shift","curry","begin","arr","split","memoize","lastArgs","_len4","_key4","_lastArgs","getDigitCount","Decimal","toNumber","rangeStep","num","lt","add","newA","diff","getValidInterval","validMin","validMax","getFormatStep","roughStep","allowDecimals","correctionFactor","lte","digitCount","digitCountValue","stepRatio","div","stepRatioScale","formatStep","mul","getTickOfSingleValue","tickCount","middle","isint","absVal","middleIndex","_len3","_key3","fns","firstFn","tailsFn","reduce","res","compose","_calculateStep","tickMin","tickMax","sub","mod","belowCount","upCount","scaleCount","getNiceTickValues","cormin","cormax","_values","getTickValuesFixedDomain","defaultNumericDomain","implicitXAxis","allowDataOverflow","allowDuplicatedCategory","id","minTickGap","mirror","orientation","tickFormatter","selectXAxisSettingsNoDefaults","cartesianAxis","xAxis","selectXAxisSettings","axis","implicitYAxis","DEFAULT_Y_AXIS_WIDTH","selectYAxisSettingsNoDefaults","yAxis","selectYAxisSettings","implicitZAxis","selectZAxisSettings","zAxis","selectBaseAxis","axisType","selectAngleAxis","selectRadiusAxis","selectAxisSettings","selectHasBar","graphicalItems","cartesianItems","some","item","polarItems","itemAxisPredicate","xAxisId","yAxisId","zAxisId","angleAxisId","radiusAxisId","selectUnfilteredCartesianItems","selectAxisPredicate","createSelector","pickAxisType","pickAxisId","combineGraphicalItemsSettings","axisPredicate","selectCartesianItemsSettings","memoizeOptions","resultEqualityCheck","emptyArraysAreEqualCheck","selectStackedCartesianItemsSettings","isStacked","filterGraphicalNotStackedItems","stackId","selectCartesianItemsSettingsExceptStacked","combineGraphicalItemsData","data","flat","selectCartesianGraphicalItemsData","combineDisplayedData","graphicalItemsData","dataStartIndex","dataEndIndex","selectDisplayedData","selectChartDataWithIndexesIfNotInPanorama","combineAppliedValues","getValueByDataKey","flatMap","selectAllAppliedValues","isErrorBarRelevantForAxisType","errorBar","direction","makeNumber","isWellBehavedNumber","makeDomain","attempt","isWellFormedNumberDomain","onlyAllowNumbers","isNotNil","selectTooltipAxisType","selectTooltipAxisId","selectTooltipAxisDataKey","selectDisplayedStackedData","combineDisplayedStackedData","combineStackGroups","displayedData","stackOffsetType","itemsGroup","acc","fromEntries","dataKeys","getStackSeriesIdentifier","stackedData","getStackedData","selectStackGroups","combineDomainOfStackGroups","stackGroups","domainFromUserPreference","domainOfStackGroups","getDomainOfStackGroups","selectAllowsDataOverflow","getDomainDefinition","_axisSettings$domain","allValues","selectDomainDefinition","selectDomainFromUserPreference","numericalDomainSpecifiedWithoutRequiringData","selectDomainOfStackGroups","selectChartDataWithIndexes","selectAllErrorBarSettings","errorBars","mergeDomains","domains","allDomains","combineDomainOfAllAppliedNumericalValuesIncludingErrorValues","lowerEnd","upperEnd","_errorBars$item$id","_axisSettings$dataKey","relevantErrorBars","valueByDataKey","errorDomain","appliedValue","eb","lowBound","highBound","errorValue","getErrorDomainByDataKey","localLower","localUpper","dataValueDomain","selectDomainOfAllAppliedNumericalValuesIncludingErrorValues","onlyAllowNumbersAndStringsAndDates","selectReferenceDots","referenceElements","dots","filterReferenceElements","elements","el","ifOverflow","selectReferenceDotsByAxis","selectReferenceAreas","areas","selectReferenceAreasByAxis","selectReferenceLines","lines","selectReferenceLinesByAxis","combineDotsDomain","allCoords","selectReferenceDotsDomain","combineAreasDomain","area","selectReferenceAreasDomain","combineLinesDomain","line","_line$segment","segmentCoordinates","segment","extractXCoordinates","_line$segment2","extractYCoordinates","selectReferenceLinesDomain","selectReferenceElementsDomain","dotsDomain","linesDomain","areasDomain","combineNumericalDomain","domainDefinition","dataAndErrorBarsDomain","referenceElementsDomain","mergedDomains","parseNumericalUserDomain","selectNumericalDomain","selectChartLayout","expandDomain","combineAxisDomain","allAppliedValues","numericalDomain","_displayedData$length","isCategorical","isCategoricalAxis","computeDomainOfTypeCategory","allDataSquished","categoricalDomain","hasDuplicate","selectAxisDomain","combineRealScaleType","axisConfig","hasBar","chartType","upperFirst","d3Scales","selectRealScaleType","combineScaleFunction","realScaleType","axisDomain","d3ScaleFunction","getD3ScaleFromType","checkDomainOfScale","combineNiceTicks","selectNiceTicks","combineAxisDomainWithNiceTicks","niceTicks","minFromDomain","minFromTicks","maxFromDomain","maxFromTicks","selectAxisDomainIncludingNiceTicks","selectSmallestDistanceBetweenValues","smallestDistanceBetweenValues","sortedValues","distance","selectCalculatedPadding","selectChartOffsetInternal","_1","_2","_3","smallestDistanceInPercent","rangeWidth","gap","halfBand","selectXAxisPadding","selectCalculatedXAxisPadding","xAxisSettings","calculated","_padding$left","_padding$right","selectYAxisPadding","selectCalculatedYAxisPadding","yAxisSettings","_padding$top","_padding$bottom","combineXAxisRange","selectBrushDimensions","selectBrushSettings","_state","_axisId","brushDimensions","brushPadding","combineYAxisRange","selectAxisRange","_selectZAxisSettings","selectAngleAxisRange","selectRadiusAxisRange","selectAxisRangeWithReverse","selectAxisScale","combineRelevantErrorBarSettings","cartesianItemsSettings","allErrorBarSettings","compareIds","pickAxisOrientation","pickMirror","_orientation","selectAllXAxesWithOffsetType","selectAllXAxes","allAxes","selectAllYAxesWithOffsetType","selectAllYAxes","getXAxisSize","selectXAxisSize","selectAllXAxesOffsetSteps","selectChartHeight","chartHeight","allAxesWithSameOffsetType","steps","axisSize","combineXAxisPositionStartingPoint","needSpace","selectAllYAxesOffsetSteps","selectChartWidth","chartWidth","getYAxisSize","combineYAxisPositionStartingPoint","selectXAxisPosition","selectXAxisOffsetSteps","allSteps","stepOfThisAxis","selectYAxisPosition","selectYAxisOffsetSteps","selectYAxisSize","selectCartesianAxisSize","combineDuplicateDomain","chartLayout","appliedValues","allData","av","selectDuplicateDomain","combineCategoricalDomain","selectCategoricalDomain","selectAxisPropsNeededForCartesianGridTicksGenerator","selectCartesianAxisSettings","duplicateDomain","selectTicksOfAxis","combineAxisTicks","offsetForBand","ticksOrNiceTicks","scaleContent","row","selectTicksOfGraphicalItem","combineGraphicalItemTicks","selectAxisWithScale","selectZAxisScale","selectZAxisWithScale","_axisType","selectChartDirection","allXAxes","allYAxes","noopDispatch","context","RechartsReduxContext","store","addNestedSubNoop","refEquality","selector","useSyncExternalStoreWithSelector","subscription","addNestedSub","getState","alpha","needContinue","to","calStepperVals","easing","preVals","nextStepVals","mapObject","newX","newV","velocity","createStepperUpdate","interKeys","timeoutController","preTime","stepperStyle","stopAnimation","stepperUpdate","now","dt","setTimeout","_stopAnimation","duration","getIntersectionKeys","isStepper","beginTime","timingStyle","timingUpdate","currStyle","_stopAnimation2","createTimingUpdate","ACCURACY","cubicBezierFactor","c1","c2","evaluatePolynomial","params","param","pre","curr","cubicBezier","createBezierEasing","curveX","curveY","derCurveX","newParams","rangeValue","bezier","_t","evalT","derVal","configBezier","_easing$","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","subscribe","_handleChange","getTimeoutController","createAnimateManager","AnimationManagerContext","defaultJavascriptAnimateProps","canBegin","onAnimationEnd","onAnimationStart","JavascriptAnimate","animationManager","animationId","animationManagerFromProps","contextAnimationManager","useMemo","useAnimationManager","useState","stopJSAnimation","useRef","startAnimation","configUpdate","onAnimationActive","current","isObject","getTrapezoidPath","upperWidth","lowerWidth","widthGap","isUpdateAnimationActive","animationBegin","Trapezoid","trapezoidProps","pathRef","totalLength","setTotalLength","prevUpperWidthRef","prevLowerWidthRef","prevHeightRef","prevXRef","prevYRef","useAnimationId","getTotalLength","pathTotalLength","_unused","prevUpperWidth","prevLowerWidth","prevHeight","prevX","prevY","getTransitionVal","currUpperWidth","currLowerWidth","currHeight","currY","animationStyle","strokeDasharray","defaultPropTransformer","option","ShapeSelector","shapeType","elementProps","isSymbolsProps","Symbols","getPropsFromShapeOption","Shape","shape","propTransformer","activeClassName","isPlainObject","nextProps","Layer","EPS","extraDependencies","setLastBoundingBox","useCallback","node","rect","getBoundingClientRect","box","calculateChartDimensions","containerWidth","containerHeight","aspect","maxHeight","calculatedWidth","isPercent","calculatedHeight","bothOverflow","overflow","overflowX","overflowY","noStyle","getInnerDivStyle","isWidthPercent","isHeightPercent","ResponsiveContainerContext","ResponsiveContainerContextProvider","size","isPositiveNumber","isAcceptableSize","Provider","useResponsiveContainerContext","SizeDetectorContainer","forwardRef","initialDimension","minWidth","minHeight","debounce","onResize","containerRef","onResizeRef","useImperativeHandle","sizes","setSizes","setContainerSize","newWidth","newHeight","prevState","roundedWidth","roundedHeight","ResizeObserver","_onResizeRef$current","contentRect","throttle","trailing","leading","observer","observe","disconnect","ResponsiveContainer","responsiveContainerContext","getDefaultWidthAndHeight","isLength","require","isArrayLike","debounce$1","func","debounceMs","maxWait","edges","pendingAt","_debounced","debounced","cancel","schedule","flush","combineActiveTooltipIndex","tooltipInteraction","desiredIndex","indexAsNumber","upperLimit","toKey","toPath","deepKey","quoteChar","bracket","char","ReportChartProps","updateOptions","_excluded2","defaultAccessor","last","CartesianLabelListContext","CartesianLabelListContextProvider","PolarLabelListContext","PolarLabelListContextProvider","LabelList","valueAccessor","clockWise","textBreakAll","others","cartesianData","polarData","_restProps$fill","idProps","Label","parentViewBox","LabelListFromLabelProp","isLabelContentAFunction","arrayTooltipSearcher","strIndex","numIndex","initialState","tooltipPayloadSearcher","defaultTooltipEventType","optionsSlice","createSlice","reducers","optionsReducer","reducer","actions","atan2","pi","tau","draw","moveTo","arc","lineTo","closePath","tan30","tan30_2","kr","kx","ky","sqrt3","y0","symbolFactories","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","sizeType","realType","filteredProps","symbolFactory","getSymbolFactory","withPath","buffer","circle","shapeSymbol","calculateAreaSize","registerSymbol","createThunkMiddleware","extraArgument","next","thunk","withExtraArgument","composeWithDevTools","window","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","__REDUX_DEVTOOLS_EXTENSION__","createAction","prepareAction","actionCreator","prepared","formatProdErrorMessage","meta","isAction","Tuple","_Tuple","setPrototypeOf","species","prepend","freezeDraftable","isDraftable","produce","getOrInsertComputed","compute","buildGetDefaultMiddleware","immutableCheck","serializableCheck","actionCreatorCheck","middlewareArray","thunkMiddleware","SHOULD_AUTOBATCH","prepareAutoBatched","createQueueWithTimer","timeout","notify","autoBatchEnhancer","notifying","shouldNotifyAtEndOfTick","notificationQueued","listeners","queueCallback","queueMicrotask","queueNotification","notifyListeners","listener2","unsubscribe","wrappedListener","_action$meta","buildGetDefaultEnhancers","middlewareEnhancer","autoBatch","enhancerArray","configureStore","getDefaultMiddleware","middleware","devTools","duplicateMiddlewareCheck","preloadedState","enhancers","rootReducer","finalMiddleware","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","reducerName","reducerDefinition","reducerDetails","createNotation","isAsyncThunkSliceReducerDefinition","maybeReducerWithPrepare","prepareCallback","isCaseReducerWithPrepareDefinition","handleNormalReducerDefinition","_ref6","handleThunkCaseReducerDefinition","selectSelf","injectedSelectorCache","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","once","abortControllerWithReason","abortController","reason","signal","aborted","abort","validateActive","raceWithSignal","cleanup","Promise","resolve","reject","notifyRejection","finally","then","createPause","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","trackExecutingListener","fork","throwIfCancelled","listenerError","raisedBy","all","_executingListeners$g2","untrackExecutingListener","clearListenerMiddleware","createClearListenerMiddleware","clear","originalState","currentState","listenerEntries","runListener","predicateError","clearListeners","assertIsFunction","errorMessage","ensureIsArray","getDependencies","createSelectorArgs","dependencies","itemTypes","assertIsArrayOfFunctions","getPrototypeOf","Ref","WeakRef","deref","createCacheNode","weakMapMemoize","fnNode","resultsCount","memoized","cacheNode","objectCache","objectNode","primitiveCache","primitiveNode","terminatedNode","_lastResult$deref","_lastResult","_lastResult$deref2","lastResultValue","clearCache","resetResultsCount","createSelectorCreator","memoizeOrOptions","memoizeOptionsFromArgs","createSelectorCreatorOptions","createSelector2","recomputations","dependencyRecomputations","directlyPassedOptions","resultFunc","pop","combinedOptions","argsMemoize","argsMemoizeOptions","devModeChecks","finalMemoizeOptions","finalArgsMemoizeOptions","memoizedResultFunc","inputSelectorResults","inputSelectorArgs","collectInputSelectorResults","resetDependencyRecomputations","resetRecomputations","createStructuredSelector","inputSelectorsObject","selectorCreator","assertIsObject","inputSelectorKeys","structuredSelector","composition","getSliced","startIndex","endIndex","isObjectLike","isArrayLikeObject","isPrimitive","eq","isMatchWithInternal","stack","isArrayMatch","sourceValue","isMapMatch","isSetMatch","isObjectMatch","countedIndex","sourceItem","found","matches","isMatchWith","doesMatch","objValue","srcValue","isEqual","orderBy","flatten","isIterateeCall","collection","criteria","selectDefaultTooltipEventType","selectValidateTooltipEventTypes","validateTooltipEventTypes","combineTooltipEventType","eventType","includes","selectTooltipEventType","objectIs","useLayoutEffect","useDebugValue","checkIfSnapshotChanged","inst","latestGetSnapshot","getSnapshot","nextValue","shim","_useState","forceUpdate","useSyncExternalStore","selectChartOffset","offsetInternal","selectPlotArea","usePlotArea","useActiveTooltipDataPoints","selectActiveTooltipDataPoints","keyDownAction","focusAction","keyboardEventsMiddleware","keyboardInteraction","currentIndex","selectTooltipDisplayedData","nextIndex","selectCoordinateForDefaultIndex","setKeyboardInteraction","_coordinate","_action","Surface","title","desc","svgView","isDeepKey","combineCoordinateForDefaultIndex","tooltipConfigurations","firstConfiguration","maybePosition","positions","uniqBy","CartesianLabelContext","CartesianLabelContextProvider","useCartesianLabelContext","labelChildContext","chartContext","cartesianViewBoxToTrapezoid","PolarLabelContext","usePolarLabelContext","selectPolarViewBox","getLabel","renderRadialLabel","labelProps","attrs","labelAngle","deltaAngle","startPoint","endPoint","uniqueId","dominantBaseline","xlinkHref","getAttrsOfPolarLabel","midAngle","textAnchor","verticalAnchor","isPolar","getAttrsOfCartesianLabel","parentViewBoxFromProps","upperX","lowerX","middleX","midHeightWidth","centerX","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","_attrs2","_attrs3","sizeAttrs","defaultLabelProps","outerProps","positionAttrs","viewBoxFromProps","labelRef","polarViewBox","cartesianViewBox","propsWithViewBox","propsWithoutLabelRef","Text","isValidTextAnchor","breakAll","parseLabel","commonProps","CartesianLabelFromLabelProp","_Object$getOwnPropert","tag","proto","selectTooltipAxisRealScaleType","selectAllUnfilteredGraphicalItems","selectTooltipAxisPredicate","selectAllGraphicalItemsSettings","selectAllStackedGraphicalItemsSettings","selectTooltipGraphicalItemsData","selectTooltipStackedData","selectAllTooltipAppliedValues","selectTooltipAxisDomainDefinition","selectTooltipDataOverflow","selectTooltipDomainFromUserPreferences","selectAllStackedGraphicalItems","selectTooltipStackGroups","selectTooltipDomainOfStackGroups","selectTooltipItemsSettingsExceptStacked","selectReferenceDotsByTooltipAxis","selectTooltipReferenceDotsDomain","selectReferenceAreasByTooltipAxis","selectTooltipReferenceAreasDomain","selectReferenceLinesByTooltipAxis","selectTooltipReferenceLinesDomain","selectTooltipReferenceElementsDomain","selectTooltipNumericalDomain","selectTooltipAxisDomain","selectTooltipNiceTicks","selectTooltipAxisDomainIncludingNiceTicks","selectTooltipAxisRange","selectTooltipAxisRangeWithReverse","selectTooltipDuplicateDomain","selectTooltipCategoricalDomain","combineTicksOfTooltipAxis","settings","validateTooltipEventType","selectTooltipTrigger","selectDefaultIndex","selectTooltipInteractionState","selectTooltipState","combineTooltipInteractionState","selectActiveTooltipIndex","selectActiveTooltipDataKey","selectTooltipPayloadConfigurations","combineTooltipPayloadConfigurations","selectTooltipCoordinateForDefaultIndex","selectTooltipPayloadSearcher","selectActiveTooltipCoordinate","tooltipInteractionState","defaultIndexCoordinate","selectActiveTooltipPayload","combineTooltipPayload","dataPoints","property","matchesProperty","iteratee","noInteraction","itemInteraction","click","hover","axisInteraction","tooltipItemPayloads","tooltipSlice","addTooltipEntrySettings","castDraft","removeTooltipEntrySettings","splice","setActiveMouseOverItemIndex","mouseLeaveChart","mouseLeaveItem","setActiveClickItemIndex","setMouseOverAxisIndex","setMouseClickAxisIndex","tooltipReducer","isSymbol","legendSlice","verticalAlign","setLegendSize","setLegendSettings","addLegendPayload","removeLegendPayload","legendReducer","prevProps","__esModule","selectZIndexPortalId","zIndexMap","_zIndex","panoramaElementId","elementId","selectAllRegisteredZIndexes","allNumbers","zIndexStr","arrayContentsAreEqualCheck","_value$valueOf","mouseClickAction","mouseClickMiddleware","mousePointer","activeProps","selectActivePropsFromChartPointer","getChartPointer","mouseMoveAction","mouseMoveMiddleware","EventKeys","isEventKey","currentConfig","cacheSize","enableCache","stringCache","maxSize","cache","firstKey","SPAN_STYLE","MEASUREMENT_SPAN_ID","measureTextWithDOM","text","measurementSpan","getElementById","setAttribute","body","appendChild","textContent","getStringSize","cacheKey","fontSize","fontFamily","fontWeight","fontStyle","letterSpacing","textTransform","createCacheKey","cachedResult","toPropertyKey","selectAllTooltipPayloadConfiguration","selectTooltipCoordinate","tooltipIndex","_dataKey","_tooltipIndex","allTooltipConfigurations","mostRelevantTooltipConfiguration","tooltipConfiguration","touchEventAction","touchEventMiddleware","touchEvent","touches","clientX","clientY","currentTarget","_target$getAttribute","touch","elementFromPoint","getAttribute","itemIndex","DATA_ITEM_INDEX_ATTRIBUTE_NAME","DATA_ITEM_DATAKEY_ATTRIBUTE_NAME","_typeof","iterator","isTypedArray","isIndex","isMatch","cloneDeep","selectContainerScale","selectMargin","pickChartPointer","chartPointer","selectOrderedTooltipTicks","combineActiveProps","symbol_observable_default","observable","randomString","actionTypes_default","INIT","REPLACE","PROBE_UNKNOWN_ACTION","obj","enhancer","currentReducer","currentListeners","nextListeners","listenerIdCounter","isDispatching","ensureCanMutateNextListeners","isSubscribed","listenerId","replaceReducer","nextReducer","outerSubscribe","observeState","observerAsObserver","reducerKeys","finalReducers","finalReducerKeys","shapeAssertionError","assertReducerShape","hasChanged","nextState","previousStateForKey","nextStateForKey","funcs","middlewares","createStore2","middlewareAPI","chain","PanoramaContext","MULTIPLY_OR_DIVIDE_REGEX","ADD_OR_SUBTRACT_REGEX","CSS_LENGTH_UNIT_REGEX","NUM_SPLIT_REGEX","CONVERSION_RATES","cm","mm","pt","pc","in","px","FIXED_CSS_LENGTH_UNITS","STR_NAN","DecimalCSS","str","_NUM_SPLIT_REGEX$exec","numStr","convertToPx","other","subtract","multiply","divide","calculateArithmetic","expr","newExpr","_MULTIPLY_OR_DIVIDE_R","leftOperand","operator","rightOperand","lTs","rTs","_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","prev","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","LegendPortalContext","useLegendPortal","graphicalItem","IS_UNSIGNED_INTEGER","MAX_SAFE_INTEGER","isInteger","prop","preObj","nextObj","series","order","s0","s1","stackValue","stackSeries","defaultValue","appendOffsetOfLegend","legendSettings","legendSize","boxWidth","boxHeight","getCoordinatesOfGrid","minValue","maxValue","syncWithTicks","hasMin","hasMax","getTicksOfAxis","isGrid","isAll","len","first","truncateByDomain","STACK_OFFSET_MAP","expand","none","stackOffsetNone","silhouette","wiggle","s2","si","sij0","s3","sk","offsetType","offsetAccessor","orderNone","offsetNone","oz","sz","shapeStack","stackOrderNone","getNormalizedStackId","publicStackId","getCateCoordinateOfLine","bandSize","matchedTick","findEntryInArray","getCateCoordinateOfBar","getBaseValueOfBar","numericAxis","getDomainOfSingle","MIN_VALUE_REG","MAX_VALUE_REG","isBar","bandWidth","orderedTicks","cur","getTooltipEntry","tooltipEntrySettings","getTooltipNameProp","nameFromItem","calculateCartesianTooltipPos","calculatePolarTooltipPos","rangeObj","pendingThis","pendingArgs","invoke","timeoutId","clearTimeout","isFirstCall","toFinite","MAX_VALUE","appropriateMouseInteraction","chooseAppropriateMouseInteraction","uniqBy$1","iteratee$1","$$typeof","tooltipPayloadConfigurations","chartDataState","tooltipAxisDataKey","computedData","agg","_settings$dataKey","tooltipPayload","_getValueByDataKey","dataDefinedOnItem","finalData","dataDefinedOnChart","selectFinalData","sliced","finalDataKey","finalNameKey","nameKey","newSettings","SetTooltipEntrySettings","cloneDeepWith","cloneDeepWithImpl","isArguments","resolvedPath","hasOwn","compareValues","isKey","orders","guard","getValueByNestedPath","preparedCriteria","criterion","original","getValueByCriterion","comparedResult","selectChartDataAndAlwaysIgnoreIndexes","dataState","_unused1","_unused2","throttleMs","chartLayoutSlice","layoutType","setLayout","setChartSize","setMargin","_action$payload$top","_action$payload$right","_action$payload$botto","_action$payload$left","setScale","chartLayoutReducer","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","selectLegendSettings","legend","selectLegendSize","selectLegendPayload","payloads","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","isPlain","descriptors","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_","proxyMap_","proxySet_","isManual_","traps","revoke","proxy","Proxy","revocable","createProxyProxy","currentImpl","immer","_this","useStrictIteration_","recipe","defaultBase","self","base2","hasError","ip","produceWithPatches","patches","inversePatches","autoFreeze","setAutoFreeze","useStrictShallowCopy","setUseStrictShallowCopy","createDraft","finishDraft","applyPatches","patch","op","applyPatchesImpl","applyPatches_","getTag","devToolsEnabled","defaultPolarAngleAxisProps","defaultPolarRadiusAxisProps","implicitAngleAxis","implicitRadiusAxis","implicitRadialBarAngleAxis","implicitRadialBarRadiusAxis","polarAxis","angleAxis","radiusAxis","selectPolarOptions","polarOptions","selectMaxRadius","selectInnerRadius","polarChartOptions","selectOuterRadius","SVGElementPropKeys","isSvgElementPropKey","isDataAttribute","startsWith","svgPropertiesNoEvents","filteredEntries","idCounter","totalValue","validate","ary","specifiedKey","specifiedValue","getLinearRegression","xsum","ysum","xysum","xxsum","xmin","xmax","xcurrent","ycurrent","realProps","resolvedProps","dp","getSymbols","valueToClone","keyToClone","objectToClone","cloneValue","getTime","flags","Buffer","isBuffer","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","brush","brushHeight","leftAxesOffset","rightAxesOffset","topAxesOffset","bottomAxesOffset","offsetH","offsetWidth","offsetHeight","selectChartViewBox","selectAxisViewBox","calculateActiveTickIndex","unsortedTicks","_ticks$length","before","after","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","_i","pickTooltipEventType","pickTrigger","_tooltipEventType","pickDefaultIndex","_trigger","selectActiveIndex","_tooltipInteractionSt","combineActivePolarProps","chartEvent","tooltipAxisType","tooltipAxisRange","orderedTooltipTicks","pos","getActivePolarCoordinate","_angle","_radius","combineActiveCartesianProps","pointer","isInCartesianRange","getActiveCartesianCoordinate","ReportMainChartProps","stackedGraphicalItems","tooltipAxisSettings","tooltipDataKey","knownItemsByDataKey","_item$data","resolvedData","stackIdentifier","tooltipValue","numericValue","regexIsDeepProp","regexIsPlainProp","isUnsafeProperty","ZIndexSvgPortal","portalId","useUniqueId","registerZIndexPortalId","unregisterZIndexPortalId","AllZIndexPortals","allRegisteredZIndexes","allNegativeZIndexes","allPositiveZIndexes","FULL_WIDTH_AND_HEIGHT","MainChartSurface","useChartWidth","useChartHeight","hasAccessibilityLayer","otherAttributes","BrushPanoramaSurface","RootSurface","rest","EventSynchronizer","getNumberOrZero","parsed","ResponsiveDiv","_props$style","_props$style2","observerRef","ReportChartSize","ReadSizeOnceDiv","StaticDiv","NonResponsiveDiv","RechartsWrapper","heightFromProps","onClick","onContextMenu","onDoubleClick","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","widthFromProps","responsive","dispatchTouchEvents","setTooltipPortal","legendPortal","setLegendPortal","setScaleRef","setRef","newScale","useReportScale","responsiveContainerCalculations","myOnClick","externalEventAction","handler","reactEvent","myOnMouseEnter","myOnMouseLeave","myOnMouseMove","onFocus","onKeyDown","myOnContextMenu","myOnDoubleClick","myOnMouseDown","myOnMouseUp","myOnTouchStart","myOnTouchMove","myOnTouchEnd","WrapperDiv","getWrapperDivComponent","ClipPathIdContext","ClipPathProvider","clipPathId","plotArea","CategoricalChart","compact","adaptEventHandlers","newHandler","inputProps","adaptEventsOfChild","getEventHandlerOfChild","originalHandler","isNonEmptyArray","defaultNoopBatch","nullListeners","createSubscription","parentSub","subscriptionsAmount","selfSubscribed","handleChangeWrapper","onStateChange","trySubscribe","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","reduxDevtoolsJsonStringifyReplacer","HTMLElement","tagName","referenceElementsSlice","addDot","removeDot","findIndex","addArea","removeArea","addLine","removeLine","referenceElementsReducer","brushSlice","setBrushSettings","brushReducer","polarAxisSlice","addRadiusAxis","removeRadiusAxis","addAngleAxis","removeAngleAxis","polarAxisReducer","errorBarSlice","addErrorBar","itemId","replaceErrorBar","removeErrorBar","errorBarReducer","cartesianAxisReducer","chartDataReducer","graphicalItemsReducer","polarOptionsReducer","rootPropsReducer","zIndexReducer","createRechartsStore","externalEventsMiddleware","serialize","replacer","RechartsStoreProvider","reduxStoreName","storeRef","nonNullContext","depth","flooredDepth","recursive","currentDepth","consumers","defaultZIndexSet","zIndexSlice","registerZIndexPortal","unregisterZIndexPortal","isDefaultZIndex","bigInt64ArrayTag","bigUint64ArrayTag","errorTag","functionTag","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","unshift","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","sum","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","baseValue","rootPropsSlice","_action$payload$barGa","cartesianAxisSlice","addXAxis","removeXAxis","addYAxis","removeYAxis","addZAxis","removeZAxis","updateYAxisWidth","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","events","handlers","ee","listenerCount","a2","a3","a4","a5","removeAllListeners","prefixed","grid","barBackground","bar","scatter","activeBar","activeDot","scaleX","scaleY","shouldRenderInPortal","useIsInChartContext","zIndexPortal","panorama","rootViewBox","manyComponentsThrowErrorsIfOffsetIsUndefined","_useAppSelector2","useMargin","_property","polarOptionsSlice","updatePolarOptions","graphicalItemsSlice","addCartesianGraphicalItem","replaceCartesianGraphicalItem","removeCartesianGraphicalItem","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","svgPropertiesAndEventsFromUnknown","getPriority","aPriority","bPriority","getServerSnapshot","instRef","hasValue","memoizedSelector","nextSnapshot","hasMemo","memoizedSnapshot","currentSelection","memoizedSelection","nextSelection","maybeGetServerSnapshot"],"sourceRoot":""}